k3s-(1)k3s主从安装

部署轻量级Kubernetes集群来减少内存占用,那么你一定要考虑由Rancher Labs发布的轻量级Kubernetes发行版——k3s。

它把安装Kubernetes所需的一切文件都打包进一个40MB大小的二进制文件中,仅需512MB的RAM即可运行。非常适用于资源有限的环境,如边缘计算场景、IoT等。
k3s is 5 less then k8s,直接翻译过来就是k3s比k8s少了5个字符,引申一下就是k3s就是k8s的简化版。可以看做k8s的一个衍生版,特点就是轻量。
具体描述请看官方文档 https://docs.rancher.cn/k3s/#_1-what-is-this

1.k3s主节点安装

1
hostnamectl set-hostname 192.168.67.125

使用以下方法加速安装:

1
curl -sfL https://docs.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -

安装后输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[INFO]  Finding latest release
[INFO] Using v1.17.4+k3s1 as release
[INFO] Downloading hash mirror-k3s.rancher.cn/download/v1.17.4-k3s1/sha256sum-amd64.txt
[INFO] Downloading binary mirror-k3s.rancher.cn/download/v1.17.4-k3s1/k3s
[INFO] Verifying binary download
[INFO] Installing k3s to /usr/local/bin/k3s
[INFO] Skipping /usr/local/bin/kubectl symlink to k3s, command exists in PATH at /usr/bin/kubectl
[INFO] Skipping /usr/local/bin/crictl symlink to k3s, command exists in PATH at /usr/bin/crictl
[INFO] Skipping /usr/local/bin/ctr symlink to k3s, command exists in PATH at /usr/bin/ctr
[INFO] Creating killall script /usr/local/bin/k3s-killall.sh
[INFO] Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO] env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO] systemd: Creating service file /etc/systemd/system/k3s.service
[INFO] systemd: Enabling k3s unit
Created symlink from /etc/systemd/system/multi-user.target.wants/k3s.service to /etc/systemd/system/k3s.service.
[INFO] systemd: Starting k3s

安装完成之后,服务会自动启动

1
2
3
4
5
6
7
8
9
10
11
12
13
systemctl status k3s

● k3s.service - Lightweight Kubernetes
Loaded: loaded (/etc/systemd/system/k3s.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2020-04-13 09:01:03 EDT; 16min ago
Docs: https://k3s.io
Process: 5513 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)
Process: 5511 ExecStartPre=/sbin/modprobe br_netfilter (code=exited, status=0/SUCCESS)
Main PID: 5515 (k3s-server)
Memory: 388.0M
CGroup: /system.slice/k3s.service
└─5548 containerd -c /var/lib/rancher/k3s/agent/etc/containerd/config.toml -a /run/k3s/containerd/containerd.sock --state /run/k3s/containerd --root /var/lib/rancher/k3s/agent/containerd
‣ 5515 /usr/local/bin/k3s server

安装完成后,我们需要调整下K3S的服务配置文件,以将K3S的默认容器引擎从Containerd切换到Docker。

1.2修改K3S服务的配置文件:

1
vim /etc/systemd/system/multi-user.target.wants/k3s.service

文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[Unit] 
Description=Lightweight Kubernetes
Documentation=https://k3s.io
After=network-online.target
[Service]
Type=notify
EnvironmentFile=/etc/systemd/system/k3s.service.env
ExecStartPre=-/sbin/modprobe br_netfilter
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/local/bin/k3s server
KillMode=process
Delegate=yes
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
TimeoutStartSec=0
Restart=always
[Install]
WantedBy=multi-user.targe

在这里我们需要修改ExecStart的值,将其修改为:

1
/usr/local/bin/k3s server --docker --no-deploy traefik

之后保存退出,执行命令重新加载新的服务配置文件:

1
systemctl daemon-reload

完成后重启K3S服务:

1
service k3s restart

稍等数十秒,之后通过命令确认K3S集群是否就绪:

1
k3s kubectl get node

如果得到类似如下的结果:

1
2
3
NAME                  STATUS   ROLES    AGE     VERSION 

k3s01.ilemonrain.io Ready <none> 3m34s v1.14.1-k3s.4

则说明K3S集群启动成功。

1.3添加worker节点:

在agent节点上安装并将它们添加到现有集群中,应该传递环境变量K3S_URL,并且还需要同时传递K3S_TOKEN或者K3S_CLUSTER_SECRET。

K3S_TOKEN创建在/var/lib/rancher/k3s/server/node-token

