Kể từ bản phát hành 1.7 Trang tổng quan hỗ trợ xác thực người dùng dựa trên:
- Trang tổng quan trên Github
Mã thông báo
Đây Token
có thể được Static Token
, Service Account Token
, OpenID Connect Token
từ Kubernetes Chứng thực , nhưng không phải là kubeadm Bootstrap Token
.
Với kubectl, chúng ta có thể lấy một tài khoản dịch vụ (ví dụ: bộ điều khiển triển khai) được tạo trong kubernetes theo mặc định.
$ kubectl -n kube-system get secret
# All secrets with type 'kubernetes.io/service-account-token' will allow to log in.
# Note that they have different privileges.
NAME TYPE DATA AGE
deployment-controller-token-frsqj kubernetes.io/service-account-token 3 22h
$ kubectl -n kube-system describe secret deployment-controller-token-frsqj
Name: deployment-controller-token-frsqj
Namespace: kube-system
Labels: <none>
Annotations: kubernetes.io/service-account.name=deployment-controller
kubernetes.io/service-account.uid=64735958-ae9f-11e7-90d5-02420ac00002
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1025 bytes
namespace: 11 bytes
token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkZXBsb3ltZW50LWNvbnRyb2xsZXItdG9rZW4tZnJzcWoiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGVwbG95bWVudC1jb250cm9sbGVyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNjQ3MzU5NTgtYWU5Zi0xMWU3LTkwZDUtMDI0MjBhYzAwMDAyIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRlcGxveW1lbnQtY29udHJvbGxlciJ9.OqFc4CE1Kh6T3BTCR4XxDZR8gaF1MvH4M3ZHZeCGfO-sw-D0gp826vGPHr_0M66SkGaOmlsVHmP7zmTi-SJ3NCdVO5viHaVUwPJ62hx88_JPmSfD0KJJh6G5QokKfiO0WlGN7L1GgiZj18zgXVYaJShlBSz5qGRuGf0s1jy9KOBt9slAN5xQ9_b88amym2GIXoFyBsqymt5H-iMQaGP35tbRpewKKtly9LzIdrO23bDiZ1voc5QZeAZIWrizzjPY5HPM1qOqacaY9DcGc7akh98eBJG_4vZqH2gKy76fMf0yInFTeNKr45_6fWt8gRM77DQmPwb3hbrjWXe1VvXX_g
Kubeconfig
Trang tổng quan cần người dùng trong tệp kubeconfig có một username & password
hoặc token
, nhưng admin.conf
chỉ có client-certificate
. Bạn có thể chỉnh sửa tệp cấu hình để thêm mã thông báo đã được trích xuất bằng phương pháp trên.
$ kubectl config set-credentials cluster-admin --token = bearer_token
Thay thế (Không được khuyến nghị cho Sản xuất)
Đây là hai cách để bỏ qua xác thực, nhưng hãy sử dụng một cách thận trọng.
Triển khai trang tổng quan với HTTP
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/alternative/kubernetes-dashboard.yaml
Trang tổng quan có thể được tải tại http: // localhost: 8001 / ui với kubectl proxy
.
Cấp đặc quyền quản trị viên cho Tài khoản dịch vụ của Trang tổng quan
$ cat <<EOF | kubectl create -f -
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: kubernetes-dashboard
labels:
k8s-app: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard
namespace: kube-system
EOF
Sau đó, bạn có thể sử dụng Skiptùy chọn trên trang đăng nhập để truy cập Trang tổng quan.
Nếu bạn đang sử dụng bảng điều khiển phiên bản v1.10.1 trở lên, bạn cũng phải thêm --enable-skip-login
vào các đối số dòng lệnh của triển khai. Bạn có thể làm như vậy bằng cách thêm nó vào args
trong kubectl edit deployment/kubernetes-dashboard --namespace=kube-system
.
Thí dụ:
containers:
- args:
- --auto-generate-certificates
- --enable-skip-login # <-- add this line
image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1