前言

本文主要讲述在kubernetes上基于ipv4、ipv6双栈集群建立容器以及可视化界面的集群管理。本来我打算不用双栈节点部署pod,但是建立之后,发现我所使用的cni似乎不支持(我使用的是calico)纯ipv6的建立,使用如下命令查看时会发现一直处于ContainerCreating状态,可能由于该网络插件不支持的关系,之后的实验我将尝试使用各种不同的网络插件,查看它们的效果以及是否支持。

kubectl get pod -n kube-system

所以我决定本次实验使用ipv4、ipv6双栈集群进行部署。


部署容器

前面的基本部署的操作与之前的实验都是一样,如果不知道可以点击下方链接查看我的另一篇文章。

kubernetes建立ipv4、ipv6双栈集群下面正式开始部署容器。

kubectl configmap 文件覆盖 kubectl config view_kubernetes

首先在master节点的主机上输入以下命令,建立nginx容器,注意,在部署容器之前一定要先部署好cni网络,不然容器会一直处于ContainerCreating状态。

kubectl create deployment nginx --image=nginx

kubectl configmap 文件覆盖 kubectl config view_ubuntu_02

打开服务端口,命令如下:

kubectl expose deployment nginx --port 80 --type=NodePort

kubectl configmap 文件覆盖 kubectl config view_nginx_03

查看容器是否运行:

kubectl get pod,svc

kubectl configmap 文件覆盖 kubectl config view_nginx_04

可以使用以下命令查看部署在哪个节点上:

kubectl get pods -o wide

kubectl configmap 文件覆盖 kubectl config view_集群管理_05

然后使用node节点的ip加上对外访问的端口访问该服务,如下图所示:

kubectl configmap 文件覆盖 kubectl config view_kubernetes_06

 


部署可视化集群管理

执行以下命令来运行Kuboard v3

kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml

kubectl configmap 文件覆盖 kubectl config view_kubernetes_07

使用以下命令查看Kuboard v3是否running,以及端口号

kubectl get pods,svc -n kuboard

kubectl configmap 文件覆盖 kubectl config view_容器_08

然后使用master节点的ip地址加上端口号30080访问Kuboard,会出现如下图所示的登录界面,默认的账号是admin,密码为Kuboard123

kubectl configmap 文件覆盖 kubectl config view_集群管理_09

登录之后的界面如下图所示,可以实现可视化集群管理

kubectl configmap 文件覆盖 kubectl config view_集群管理_10

 


总结

本文对于在双栈环境下部署容器以及可视化管理进行了基础的学习,接下来我将尝试各种不同的cni,查看不同网络插件对于ipv6的支持程度以及效果。