ณ รีลีส 1.7 Dashboard รองรับการตรวจสอบผู้ใช้ตาม:
- แดชบอร์ดบน Github
เหรียญ
ที่นี่Token
สามารถStatic Token
, Service Account Token
, OpenID Connect Token
จากKubernetes ตรวจสอบสิทธิ์แต่ไม่ Bootstrap Token
kubeadm
ด้วย kubectl เราจะได้รับบัญชีบริการ (เช่นตัวควบคุมการปรับใช้) ที่สร้างขึ้นใน kubernetes ตามค่าเริ่มต้น
$ 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
แดชบอร์ดต้องการให้ผู้ใช้ในไฟล์ kubeconfig มีusername & password
หรือtoken
แต่admin.conf
มีเพียงclient-certificate
ไฟล์. คุณสามารถแก้ไขไฟล์กำหนดค่าเพื่อเพิ่มโทเค็นที่แตกออกมาโดยใช้วิธีการด้านบน
$ kubectl config set-credentials cluster-admin --token = bearer_token
ทางเลือก (ไม่แนะนำสำหรับการผลิต)
มีสองวิธีในการหลีกเลี่ยงการตรวจสอบสิทธิ์ แต่โปรดใช้ความระมัดระวัง
ปรับใช้แดชบอร์ดด้วย HTTP
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/alternative/kubernetes-dashboard.yaml
สามารถโหลดแดชบอร์ดได้ที่http: // localhost: 8001 / ui with kubectl proxy
.
ให้สิทธิ์ผู้ดูแลระบบแก่บัญชีบริการของแดชบอร์ด
$ 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
หลังจากนั้นคุณสามารถใช้Skipตัวเลือกในหน้าเข้าสู่ระบบเพื่อเข้าถึงแดชบอร์ด
หากคุณใช้แดชบอร์ดเวอร์ชัน v1.10.1 ขึ้นไปคุณต้องเพิ่ม--enable-skip-login
อาร์กิวเมนต์บรรทัดคำสั่งของการปรับใช้ด้วย คุณสามารถทำได้โดยการเพิ่มมันไปในargs
kubectl edit deployment/kubernetes-dashboard --namespace=kube-system
ตัวอย่าง:
containers:
- args:
- --auto-generate-certificates
- --enable-skip-login # <-- add this line
image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1