MENU

debian下搭建k3s集群手记

May 16, 2023 • linux阅读设置

上次在折腾过K8S之后,发现用于测试开发环境实在过于臃肿了。
发现k3s比k8s更为轻量,而且该有的东西也一样不少,故而建议在测试环境使用k3s比较好!

下面引用k3s官方的简介作为参考:

K3s 是轻量级的 Kubernetes。K3s 易于安装,仅需要 Kubernetes 内存的一半,所有组件都在一个小于 100 MB 的二进制文件中。

一.先决条件

我这里使用了本机虚拟化服务器做测试,配置为2核4g
使用的linux系统为debian,网上大多数教程是基于centos,我个人更喜欢debian

机器架构:

nameip防火墙开放端口
master192.168.10.4110250,10251,10252,10255,2379,2380,6443
node1192.168.10.5310250,30000-32767
node2192.168.10.5410250,30000-32767

二.准备工作

我们这里使用离线安装方式,所以需要提前下载好所需资料

  1. k3s可执行文件
  2. k3s image镜像文件
  3. k3s install.sh脚本

第1个和第2个文件可以直接去github上面下载:
https://github.com/k3s-io/k3s/releases/tag/v1.27.1%2Bk3s1
iShot_2023-05-16_16.00.12.png

第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

Archives QR Code
QR Code for this page
Tipping QR Code
Leave a Comment

已有 1 条评论
  1. 山

    想问一下epusdt这个项目,就是我支付成功后怎么通知前端修改界面上的余额,用websocket吗?