Właśnie zaktualizowałem kubeadm i kubelet do wersji 1.8.0. I zainstaluj pulpit nawigacyjny zgodnie z oficjalnym dokumentem .
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
Następnie uruchomiłem pulpit nawigacyjny, uruchamiając
$ kubectl proxy --address="192.168.0.101" -p 8001 --accept-hosts='^*$'
Na szczęście udało mi się uzyskać dostęp do pulpitu nawigacyjnego przez http://192.168.0.101:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
Zostałem przekierowany na stronę logowania, taką jak ta, której nigdy wcześniej nie spotkałem. Wygląda na to, że istnieją dwa sposoby uwierzytelniania.
Próbowałem przesłać /etc/kubernetes/admin.conf
jako kubeconfig, ale nie udało mi się. Następnie spróbowałem użyć tokena, z którego otrzymałem, kubeadm token list
do zalogowania się, ale znowu się nie udało.
Pytanie brzmi, jak mogę zalogować się na desce rozdzielczej. Wygląda na to, że dodali dużo mechanizmów bezpieczeństwa niż wcześniej. Dzięki.
źródło
Odpowiedzi:
- Pulpit nawigacyjny na Github
Znak
Tutaj
Token
może byćStatic Token
,Service Account Token
,OpenID Connect Token
z Kubernetes autoryzowania , ale nie kubeadmBootstrap Token
.Za pomocą kubectl możemy domyślnie uzyskać konto usługi (np. Kontroler wdrażania) utworzone w kubernetes.
Kubeconfig
Pulpit nawigacyjny wymaga, aby użytkownik w pliku kubeconfig miał opcję
username & password
lubtoken
, aleadmin.conf
tylkoclient-certificate
. Możesz edytować plik konfiguracyjny, aby dodać token, który został wyodrębniony przy użyciu powyższej metody.Alternatywa (niezalecana do produkcji)
Oto dwa sposoby na ominięcie uwierzytelniania, ale zachowaj ostrożność.
Wdróż pulpit nawigacyjny za pomocą protokołu HTTP
Pulpit nawigacyjny można załadować pod adresem http: // localhost: 8001 / ui z
kubectl proxy
.Przyznawanie uprawnień administratora do konta usługi Dashboard
Następnie możesz użyć Skipopcji na stronie logowania, aby uzyskać dostęp do Dashboardu.
Jeśli używasz pulpitu nawigacyjnego w wersji 1.10.1 lub nowszej, musisz również dodać
--enable-skip-login
argumenty wiersza poleceń wdrożenia. Możesz to zrobić, dodając go do plikuargs
inkubectl edit deployment/kubernetes-dashboard --namespace=kube-system
.Przykład:
źródło
TL; DR
Aby otrzymać token w jednym onelinerze:
Zakłada się, że twój ~ / .kube / config jest obecny i ważny.
kubectl config get-contexts
Oznacza to również, że używasz właściwego kontekstu (klastra i przestrzeni nazw) dla pulpitu nawigacyjnego, do którego się logujesz.Wyjaśnienie
Wyprowadziłem tę odpowiedź z tego, czego nauczyłem się z odpowiedzi @ silverfox. To bardzo pouczający opis. Niestety nie jest w stanie powiedzieć, jak faktycznie zastosować te informacje w praktyce. Może zbyt długo zajmowałem się DevOps, ale myślę w powłoce. Dużo trudniej jest mi uczyć się lub nauczać po angielsku.
Oto ten oneliner z podziałami linii i wcięciami dla większej czytelności:
Istnieją 4 różne polecenia, które są wywoływane w następującej kolejności:
deployment-controller-token-
(jest to nazwa kapsuły)źródło
kubectl describe secret $(kubectl get secret | awk '/^dashboard-token-/{print $1}') | awk '$1=="token:"{print $2}'
Lubkubectl describe secret $(kubectl get secret | awk '/^dashboard-token-/{print $1}') | awk '$1=="token:"{print $2}' | xclip -selection clipboard -i
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | sls admin-user | ForEach-Object { $_ -Split '\s+' } | Select -First 1)
z github.com/kubernetes/dashboard/blob/master/docs/user/…Jeśli nie chcesz przyznawać uprawnień administratora do konta usługi pulpitu nawigacyjnego, możesz utworzyć konto usługi administratora klastra.
Następnie możesz użyć tokenu właśnie utworzonego konta usługi administratora klastra.
Zacytowałem to z przewodnika giantswarm - https://docs.giantswarm.io/guides/install-kubernetes-dashboard/
źródło
Łącząc dwie odpowiedzi: 49992698 i 47761914 :
źródło
Nie wymaga objaśnień, prosta jedna linijka do wyodrębnienia tokena do logowania kubernetes do dashboardu.
Skopiuj token i wklej go na pulpicie kubernetes pod opcją logowania tokena i możesz korzystać z panelu kubernetes
źródło
Wszystkie poprzednie odpowiedzi są dla mnie dobre. Ale prosta odpowiedź z mojej strony pochodziłaby z https://github.com/kubernetes/dashboard/wiki/Creating-sample-user#bearer-token . Po prostu użyj
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
. Będziesz mieć wiele wartości dla niektórych przycisków (Name
,Namespace
,Labels
, ...,token
). Najważniejsze jest to,token
co odpowiada Twojemu imieniu. skopiuj ten token i wklej go w polu tokena. Mam nadzieję że to pomoże.źródło
Musisz wykonać te kroki przed uwierzytelnieniem tokena
Utwórz konto usługi administratora klastra
Dodaj reguły powiązań klastra do swojego konta pulpitu nawigacyjnego
Zdobądź tajny token za pomocą tego polecenia
Wybierz uwierzytelnianie tokenu na stronie logowania do panelu Kubernetes
Teraz możesz się zalogować
źródło
Pobierz https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/alternative/kubernetes-dashboard.yaml
Dodaj
A następnie uruchom to polecenie:
Znajdź odsłonięty port za pomocą polecenia:
Pulpit nawigacyjny powinien być dostępny pod adresem http: // nazwa_hosta: eksponowany port / bez uwierzytelniania
źródło
Pomijanie logowania zostało domyślnie wyłączone ze względów bezpieczeństwa. https://github.com/kubernetes/dashboard/issues/2672
w swoim dashboardzie yaml dodaj ten argument
odzyskać to
źródło
The skip login has been disabled by default due to security issues
. Próba odpowiedzi brzmi- --enable-skip-login
. Może to nie jest najlepsza odpowiedź, ale to nie jest tylko odpowiedź na link.The skip login has been disabled by default due to security issues
. Próba odpowiedzi brzmi- --enable-skip-login
. Może to nie jest najlepsza odpowiedź, ale to nie jest tylko odpowiedź na link.