可以看到此时Worker节点的状态已经变成“Ready”,不过细心的读者可能会发现Worker节点的ROLES并不像Master节点那样显示“master”而是显示了,这是因为新安装的Kubernetes环境Node节点有时候会丢失ROLES信息,遇到这种情况可以手工进行添加,具体命令如下:
root@kubenetesnode02:~# kubectl label node kubenetesnode02 node-role.kubernetes.io/worker=worker再次运行节点状态命令就能看到正常的显示了,命令效果如下:
root@kubenetesnode02:~# kubectl get node NAME STATUS ROLES AGE VERSION kubenetesnode02 Ready worker 8h v1.18.4 kubernetesnode01 Ready master 37h v1.18.4到这里就部署完成了具有一个Master节点和一个Worker节点的Kubernetes集群了,作为实验环境它已经具备了基本的Kubernetes集群功能!
07、部署Dashboard可视化插件在Kubernetes社区中,有一个很受欢迎的Dashboard项目,它可以给用户一个可视化的Web界面来查看当前集群中的各种信息。该插件也是以容器化方式进行部署,操作也非常简单,具体可在Master、Worker节点或其他能够安全访问Kubernetes集群的Node上进行部署,命令如下:
root@kubenetesnode02:~# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml部署完成后就可以查看Dashboard对应的Pod运行状态,执行效果如下:
root@kubenetesnode02:~# kubectl get pods -n kubernetes-dashboard NAME READY STATUS RESTARTS AGE dashboard-metrics-scraper-6b4884c9d5-xfb8b 1/1 Running 0 12h kubernetes-dashboard-7f99b75bf4-9lxk8 1/1 Running 0 12h除此之外还可以查看Dashboard的服务(Service)信息,命令如下:
root@kubenetesnode02:~# kubectl get svc -n kubernetes-dashboard NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dashboard-metrics-scraper ClusterIP 10.97.69.158 <none> 8000/TCP 13h kubernetes-dashboard ClusterIP 10.111.30.214 <none> 443/TCP 13h需要注意的是,由于Dashboard是一个Web服务,从安全角度出发Dashboard默认只能通过Proxy的方式在本地访问。具体方式为在本地机器安装kubectl管理工具,并将Master节点$HOME/.kube/目录中的config文件拷贝至本地主机相同目录,之后运行“kubectl proxy”命令,如下:
qiaodeMacBook-Pro-2:.kube qiaojiang$ kubectl proxy Starting to serve on 127.0.0.1:8001本地proxy代理启动后,访问Kubernetes Dashboard地址,具体如下:
:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/如果访问正常,就会看到如下图所示界面:
如上图所示Dashboard访问需要进行身份认证,主要有Token及Kubeconfig两种方式,这里我们选择Token的方式,而Token的生成步骤如下:
1)、创建一个服务账号
首先在命名空间kubernetes-dashboard中创建名为admin-user的服务账户,具体步骤为在本地目录创建类似“dashboard-adminuser.yaml”文件,具体内容如下:
apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard编写文件后具体执行创建命令:
qiaodeMacBook-Pro-2:.kube qiaojiang$ kubectl apply -f dashboard-adminuser.yaml Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply serviceaccount/admin-user configured2)、创建ClusterRoleBinding
在使用kubeadm工具配置完Kubernetes集群后,集群中已经存在ClusterRole集群管理,可以使用它为上一步创建的ServiceAccount创建ClusterRoleBinding。具体步骤为在本地目录创建类似“dashboard-clusterRoleBingding.yaml”的文件,具体内容如下:
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执行创建命令:
qiaodeMacBook-Pro-2:.kube qiaojiang$ kubectl apply -f dashboard-clusterRoleBingding.yaml clusterrolebinding.rbac.authorization.k8s.io/admin-user created3)、获取Bearer Token