Korzystanie z dashboardu w celu uzyskania dostępu do klastra Kubernetes po wdrożeniu OpenStack Magnum w NSIS Cloud
Po utworzeniu klastra Kubernetes można uzyskać do niego dostęp za pomocą narzędzia wiersza poleceń kubectl lub za pomocą interfejsu graficznego Kubernetes dashboard. Dashboard jest interfejsem GUI do klastra Kubernetes, podobnie jak kubectl jako jego interfejsem CLI.
W tym artykule przedstawiono, jak zainstalować dashboard Kubernetes.
Co zostanie omówione?
Wdrażanie dashboardu
Tworzenie przykładowego użytkownika
Tworzenie sekretu dla użytkownika admin
Pobieranie tokena na okaziciela do uwierzytelniania w dashboardzie
Tworzenie oddzielnego okna terminala dla dostępu proxy
Uruchamianie dashboardu w przeglądarce
Wymagania wstępne
Nr 1 Hosting
Wymagane jest konto hostingowe NSIS z interfejsem Horizon https://horizon.cloudferro.com.
Nr 2 Działający klaster i kubectl
Aby ostatecznie skonfigurować klaster i podłączyć go do narzędzia kubectl, zapoznaj się z artykułem Jak uzyskać dostęp do klastra Kubernetes po wdrożeniu przy użyciu Kubectl na NSIS OpenStack Magnum?.
Ważnym pośrednim wynikiem tego artykułu jest polecenie takie jak to:
export KUBECONFIG=/home/user/k8sdir/config
Zwróć uwagę na dokładne polecenie, które w twoim przypadku ustawia wartość zmiennej KUBECONFIG, ponieważ będzie ona potrzebna do uruchomienia nowego okna terminala, z którego będzie uruchamiany dashboard.
Krok 1 Wdrożenie dashboardu
Zainstaluj go za pomocą następującego polecenia:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml
Wynik jest następujący:
Krok 2 Tworzenie przykładowego użytkownika
Następnie tworzymy token, który będzie służył jako token autoryzacyjny dla Dashboardu. W tym celu należy utworzyć dwa pliki lokalne i „przesłać” je do chmury za pomocą polecenia kubectl. Pierwszy plik nosi nazwę dashboard-adminuser.yaml, a jego zawartość to:
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
Użyj wybranego edytora tekstu, aby utworzyć ten plik. W systemie MacOS lub Linux możesz użyć nano, jak poniżej:
nano dashboard-adminuser.yaml
Zainstaluj ten plik w klastrze Kubernetes za pomocą polecenia:
kubectl apply -f dashboard-adminuser.yaml
Drugi plik, który należy utworzyć to:
nano dashboard-clusterolebinding.yaml
Jego zawartość powinna być następująca:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
Polecenie wysłania go do chmury to:
kubectl apply -f dashboard-clusterolebinding.yaml
Krok 3 Utworzenie sekretu dla użytkownika admin
Musimy ręcznie utworzyć token dla użytkownika admin.
Utwórz plik admin-user-token.yaml
nano admin-user-token.yaml
Wprowadź następujący kod:
apiVersion: v1
kind: Secret
metadata:
name: admin-user-token
namespace: kubernetes-dashboard
annotations:
kubernetes.io/service-account.name: "admin-user"
type: kubernetes.io/service-account-token
Wykonaj go za pomocą polecenia
kubectl apply -f admin-user-token.yaml
Krok 4 Uzyskanie tokena na okaziciela do uwierzytelniania w dashboardzie
Ostatnim krokiem jest uzyskanie tokena na okaziciela – długiego ciągu znaków, który będzie uwierzytelniał połączenia z dashboardem:
kubectl -n kubernetes-dashboard get secret admin-user-token -o jsonpath="{.data.token}" | base64 --decode
Ciąg znaków tokena na okaziciela zostanie wyświetlony na ekranie terminala.
Skopiuj go do edytora tekstu, będzie on potrzebny po uzyskaniu dostępu do interfejsu użytkownika Dashboardu za pośrednictwem połączenia HTTPS.
Informacja
Jeśli ostatnim znakiem tokena na jest %, może to być znak oznaczający koniec ciągu, ale nie będący jego częścią. Jeśli skopiujesz ciąg znaków na okaziciela i nie zostanie on rozpoznany, spróbuj skopiować go bez końcowego znaku %.
Krok 5 Utworzenie oddzielnego okna terminala dla dostępu proxy
Użyjemy teraz serwera proxy dla serwera API Kubernetes. Serwer proxy:
automatycznie obsługuje certyfikaty podczas uzyskiwania dostępu do interfejsu API Kubernetes,
łączy się z rozszerzeniami API lub pulpitami nawigacyjnymi (jak w tym artykule),
umożliwia lokalne testowanie wywołań API przed zautomatyzowaniem ich w skryptach.
Aby włączyć połączenie, należy uruchomić oddzielne okno terminala i najpierw przygotować polecenie konfiguracyjne dla tego okna:
export KUBECONFIG=/home/user/k8sdir/config
Zmień ten adres, aby wskazywał na twój plik konfiguracyjny na twoim komputerze.
Następne polecenie w nowym oknie to:
kubectl proxy
Serwer jest aktywowany na porcie 8001:
Krok 6 Wyświetlenie dashboardu w przeglądarce
Następnie wprowadź w przeglądarce ten adres:
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
Wprowadź token, kliknij Sign In, aby wyświetlić interfejs Dashboard dla klastra Kubernetes.
Dashboard Kubernetes organizuje pracę z klastrem w wizualny i interaktywny sposób. Na przykład, kliknij Nodes po lewej stronie, aby zobaczyć węzły z klastra k8s-cluster.
Co można zrobić dalej?
Możesz nadal korzystać z kubectl lub alternatywnie z Dashboard. Tak czy inaczej, możesz:
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.