25分钟

任务4 安装Dashboard插件

任务目的

安装Kubernetes仪表板插件Kubernetes Dashboard,该插件可以可视化查看集群状态以及管理集群,本实验也将在任务5中使用该插件。

Kubernetes的资源创建(Service、Deployment等),都可以用YAML文件来定义。关于YAML文件的部分,学员可以参考《Kubernetes之YAML文件》文章来了解。

任务步骤

1.安装Kubernetes Dashboard

下载Dashboard的YAML文件。

[root@k8s-master ~]# wget http://mirror.faasx.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

修改YAML文件,Kubernetes有三种外部访问方式:NodePort、LoadBalancer和Ingress。本实验通过NodePort来对外暴露Kubernetes Dashboard服务,修改kubernetes-dashboard.yaml文件末尾处kind: Service部分(将暴露方式更换为NodePort)。

其他方式这里不作赘述,学员可以自己查询。NodePort会在所有节点(CVM)上开放一个特定端口,任何发送到该端口的流量都被转发到对应服务。也就是说,可以通过<任意节点的内网IP>:<NodePort开放的端口号>访问该服务。

[root@k8s-master ~]# vi kubernetes-dashboard.yaml

在文件末尾部分,插入一行type: NodePort,文件部分如下。

# ------------------- Dashboard Service ------------------- #

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard
修改资源清单

创建集群资源对象。

[root@k8s-master ~]# kubectl apply -f kubernetes-dashboard.yaml

等待片刻,查看相关Pod状态。

[root@k8s-master ~]# kubectl get pods -n kube-system| grep dashboard
dashboard Pod状态

这时我们需要创建用户来访问Dashboard,创建示例用户admin-user并创建ClusterRoleBinding。

这里直接创建admin-user.yaml文件,内容如下。

[root@k8s-master ~]# vi admin-user.yaml
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system
---
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: kube-system
---

创建集群资源对象。

[root@k8s-master ~]# kubectl apply -f admin-user.yaml

获取Token,并复制到剪切板。

由于Token值比较长,复制的时候容易将前面的空格也复制进去。建议粘贴到记事本,并检查前后有无多余的空格,如果有,请去掉多余的空格。

[root@k8s-master ~]# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
Token值

2.登录Kubernetes Dashboard

先查看Dashboard服务通过NodePort方式暴露的端口号,本实验是32637。(svc是service的缩写)

kubectl get svc -n kube-system | grep kubernetes-dashboard
查看端口号

接下来回到CVM控制台,登录Windows CVM。

下载RDP文件

双击下载的文件,输入密码并登录。

RDP文件
点击连接
输入凭据
确认仍要连接

连接Windows CVM。

进入Windows CVM

下载Firefox浏览器,并打开。

输入https://<任意节点的内网IP>:<NodePort暴露的端口号>/访问Dashboard,点击【接受风险并继续】。

注意:必须使用内网IP进行访问,如果使用公网IP会出现登录无反应的情况。

打开网页

选择【令牌】,输入上一步最后得到的Token值,点击登录。

登录Kubernetes仪表盘

等待片刻,进入仪表盘,至此,Kubernetes Dashboard安装完毕。

Kubernetes仪表盘

建议选择保存Token值,方便下一次登录。

保存Token值