上次在折腾过K8S之后,发现用于测试开发环境实在过于臃肿了。
发现k3s比k8s更为轻量,而且该有的东西也一样不少,故而建议在测试环境使用k3s比较好!
下面引用k3s官方的简介作为参考:
K3s 是轻量级的 Kubernetes。K3s 易于安装,仅需要 Kubernetes 内存的一半,所有组件都在一个小于 100 MB 的二进制文件中。
一.先决条件
我这里使用了本机虚拟化服务器做测试,配置为2核4g
使用的linux系统为debian
,网上大多数教程是基于centos
,我个人更喜欢debian
。
机器架构:
name | ip | 防火墙开放端口 |
---|---|---|
master | 192.168.10.41 | 10250,10251,10252,10255,2379,2380,6443 |
node1 | 192.168.10.53 | 10250,30000-32767 |
node2 | 192.168.10.54 | 10250,30000-32767 |
二.准备工作
我们这里使用离线安装方式,所以需要提前下载好所需资料
- k3s可执行文件
- k3s image镜像文件
- k3s install.sh脚本
第1个和第2个文件可以直接去github上面下载:
https://github.com/k3s-io/k3s/releases/tag/v1.27.1%2Bk3s1
第3个文件我们直接访问https://get.k3s.io
然后将内容copy下来,保存为install.sh
将以上三个文件分别放在三台机器上的home
目录即可
1.设置hostname
在每台机器上设置对应的hostname
,例如master我这里就设置的k8s-master
,其他两台机器分别是:k8s-node1
,k8s-node2
sudo hostnamectl set-hostname xxxx
2.修改机器hosts
每台机器的hosts
都设置成对应的hostname
sudo vim /etc/hosts
192.168.10.41 k8s-master
192.168.10.54 k8s-node1
192.168.10.53 k8s-node2
3.关闭防火墙(如果有)
sudo ufw disable
4.关闭swap,提高linux性能,我的建议是最好都关闭,以免出现不可预知的错误
sudo swapoff -a
sudo sed -ri '/\sswap\s/s/^#?/#/' /etc/fstab
完成后重启所有机器
三.安装Master
# 将k3s二进制文件移动到/usr/local/bin目录
sudo mv k3s /usr/local/bin
# 添加执行权限
sudo chmod +x /usr/local/bin/k3s
# 新建目录
sudo mkdir -p /var/lib/rancher/k3s/agent/images/
# 将镜像移动到此目录
sudo cp ./k3s-airgap-images-amd64.tar.gz /var/lib/rancher/k3s/agent/images/
# 添加执行权限
sudo chmod +x install.sh
# 离线安装
sudo INSTALL_K3S_SKIP_DOWNLOAD=true ./install.sh
# 安装完成后,查看节点状态
sudo kubectl get node
# 查看token
sudo cat /var/lib/rancher/k3s/server/node-token
K10b047640e8ce99693680c537531b193815e7adf538c44cc64f1611c77bd369fdc::server:0b826e404ed3941efa5db87d66589eb9
四.安装worker节点(在所有node节点执行)
# 将k3s二进制文件移动到/usr/local/bin目录
sudo mv k3s /usr/local/bin
# 添加执行权限
sudo chmod +x /usr/local/bin/k3s
# 新建目录
sudo mkdir -p /var/lib/rancher/k3s/agent/images/
# 将镜像移动到此目录(无需解压)
sudo cp ./k3s-airgap-images-amd64.tar.gz /var/lib/rancher/k3s/agent/images/
# 添加执行权限
sudo chmod +x install.sh
# 离线安装
sudo INSTALL_K3S_SKIP_DOWNLOAD=true \
K3S_URL=https://192.168.10.41:6443 \
K3S_TOKEN=K10b047640e8ce99693680c537531b193815e7adf538c44cc64f1611c77bd369fdc::server:0b826e404ed3941efa5db87d66589eb9 \
./install.sh
五.验证安装(回到master执行)
kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-master Ready control-plane,master 4h57m v1.27.1+k3s1
k8s-node2 Ready <none> 4h46m v1.27.1+k3s1
k8s-node1 Ready <none> 4h46m v1.27.1+k3s1
六.设置国内镜像加速
在所有节点执行命令
# 创建目录
mkdir -p /etc/rancher/k3s
# 设置镜像加速
cat > /etc/rancher/k3s/registries.yaml <<EOF
mirrors:
docker.io:
endpoint:
- "https://hub-mirror.c.163.com"
- "https://docker.mirrors.ustc.edu.cn"
- "https://registry.docker-cn.com"
EOF
# master重启
systemctl restart k3s
# node重启
systemctl restart k3s-agent
想问一下epusdt这个项目,就是我支付成功后怎么通知前端修改界面上的余额,用websocket吗?