1
cat /var/lib/rancher/k3s/server/node-token K1042e2f8e353b9409472c1e0cca8457abe184dc7be3f0805109e92c50c193ceb42::node:c83acbf89a7de7026d6f6928dc270028

设置IP,获取主节点token,加入主节点集群

1
2
3
hostnamectl set-hostname 192.168.67.125

curl -sfL https://docs.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://192.168.67.128:6443 K3S_TOKEN=K1074138cd2c349e75454219b38de8eac0aad401ab80e3135c49d93a51db92bf8f7::server:8c956ed05c36e14b2a8085eb47d13445 sh -

安装完成后

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[INFO]  Finding latest release [INFO]  Using v0.8.1 as release 
[INFO] Downloading hash https://github.com/rancher/k3s/releases/download/v0.8.1/sha256sum-amd64.txt
[INFO] Downloading binary https://github.com/rancher/k3s/releases/download/v0.8.1/k3s
[INFO] Verifying binary download
[INFO] Installing k3s to /usr/local/bin/k3s
[INFO] Creating /usr/local/bin/kubectl symlink to k3s
[INFO] Creating /usr/local/bin/crictl symlink to k3s
[INFO] Creating /usr/local/bin/ctr symlink to k3s
[INFO] Creating killall script /usr/local/bin/k3s-killall.sh
[INFO] Creating uninstall script /usr/local/bin/k3s-agent-uninstall.sh
[INFO] env: Creating environment file /etc/systemd/system/k3s-agent.service.env
[INFO] systemd: Creating service file /etc/systemd/system/k3s-agent.service
[INFO] systemd: Enabling k3s-agent unit Created symlink /etc/systemd/system/multi-user.target.wants/k3s-agent.service → /etc/systemd/system/k3s-agent.service.
[INFO] systemd: Starting k3s-agent

验证安装:

1
systemctl status k3s-agent

如果 Active: active (running) 说明启动成功

查看agent节点是否已经加入到了集群中:

1
2
3
4
k3s kubectl get nodes 
NAME STATUS ROLES AGE VERSION
test01-201 Ready master 12h v1.15.4-k3s.1
test02-202 Ready worker 11h v1.15.4-k3s.1

安装完成后,我们需要

1.4修改下K3S-agent的服务配置文件

,以将K3S的默认容器引擎从Containerd切换到Docker。

修改K3S-agent服务的配置文件,以将K3S-agent的默认容器引擎从Containerd切换到Docker

1
vim /etc/systemd/system/multi-user.target.wants/k3s-agent.service

service k3s-agent restart

在这里我们需要修改ExecStart的值,将其修改为:

1
/usr/local/bin/k3s-agent server --docker --no-deploy traefik

之后保存退出,执行命令重新加载新的服务配置文件:

1
systemctl daemon-reload

完成后重启K3S-agent服务:

1
service k3s-agent restart

1.5最后检查服务是安装成功

检查pod的状态:

1
2
3
4
5
6
7
8
9
10
11
k3s kubectl get po --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system svclb-traefik-9x9d8 2/2 Running 0 15h
cattle-system cattle-node-agent-zmxvg 1/1 Running 0 15h
kube-system svclb-traefik-zdm8v 2/2 Running 0 5m11s
cattle-system cattle-node-agent-2xhzx 1/1 Running 0 5m11s
kube-system local-path-provisioner-58fb86bdfd-q6klf 1/1 Running 0 91s
kube-system metrics-server-6d684c7b5-l5kts 1/1 Running 0 91s
cattle-system cattle-cluster-agent-768f7755c9-knjg8 1/1 Running 0 91s
kube-system coredns-6c6bb68b64-kjrgd 1/1 Running 0 91s
kube-system traefik-7b8b884c8-dk4t7 1/1 Running 0 91s
1
kubectl get pods -A

查看服务安装失败具体信息

1
kubectl describe pods coredns-d798c9dd-mpbpc -n kube-system

k3s版本信息

1
2
k3s --version
k3s version v1.0.0 (18bd921c)

1.6可能出现的问题:

如果从节点有卸载后重装

server将在单个节点的/var/lib/rancher/k3s/server/cred/node-passwd路径存储密码, worker节点将使用节点集群密钥以及存储在/etc/rancher/node/password

2个必须保持一致

大功告成啦!
如果你需要更高级的配置,请参阅K3S官方文档:https://docs.rancher.cn/k3s/#_1-what-is-this

部分截图



参考地址
https://juejin.im/post/5dc915dbf265da4d1d330160
https://blog.csdn.net/qq_43792385/article/details/104613119
https://segmentfault.com/a/1190000020877212

-------------本文结束-------------
0%