
Kubernetes集群管理(上)
作者 | 乔克
来源 |运维开发故事(ID:mygsdcsf)
转载请联系授权(微信ID:wanger5354)
大家好,我是乔克。
Kubernetes作为容器的编排平台,它是以集群的形式为业务提供服务。所以在日常的工作中,作为Kubernetes平台的维护者,会经常对集群进行管理。
这里,我将集群管理分为以下几种:
安装集群
前置说明
Kubernetes的集群安装分为:kubeadm安装和二进制安装。在这里,只会介绍kubeadm的安装。
安装说明:
集群节点:2个
IP信息:
master:192.168.205.128
node:192.168.205.128
Kubernetes版本:v1.24.2
运行时:containerd
系统:centos 7.9
系统内核:3.10.0-1160
环境准备
这是安装的不是生产级别的集群,只是为了演示使用。
(1)在每个节点添加host信息
(2)关闭防火墙和SELinux
(3)优化内核参数
执行以下命令使其生效:
(4)关闭swap空间
注释/etc/fstab文件中swap挂载。
(5)安装ipvs软件包
(6)同步服务器时间
(7)安装containerd
创建containerd配置文件。
启动containerd。
(8)安装Kubernetes组件
安装指定版本的组件。
设置运行时。
设置kubelet为自启动。
初始化集群
上面把基础环境准备好了,现在开始真正的进行集群初始化。
初始化master节点
然后接下来在 master 节点配置 kubeadm 初始化文件,可以通过如下命令导出默认的初始化配置:
然后根据我们自己的需求修改配置,比如修改 imageRepository 的值,kube-proxy 的模式为 ipvs,需要注意的是由于我们使用的containerd作为运行时,所以在初始化节点的时候需要指定cgroupDriver为systemd【1】
然后使用上面的配置文件进行初始化:
如上输出表示master节点初始化成功。
初始化node节点
在初始化node节点的时候,必须把kubernetes需要的组件安装上。确保安装完成后,使用初始化master节点成功后输出的命令加入节点即可。
然后可以在master节点使用kubectl get node查看节点是否加入。
初始化网络
通过上面kubectl get node查看节点信息的时候发现节点的STATUS是NotReady,这是因为现在整个集群还没有相应的网络插件,导致整个集群并不能正常的运行,下面我们就来安装对应的网络插件。
网络插件的选择有很多种,比如flannel,calico等。
(1)下载calico的yaml清单
(2)安装calico
(3)在集群中查看安装结果
现在可以看到kubernetes所有节点的状态变成Ready了。
安装Dashboard
上面集群安装完成后,基本都需要使用命令行进行操作,如果为了提升集群的可视化,可以安装一些Dashboard。
目前市面上的Dashboard有很多,比如kubesphere、kuboard、kubernetes dashboard等。这里安装的是kubernetes dashboard,其他可视化产品可以自己去了解并使用。
(1)使用如下命令进行安装
(2)查看安装情况
(3)访问 首先将kubernetes-dashboard的service改成NodePort,然后通过节点IP+NodePort端口进行访问。
修改完成过后信息如下。
在浏览器输入https://192.168.205.128:30497进行访问,如下:
这里访问要使用token或者kubeconfig,这里使用token进行访问。
(1)生成token,这里直接生成admin级别的token。
说明:从kubernetes 1.24版本开始,移除了创建serviceaccount自动创建secret token的功能,所以需要自己创建secret token和serviceaccount进行关联。
(2)获取token
然后就可以登录查看集群信息了。
