Skip to main content
  • »
  • KUBERNETES »
  • Jak uzyskać dostęp do klastra Kubernetes po wdrożeniu przy użyciu Kubectl na NSIS OpenStack Magnum?

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:

  • 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:

../_images/download_config_cli1.png

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:

../_images/download_config_horizon1.png

Kliknij opcję Pokaż konfigurację klastra, a plik konfiguracyjny zostanie pobrany do edytora:

../_images/cluster_config_editor1.png

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:

../_images/get_nodes_large1.png

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:

../_images/kubectl_help1.png

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.