什么是Kubernetes
Kubernetes,又称k8s,是一个开源容器编排、管理平台,具备自动部署、自动伸缩、负载均衡、服务发现等功能,近年来受到了广泛的支持和使用,很多公司都有直接使用或者基于k8s开发的部署平台,了解和学习k8s对于以后使用甚至二开k8s都有很大的用处。
部署
部署前准备
机器
机器可以选择自己的笔记本或台式机,也可以买云服务器,自己的机器一般使用虚拟机管理软件比如VMware新建多个虚拟机在本地部署,这种方式可作为学习和尝试使用,这里因为要方便后面长期部署管理,选择使用云服务器的方式进行部署,为三台2核4G的服务器。
服务器的操作系统一般Centos或者Ubuntu,也可以选择其他自己喜欢的操作,尽量选主流的,如果遇到问题可以利用搜索引擎查找相关问题排查,如果太小众的可能没有太多可参考的。
环境
由于节点和节点之间需要通信,如果是使用云服务器可选择同地域下或者同子网下的机器,方便机器之间通信。当然,如果不是同地域甚至不同的云厂商也是可以的,不过麻烦一些。
所有的机器都需要能通过ssh进行访问。在部署前需要做一些设置:
关闭防火墙
1
systemctl disable firewalld --now
设置selinux
1
2$ yum install -y container-selinux selinux-policy-base
$ yum install -y https://rpm.rancher.io/k3s/latest/common/centos/7/noarch/k3s-selinux-0.2-1.el7_8.noarch.rpm # 适用于Centos 7
开始部署
k8s的部署方式有好几种,比如使用minikube或者kubeadmin来部署,这里为了方便和快速,选择使用k3s,k3s相比于其他的比较轻量,对于小机器很友好,也适合边缘计算,具体介绍看k3s.
安装
如果使用官方的安装方法,由于众所周知的原因,可能会很慢甚至卡住,所以这里选择离线部署。
需要下载的资源:
官方安装脚本
k3s二进制文件
k3s,根据自己的机器选择对应的版本,这里下载了k3s
必要的image
image,根据自己的机器选择对应的版本,这里下载了k3s-airgap-images-amd64.tar.gz
将这三个文件分别上传到三台服务器上,网络条件好也可以直接在服务器上下载
执行安装脚本
1 | $ mv k3s /usr/local/bin |
将所需的镜像移动到安装位置
1 | $ mkdir -p /var/lib/rancher/k3s/agent/images/ |
这里无须解压,执行安装时脚本会自动解压,这里的目的就是免下载,如果让脚本自己下载会很慢。
部署master节点
1 | # 进入到脚本所在目录 |
部署node节点
先master节点的服务器获取master节点的token
1 | $ cat cat /var/lib/rancher/k3s/server/node-token |
复制后分别在两个Node节点的服务器执行:
1 | $ INSTALL_K3S_SKIP_DOWNLOAD=true K3S_URL=https://master_ip:6443 K3S_TOKEN=your_master_token ./install.sh |
K3S_URL是master节点的地址,必须是https协议,K3S_TOKEN是刚才在master节点获取的token
检查
查看节点状态,在master节点执行:
1 | $ kubectl get node |

如果节点的状态Status都是Ready,说明一经部署成功了。
总结
k8s的部署不难,如果按照步骤去操作,就可以比较顺利地部署好,如果没有成功,可以多检查几遍哪里没有做对,或者善于利用搜索引擎进行问题定位修复。
