k8s(v18.6)安装Dashboard
1 查看k8s(v18.6)与Dashboard对应的版本# 查看相应的版本信息https://github.com/kubernetes/dashboard/releases/tag/v2.0.0下载yaml文件# 下载文件,如果下载成功,会在当前目录下出现一个“recommended.yaml”文件wget https://raw.githubusercontent.com/kubernete
·
1 查看k8s(v18.6)与Dashboard对应的版本
# 查看相应的版本信息
https://github.com/kubernetes/dashboard/releases/tag/v2.0.0
下载yaml文件
# 下载文件,如果下载成功,会在当前目录下出现一个“recommended.yaml”文件
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
2 创建Dashboard
# 执行模板文件
kubectl apply -f recommended.yaml
# 查看所有的Pod,参数-A可以换成 --all-namespaces
kubectl get pods -A
# 出现以下结果说明成功
NAMESPACE NAME READY STATUS RESTARTS AGE
..... #省略
kubernetes-dashboard dashboard-metrics-scraper-6b4884c9d5-88sct 1/1 Running 0 3m13s
kubernetes-dashboard kubernetes-dashboard-7b544877d5-6bvfr 1/1 Running 0 3m13s
3 修改Dashboard的Service
3.1 查看Service
# 查看所有的service
kubectl get svc -A
# 查询结果如下
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
...... # 省略
kubernetes-dashboard dashboard-metrics-scraper ClusterIP 10.11.56.68 <none> 8000/TCP 6m10s
kubernetes-dashboard kubernetes-dashboard ClusterIP 10.11.120.145 <none> 443/TCP 6m10s
从上面的查询结果(NAME=kubernetes-dashboard,最后一行 ),可以看出Service的类型是ClusterIP,外部无法使用主机节点直接访问,因此需要将Service修改为NodePort。可以不用删除NAME=kubernetes-dashboard的Service。
3.2 新建“kubernetes-dashboard-service.yaml”文件
# kubernetes-dashboard-service.yaml
# 下面的配置文件可以从recommended.yaml中找到
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
type: NodePort
ports:
- port: 443
targetPort: 8443
selector:
k8s-app: kubernetes-dashboard
执行配置文件,不用删除NAME=kubernetes-dashboard的服务,直接执行即可
kubectl apply -f kubernetes-dashboard-service.yaml
查看结果
# Service类型已经修改为NodePort
kubectl get svc -A
# 查询结果
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
...... # 省略
kubernetes-dashboard kubernetes-dashboard NodePort 10.11.120.145 <none> 443:30512/TCP 11h
注意上面的端口号"30512"是Dashboard的端口
# 此时可以访问页面,由于没有管理员角色,所以没有访问权限
https://192.168.108.100:30512
4 设置访问权限
4.1 新建“kubernetes-dashboard-account.yaml”
# kubernetes-dashboard-account.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
k8s-app: kubernetes-dashboard
name: dashboard-admin
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: dashboard-admin-bind-cluster-role
labels:
k8s-app: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: dashboard-admin
namespace: kubernetes-dashboard
执行配置文件
kubectl apply -f kubernetes-dashboard-account.yaml
4.2 获取tocken值
# 执行如下命令
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep dashboard-admin | awk '{print $1}')
# 返回结果
Name: dashboard-admin-token-l49vj
Namespace: kubernetes-dashboard
Labels: <none>
Annotations: kubernetes.io/service-account.name: dashboard-admin
kubernetes.io/service-account.uid: e1bdcbbc-5d43-479c-be6d-508960413b6a
Type: kubernetes.io/service-account-token
Data
====
# 注意!!! Tocken值,在登录Dashboard时使用
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IjhNbjY3S1FMRFhHUkNBS2pYMmE3UHpuZmk4NEEzODJqbWxjUHZ4Mk1xMnMifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tbDQ5dmoiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiZTFiZGNiYmMtNWQ0My00NzljLWJlNmQtNTA4OTYwNDEzYjZhIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmVybmV0ZXMtZGFzaGJvYXJkOmRhc2hib2FyZC1hZG1pbiJ9.PN0QkyynqW_Me4h__eWGo3hzQPs1RHy47FUZvQIzmi62CCV-uI5GESW5glb8IIKhmmGojvOHCWwJ_zgQCwL2DODFTbj7ZtQ2gj8R6CvU_etP0kOPm_pAQkN-HdiPdJrRt84Hb7Q8yJ3IvAC94dyvges1Z3T4NtTbhcJdBbBzmeQ-79cNPWf9SdCgINrpb5RO8ChNE_SrQ4ppr-olP5drZH8iO8tpha-F3PbHJl1aZemnQggaJioysXSoX9qxrOJ0NlR7d6bP0gdMWCCaGMj7bTmdARGaU5tQgy0im5rpK_mBPyiBegwgzqP0-SQLB-KDBVgDGQSyBWm08r4kKCJUsA
ca.crt: 1025 bytes
namespace: 20 bytes
5 登录Dashboard
输入以下地址,注意端口号是kubernetes-dashboard服务的端口号,我的master节点的IP是“192.168.108.100”
https://192.168.108.100:30512
进入Dashboard
更多推荐
已为社区贡献5条内容
所有评论(0)