安装
GitHub 地址:Kubernetes Dashboard
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta4/aio/deploy/recommended.yaml
修改配置如下
---
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
# 修改类型为 NodePort 访问
type: NodePort
ports:
- port: 443
targetPort: 8443
# 设置端口号为 30001
nodePort: 30001
selector:
k8s-app: kubernetes-dashboard
---
创建kubernetes-dashboard.yaml
apiVersion: v1
kind: Namespace
metadata:
name: kubernetes-dashboard
kubectl create -f kubernetes-dashboard.yaml
设置自定义证书dashboard.crt和dashboard.key文件存储在$HOME/certs目录下
kubectl create secret generic kubernetes-dashboard-certs --from-file=$HOME/certs -n kubernetes-dashboard
部署到集群
# 部署
kubectl create -f recommended.yaml
# 查看
kubectl -n kubernetes-dashboard get pods
kubectl -n kubernetes-dashboard get service kubernetes-dashboard
kubectl -n kubernetes-dashboard describe service kubernetes-dashboard
访问
需要使用 域名:30001 访问 Dashboard
登录
创建登录账号,创建一个名为 dashboard-adminuser.yaml 的配置文件
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
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
kubectl create -f dashboard-adminuser.yaml
打印 Token 信息
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
# 输出如下
Name: admin-user-token-kw8cs
Namespace: kubernetes-dashboard
Labels: <none>
Annotations: kubernetes.io/service-account.name: admin-user
kubernetes.io/service-account.uid: eb9450ef-bf2f-4be4-ab7b-649f34214f27
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1025 bytes
namespace: 20 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLWt3OGNzIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJlYjk0NTBlZi1iZjJmLTRiZTQtYWI3Yi02NDlmMzQyMTRmMjciLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.LcJP7Zfs_U-mZAUfqv4qbg3vAwTfItuee76GynKDZ8Jh0dQeLflCq5kl9eBFnYV01uHCGL7tGhXvgCzu-mNLBcdWP2BdQQNECfh8RkZWk5FTRXHYMOXM3v3DvncmHo9dw7S-s61WoqdCSWBrt-1NwvmkbNcFBgWiV4A2GnT2QEvVgB-WRxWFUdqLy8COSgTy3gEfjd8A1NgoNTNbfbaJo1OZ7vuF6abv2PZ1j-MocZ_2XrPPnbyW1fFw4PBV3Tl090pm3UtvX86f8l045YTP5GyBdwE7UwEXtiflRazQLA48qR1hhw4jdSHXO40c-KySU_PHWbWzKqWqj6wqhsv_tw
