目的
“K8s在容器编排领域已经形成统治地位,不管是开发、运维和测试,掌握 kubernetes 都变得非常有必要。” —— 相信大家应该在各类技术论坛与博客中早已看见过如上的一段话。的确在敏捷开发占主导模式的现今,无论是项目任何阶段都随处可见K8s的身影,基础扩展要求、故障转移、部署模式等,以上这些基于K8s的特性与强大功能,都可以随时随地实现与落地。
对于测试的同学来说,测试环境的集中化、自动化管理,这些也可以依托于K8s的功能来实现。日常工作中的测试环境集群也经常会有按需调整(加入新的服务器或销毁资源)的情况,K8s可以满足我们相关的大部分工作需求。另一方面,持续集成领域中,K8s也是不可或缺的重要角色之一,有了他就可以使我们在平时的测试活动前期更加快速有效的自动部署测试环境。
所以作为有一定工作经验的测试同学来说,K8s绝对是无法绕过的一项重要技能。
说明
1.此笔记的中所使用的操作系统为CentOS7.9,笔记中所涉及的软件版本有可能会因为时间的推移而导致不匹配或其他额外的操作,请大家有针对性的选择阅读与参考。
2.此笔记中的所有操作均基于root用户进行,其他用户如无权限请自行搜索(linux的基础操作这里不展开讨论),友情提示:即使有权限,也千万别在公司相关生产环境内试验探索哦。
前期准备
- 准备两至三台服务器(真机、虚拟机随意)
- 可从服务器名上区分为master与node
- 所有服务器上需安装docker
- 虚拟机的话硬件分配资源时最好能高于2G内存、双核CPU
- K8s我们安装的版本为1.23.5,我们之前安装的docker版本为20.10.17,因为K8s正常运行是需要对应的docker版本支持的,所以不可以随意安装任意版本K8s与docker。
docker安装与配置使用可以参看:
安装:docker使用手册(1)软件安装
配置:docker使用手册(2)软件配置
与K8s对应的docker版本号可以在K8s的github上进行查看:GitHub-Kubernetes
环境配置
关闭防火墙
代码语言:javascript复制systemctl stop firewalld
代码语言:javascript复制systemctl disable firewalld
禁用selinux
代码语言:javascript复制setenforce 0
编辑selinux配置文件
修改为以下内容
代码语言:javascript复制SELINUX=disabled
取消防火墙(生产环境慎用)
代码语言:javascript复制iptables -F
重启docker服务
代码语言:javascript复制systemctl daemon -reload
代码语言:javascript复制systemctl restart docker
关闭交换区
代码语言:javascript复制swapoff -a
以上命令只是临时关闭交换区,需要永久关闭的话需要修改fstab文件
代码语言:javascript复制vim /etc/fstab
找到swap所在那行信息整行注释即可
重新加载配置
代码语言:javascript复制mount -a
查看存储信息
代码语言:javascript复制free -h
swap信息那一行为0就说明关闭了
下载安装
创建kubernetes.repo文件,配置yum源
代码语言:javascript复制vim /etc/yum.repos.d/kubernetes.repo
在此文件中添加如下内容
kubernetes name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
添加完成后使用以下命令查看是否有可用的K8s包
代码语言:javascript复制yum repolist
接下来安装kubeadm、kubelet、kubectl,指定版本为1.23.5,当然你如果清楚版本对应的话可以指定其他的K8s版本
代码语言:javascript复制yum install -y kubelet-1.23.5 kubeadm-1.23.5 kubectl-1.23.5
注意:如果输入以上命令后出现如下错误信息
Errno -1 repomd.xml signature could not be verified for kubernetes
可以将配置文件kubernetes.repo里的repo_gpgcheck修改为0,不对gpgkey进行检查即可
安装完成
启动kubelet,并配置开机启动
代码语言:javascript复制systemctl start kubelet
代码语言:javascript复制systemctl enable kubelet
验证kubelet版本号
代码语言:javascript复制kubelet --version