Jak uzyskać dostęp do klastra Kubernetes po wdrożeniu przy użyciu Kubectl na NSIS OpenStack Magnum?
W tym samouczku zaczniesz od świeżo zainstalowanego klastra Kubernetes na serwerze Cloudferro OpenStack i podłączysz do chmury główne narzędzie Kubernetes, kubectl.
Co zostanie omówione?
Jak połączyć kubectl z serwerem OpenStack Magnum
Jak uzyskać dostęp do klastrów za pomocą kubectl
Wymagania wstępne
Nr 1 Hosting
Wymagane jest konto hostingowe NSIS z interfejsem Horizon https://horizon.cloudferro.com.
Nr 2 Instalacja kubectl
Standardowe typy instalacji kubectl są opisane na stronie Install Tools na oficjalnej witrynie Kubernetes.
Nr 3 Klaster już zainstalowany na stronie Magnum
Być może masz już zainstalowany klaster, jeśli zostały wykonane czynności opisane w jednym z tych artykułów:
Z interfejsem Horizon: Jak utworzyć klaster Kubernetes przy użyciu NSIS OpenStack Magnum.
Z interfejsem wiersza poleceń: Jak korzystać z interfejsu wiersza poleceń dla klastrów Kubernetes w NSIS OpenStack Magnum.
Możesz też utworzyć tylko w tym celu nowy klaster o nazwie k8s-cluster, używając następującego polecenia CLI:
openstack coe cluster create \
--cluster-template k8s-v1.31.10-1.0.0-cilium \
--labels eodata_access_enabled=false,floating-ip-enabled=true,master-lb-enabled=true \
--merge-labels \
--keypair sshkey \
--master-count 3 \
--node-count 2 \
--master-flavor eo1a.large \
--flavor eo1a.large \
k8s-cluster
Ostrzeżenie
Utworzenie nowego klastra zajmuje około 10–20 minut.
W dalszej części tego tekstu będziemy używać nazwy klastra k8s-cluster - zamiast niej należy użyć nazwy istniejącego klastra.
Nr 4 Połączenie klienta openstack z chmurą
Przygotuj klienty openstack i magnum, wykonując Krok 2 Podłączanie klientów OpenStack i Magnum do chmury Horizon z artykułu Jak zainstalować klientów OpenStack i Magnum dla interfejsu wiersza poleceń w NSIS Horizon?.
Plan
Wykonaj kroki wymienione w sekcji Wymaganie wstępne nr 2 i zainstaluj kubectl na wybranej platformie.
Użyj już istniejącego klastra Kubernetes na Cloudferro lub zainstaluj nowego jedna z metod podanych w sekcji Wymagania wstępne Nr 3.
Wykonaj krok 2 z sekcji Wymaganie wstępne nr 4, aby włączyć połączenie klientów openstack i magnum z chmurą.
Następnie należy połączyć kubectl z chmurą.
Krok 1 Utworzenie katalogu do pobrania certyfikatów
Utwórz nowy katalog o nazwie k8sdir, do którego zostaną pobrane certyfikaty:
mkdir -p k8sdir
Po pobraniu pliku certyfikatu wykonaj polecenie podobne do tego:
export KUBECONFIG=/home/tmendel/k8sdir/config
Zakłada to, że:
jest używana środowiska Ubuntu (/home),
użytkownikiem jest tmendel,
masz właśnie utworzony katalog /k8sdir oraz, że
config to plik zawierający dane do autoryzacji do klastra Kubernetes.
Informacja
W systemie Linux plik może mieć rozszerzenie lub nie, podczas gdy w systemie Windows plik musi mieć rozszerzenie.
Krok 2A Pobranie certyfikatów z serwera przy użyciu poleceń CLI
Użyj polecenia
openstack coe cluster config
aby pobrać pliki, których kubectl potrzebuje do uwierzytelnienia na serwerze. Zobacz jego parametry wejściowe za pomocą parametru –help:
openstack coe cluster config --help
usage: openstack coe cluster config [-h]
[--dir <dir>] [--force] [--output-certs]
[--use-certificate] [--use-keystone]
<cluster>
Get Configuration for a Cluster
positional arguments:
<cluster> The name or UUID of cluster to update
optional arguments:
-h, --help show this help message and exit
--dir <dir> Directory to save the certificate and config files.
--force Overwrite files if existing.
--output-certs Output certificates in separate files.
--use-certificate Use certificate in config files.
--use-keystone Use Keystone token in config files.
Pobierz certyfikaty do katalogu k8sdir:
openstack coe cluster config \
--dir k8sdir \
--force \
--output-certs \
k8s-cluster
Do katalogu zostaną pobrane cztery pliki:
ls k8sdir
ca.pem cert.pem config key.pem
Parametr –output-certs tworzy pliki .pem, które są certyfikatami X.509, pierwotnie utworzonymi tak, aby mogły być wysyłane pocztą elektroniczną. Plik config łączy pliki .pem i zawiera wszystkie informacje potrzebne kubectl do uzyskania dostępu do chmury. Użycie –force powoduje zastąpienie ewentualnych istniejących plików. więc masz gwarancję, że pracujesz tylko z najnowszymi wersjami plików z serwera.
Wynik tego polecenia jest przedstawiony w wierszu poniżej:
export KUBECONFIG=/home/tmendel/k8sdir/config
Skopiuj to polecenie i wklej je do wiersza poleceń terminala, a następnie naciśnij klawisz Enter na klawiaturze, aby je wykonać. Zmienna systemowa KUBECONFIG zostanie w ten sposób zainicjalizowana, a polecenie kubectl będzie miało stale dostęp do pliku config.
Cała procedura wygląda następująco w oknie terminala:
Krok 2B Pobieranie certyfikatów z serwera przy użyciu poleceń Horizon
Możesz pobrać plik konfiguracyjny z Horizon bezpośrednio na swój komputer. Najpierw wyświetl listę klastrów za pomocą polecenia Container Infra -> Clusters, znajdź klaster i kliknij menu rozwijane po prawej stronie w jego kolumnie:
Kliknij opcję Get Cluster Config, a plik konfiguracyjny zostanie pobrany na twój komputer:
Dla ujednolicenia, zapisz go w tym samym folderze k8sdir co plik config oraz zmień mu nazwę dodając -1 na końcu Dodatkowo ustaw zmienną KUBECONFIG na ten adres:
export KUBECONFIG=/home/tmendel/k8sdir/k8s-cluster_config-1.yaml
W zależności od środowiska może być konieczne otwarcie nowego okna terminala, aby powyższe polecenie zadziałało.
Krok 3 Sprawdzenie, czy kubectl ma dostęp do chmury
Podstawowe dane o klastrze można wyświetlić za pomocą poniższego polecenia:
kubectl get nodes -o wide
Rezultat jest następujący:
To potwierdza, ze kubectl ma prawidłowy dostęp do chmury.
Aby zobaczyć dostępne polecenia kubectl, użyj polecenia:
kubectl --help
Lista jest zbyt długa, aby ją tutaj przedstawić, jej początek wygląda następująco:
kubectl ma również długą listę opcji, czyli parametrów, które można zastosować do dowolnego polecenia. Można je zobaczyć za pomocą polecenia
kubectl options
Co można zrobić dalej?
Za pomocą kubectl można:
wdrażać aplikacje w klastrze,
uzyskiwać dostęp do wielu klastrów,
tworzyć load balancery,
uzyskiwać dostęp do aplikacji w klastrze za pomocą przekierowania portów,
używać usługi, aby uzyskać dostęp do aplikacji w klastrze,
wyświetlać listę obrazów kontenerów w klastrze
korzystać z usług, wdrożeń i wszystkich innych zasobów w klastrze Kubernetes.
Wizualną alternatywą dla kubectl jest Kubernetes dashboard. Aby go zainstalować, zobacz artykuł Korzystanie z dashboardu w celu uzyskania dostępu do klastra Kubernetes po wdrożeniu OpenStack Magnum w NSIS Cloud.