作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
我们上一章介绍了Docker基本情况,目前在规模较大的容器集群基本都是Kubernetes,但是Kubernetes涉及的东西和概念确实是太多了,而且随着版本迭代功能在还增加,笔者有些功能也确实没用过,所以只能按照我自己的理解来讲解。
到目前为止,我们所有的操作都是通过kubectl命令来操作我们的集群,我们是否可以通过网页来操作集群,这就是我们今天要讲解的Dashboard。
Dashboard 是基于网页的 Kubernetes 用户界面。 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群资源。 你可以使用 Dashboard 获取运行在集群中的应用的概览信息,也可以创建或者修改 Kubernetes 资源 (如 Deployment、Job、DaemonSet 等等)。 例如,你可以对 Deployment 实现弹性伸缩、发起滚动升级、重启 Pod 或者使用向导创建新的应用。
Dashboard 同时展示了 Kubernetes 集群中的资源状态信息和所有报错信息。
部署 Dashboard UI
#添加 kubernetes-dashboard 仓库
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
#使用 kubernetes-dashboard Chart 部署名为 `kubernetes-dashboard` 的 Helm Release
helm upgrade \
--install \
kubernetes-dashboard \
kubernetes-dashboard/kubernetes-dashboard \
--create-namespace \
--namespace kubernetes-dashboard
从这里看,我们并不能直接访问,因为暴露的方式都是ClusterIP,只能在集群内部访问,所以我们需要添加额外的手段来访问。我这里以演示为目的,未考虑太多安全方面的问题。
#这样我们就可用通过访问当前节点的8443端口访问
kubectl -n kubernetes-dashboard \
port-forward \
--address 0.0.0.0 \
svc/kubernetes-dashboard-kong-proxy 8443:443
访问Dashboard UI
#以我们的集群为范例
https://192.168.31.100:8443/
由于是这个并没有配置RBAC,所以我们还需要给他配置RBAC。
#创建sa
kubectl create serviceaccount admin-user -n kubernetes-dashboard
#创建局部权限
kubectl create rolebinding admin-user-binding --clusterrole=admin --serviceaccount=kubernetes-dashboard:admin-user -n kubernetes-dashboard
#创建全局权限
kubectl create clusterrolebinding admin-user-binding --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:admin-user
#创建token
kubectl -n kubernetes-dashboard create token admin-user
获取token以后就可以登陆Dashboard,就可用看到下面的界面(本地演示使用的最高权限)。
左边的导航就是我们前面讲解的各种资源:
工作负载:Pod,5种控制器,2种Job。
服务:Services,Ingress,还有涉及比较少的Ingress类。
配置和存储:Secret,Configmap,PVC。
集群:RBRC相关资源,NS,PV,这里的事件和网络策略我们未单独讲。
右边的就是各种资源的更详细的信息,我们还可用进行对各种资源进行操作:包括扩容,编辑,删除,进入容器等。
纯开源的基本上就是我们看到的这些功能,如果你购买的是云厂商(阿里,腾讯等)的Kubernetes产品,他们都会默认带有这样一个控制面板,当然他的功能比开源产品会更丰富。