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
24d v1.18.3 - k8s-node1 Ready
24d v1.18.3 - k8s-node2 Ready
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
- kuboard-etcd-spfdc 1/1 Running 0 105m 192.168.217.16 k8s-master
- kuboard-etcd-wj2bs 1/1 Running 0 105m 192.168.217.18 k8s-node2
- kuboard-v3-695f6bd686-p9pwb 1/1 Running 0 105m 10.244.1.28 k8s-node1
此时应该是有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
- kuboard-agent-69fd468b5b-w9mrz 1/1 Running 0 81m 10.244.1.30 k8s-node1
- kuboard-etcd-4nsqv 1/1 Running 0 115m 192.168.217.17 k8s-node1
- kuboard-etcd-spfdc 1/1 Running 0 115m 192.168.217.16 k8s-master
- kuboard-etcd-wj2bs 1/1 Running 0 115m 192.168.217.18 k8s-node2
- kuboard-v3-695f6bd686-p9pwb 1/1 Running 0 115m 10.244.1.28 k8s-node1
打开浏览器,输入任意节点IP:30080即可登录kuboard(注意哈,不是htttps)
账号:admin
密码:Kuboard123

进入后,有一个界面是集群导入的,如果前面的agent没有安装,将看不到集群的哦。

