目的

  “K8s在容器编排领域已经形成统治地位,不管是开发、运维和测试,掌握 kubernetes 都变得非常有必要。” —— 相信大家应该在各类技术论坛与博客中早已看见过如上的一段话。的确在敏捷开发占主导模式的现今,无论是项目任何阶段都随处可见K8s的身影,基础扩展要求、故障转移、部署模式等,以上这些基于K8s的特性与强大功能,都可以随时随地实现与落地。

  对于测试的同学来说,测试环境的集中化、自动化管理,这些也可以依托于K8s的功能来实现。日常工作中的测试环境集群也经常会有按需调整(加入新的服务器或销毁资源)的情况,K8s可以满足我们相关的大部分工作需求。另一方面,持续集成领域中,K8s也是不可或缺的重要角色之一,有了他就可以使我们在平时的测试活动前期更加快速有效的自动部署测试环境。

  所以作为有一定工作经验的测试同学来说,K8s绝对是无法绕过的一项重要技能。



说明

1.此笔记的中所使用的操作系统为CentOS7.9,笔记中所涉及的软件版本有可能会因为时间的推移而导致不匹配或其他额外的操作,请大家有针对性的选择阅读与参考。
2.此笔记中的所有操作均基于root用户进行,其他用户如无权限请自行搜索(linux的基础操作这里不展开讨论),友情提示:即使有权限,也千万别在公司相关生产环境内试验探索哦。



前期准备

  1. 准备两至三台服务器(真机、虚拟机随意)
  2. 可从服务器名上区分为master与node
  3. 所有服务器上需安装docker
  4. 虚拟机的话硬件分配资源时最好能高于2G内存、双核CPU
  5. K8s我们安装的版本为1.23.5,我们之前安装的docker版本为20.10.17,因为K8s正常运行是需要对应的docker版本支持的,所以不可以随意安装任意版本K8s与docker。

docker安装与配置使用可以参看:
安装:docker使用手册(1)软件安装
配置:docker使用手册(2)软件配置

与K8s对应的docker版本号可以在K8s的github上进行查看:GitHub-Kubernetes



环境配置


关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

禁用selinux

setenforce 0

编辑selinux配置文件
修改为以下内容

SELINUX=disabled

取消防火墙(生产环境慎用)

iptables -F

重启docker服务

systemctl daemon -reload
systemctl restart docker

关闭交换区

swapoff -a

以上命令只是临时关闭交换区,需要永久关闭的话需要修改fstab文件

vim /etc/fstab

找到swap所在那行信息整行注释即可

在这里插入图片描述

重新加载配置

mount -a

查看存储信息

free -h

在这里插入图片描述
swap信息那一行为0就说明关闭了



下载安装


创建kubernetes.repo文件,配置yum源

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包

yum repolist

在这里插入图片描述

接下来安装kubeadm、kubelet、kubectl,指定版本为1.23.5,当然你如果清楚版本对应的话可以指定其他的K8s版本

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,并配置开机启动

systemctl start kubelet
systemctl enable kubelet

验证kubelet版本号

kubelet --version

在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