前言:
kubernetes的图形化管理工具是非常多的,比较常用的比如官方的kubernetes dashboard,青云的kubesphere,私有化部署的rancher等等。官方的dashboard比较中规中矩,你不能说它差,但也可以说没有什么特别亮眼的地方,kubesphere这个玩意是比较重型的图形化工具,部署以及维护会比较费劲,rancher对资源的占用比较高。
那么,kuboard这个图形化管理界面可能会适用于大部分人了,Kuboard 完全采用场景化的设计,操作过程更适合人们的思考方式。例如,集群概览的展示方式、名称空间的展示方式。
部署:
kuboard这个图形化工具部署起来也非常的简单,也就几条命令就可以了,不需要太多的技巧:
wget https://addons.kuboard.cn/kuboard/kuboard-v3.yaml --no-check-certificate kubectl apply -f kuboard-v3.yaml
在apply文件之前,需要给node打上标签:
查询node的名称
[root@master ~]# kubectl get no NAME STATUS ROLES AGE VERSION k8s-master Ready <none> 24d v1.18.3 k8s-node1 Ready <none> 24d v1.18.3 k8s-node2 Ready <none> 24d v1.18.3
现有三个节点,就全部打上etcd标签,标签打完后就可以apply 文件了:
kubectl label nodes k8s-master k8s.kuboard.cn/role=etcd kubectl label nodes k8s-node1 k8s.kuboard.cn/role=etcd kubectl label nodes k8s-node2 k8s.kuboard.cn/role=etcd
关于标签的简要说明:
kuboard-v3.yaml 这个文件内有做nodeselectorterms,也就是节点选择,相关代码如下:
spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: node-role.kubernetes.io/master operator: Exists - matchExpressions: - key: node-role.kubernetes.io/control-plane operator: Exists - matchExpressions: - key: k8s.kuboard.cn/role operator: In values: - etcd
稍等片刻后,查看kuboard这个namespace里的pod状态,running即可。
[root@master ~]# k get po -n kuboard -owide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kuboard-etcd-4nsqv 1/1 Running 0 105m 192.168.217.17 k8s-node1 <none> <none> kuboard-etcd-spfdc 1/1 Running 0 105m 192.168.217.16 k8s-master <none> <none> kuboard-etcd-wj2bs 1/1 Running 0 105m 192.168.217.18 k8s-node2 <none> <none> kuboard-v3-695f6bd686-p9pwb 1/1 Running 0 105m 10.244.1.28 k8s-node1 <none> <none>
此时应该是有4个pod,注意一哈,kuboard-v3-695f6bd686-p9pwb这个pod是在node1节点的,本例中,node1节点的IP地址是192.168.217.17,一哈会用到这个IP哦。
OK,这样的一个简单的kuboard就基本部署完成了,但还差最后一哆嗦,此工具需要客户端。
安装客户端:
获取kuboard的客户端部署文件:
curl -k 'http://192.168.217.17:30080/kuboard-api/cluster/default/kind/KubernetesCluster/default/resource/installAgentToKubernetes?token=Yx9WHCgfAL8zzxVmK5TEljCqJjEmfRqS' > kuboard-agent.yaml kubectl apply -f kuboard-agent.yaml
apply这个文件,将会多出两个pod,可以看到这两个pod是在node1节点的哦:
[root@master ~]# kubectl get po -n kuboard -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kuboard-agent-2-5546cbdd74-ctgc5 1/1 Running 0 81m 10.244.1.29 k8s-node1 <none> <none> kuboard-agent-69fd468b5b-w9mrz 1/1 Running 0 81m 10.244.1.30 k8s-node1 <none> <none> kuboard-etcd-4nsqv 1/1 Running 0 115m 192.168.217.17 k8s-node1 <none> <none> kuboard-etcd-spfdc 1/1 Running 0 115m 192.168.217.16 k8s-master <none> <none> kuboard-etcd-wj2bs 1/1 Running 0 115m 192.168.217.18 k8s-node2 <none> <none> kuboard-v3-695f6bd686-p9pwb 1/1 Running 0 115m 10.244.1.28 k8s-node1 <none> <none>
使用方法:
打开浏览器,输入任意节点IP:30080即可登录kuboard(注意哈,不是htttps)
账号:admin
密码:Kuboard123
进入后,有一个界面是集群导入的,如果前面的agent没有安装,将看不到集群的哦。