Jak uzyskać dostęp do klastra Kubernetes po wdrożeniu przy użyciu Kubectl na NSIS OpenStack Magnum?
W tym samouczku zaczynasz od świeżo zainstalowanego klastra Kubernetes na serwerze Cloudferro OpenStack i podłączasz główne narzędzie Kubernetes, kubectl do chmury.
Co będziemy omawiać
Jak połączyć kubectl z serwerem OpenStack Magnum
Jak uzyskać dostęp do klastrów za pomocą kubectl
Wymagania wstępne
Nr 1 Hosting
Potrzebne 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<https://kubernetes.io/docs/tasks/tools/>`_ oficjalnej strony Kubernetes.
Nr 3 Klaster już zainstalowany na stronie Magnum
Być może masz już zainstalowany klaster, jeśli korzystałeś z jednego 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ć nowy klaster o nazwie k8s-cluster, tylko na tę okazję - używając następującego polecenia CLI:
openstack coe cluster create \
--cluster-template k8s-stable-1.23.5 \
--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 eo1.large \
--flavor eo1.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 tego należy użyć nazwy istniejącego klastra.
Nr 4 Podłącz klienta openstack do chmury
Przygotuj klientów openstack i magnum, wykonując Krok 2 Podłącz 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 warunku wstępnym nr 2 i zainstaluj kubectl na wybranej platformie.
Użyj istniejącego klastra Kubernetes w chmurze Cloudferro lub zainstaluj nowy, korzystając z metod opisanych w punkcie 3 sekcji Wymagania wstępne.
Użyj kroku 2 w warunku wstępnym 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 Utwórz katalog do pobrania certyfikatów
Utwórz nowy katalog o nazwie k8sdir, do którego zostaną pobrane certyfikaty:
mkdir k8sdir
Po pobraniu pliku certyfikatu zostanie wykonane polecenie podobne do tego:
export KUBECONFIG=/home/dusko/k8sdir/config
Zakłada to
przy użyciu środowiska Ubuntu (/home),
że użytkownikiem jest dusko,
właśnie utworzony katalog /k8sdir i wreszcie, ż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 musi mieć rozszerzenie.
Krok 2A Pobieranie certyfikatów z serwera przy użyciu poleceń CLI
Używane będzie polecenie
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 folderu k8sdir:
openstack coe cluster config \
--dir k8sdir \
--force \
--output-certs \
k8s-cluster
Do folderu 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 nadpisuje istniejące pliki (jeśli takie istnieją), więc masz gwarancję pracy tylko z najnowszymi wersjami plików z serwera.
Wynik tego polecenia jest pokazany w wierszu poniżej:
export KUBECONFIG=/home/dusko/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 dostęp do pliku config przez cały czas.
Tak wygląda cała procedura 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ę Pokaż konfigurację klastra, a plik konfiguracyjny zostanie pobrany do edytora:
Z poziomu edytora zapisz go na dysku. Nazwa pliku będzie łączyć nazwę klastra ze słowem config, a jeśli ten sam plik został pobrany kilka razy, może pojawić się myślnik, a po nim liczba, jak poniżej:
k8s-cluster-config-1.yaml
Dla ujednolicenia, zapisz go w tym samym folderze k8sdir co plik config i ustaw zmienną KUBECONFIG na ten adres:
export KUBECONFIG=/home/dusko/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 weryfikuje, czy kubectl ma prawidłowy dostęp do chmury.
Aby zobaczyć dostępne polecenia kubectl, użyj:
kubectl --help
Lista jest zbyt długa, aby ją tutaj odtworzyć, ale oto jak się zaczyna:
kubectl posiada również długą listę opcji, które są parametrami, które można zastosować do dowolnego polecenia. Można je zobaczyć za pomocą
kubectl options
Co robić dalej
Po uruchomieniu kubectl można
wdrażać aplikacje w klastrze,
dostęp do wielu klastrów,
tworzyć load balancery,
dostęp do aplikacji w klastrze za pomocą przekierowania portów,
Użyj usługi, aby uzyskać dostęp do aplikacji w klastrze,
lista obrazów kontenerów w klastrze
korzystać z usług, wdrożeń i wszystkich innych zasobów w klastrze Kubernetes.
Kubernetes dashboard jest wizualną alternatywą dla kubectl. Aby go zainstalować, zobacz Korzystanie z pulpitu nawigacyjnego w celu uzyskania dostępu do klastra Kubernetes po wdrożeniu w NSIS OpenStack Magnum.