K3S安装

环境信息

|软件名称 | 软件版本|
| :—-: | :—-: | :—-:
| k3s| v0.9.1 |

安装k3s

在线安装

执行在线安装脚本,会自动识别环境,拉取镜像,安装k3s
安装server端:

1
curl -sfL https://get.k3s.io | sh -

安装agent端:
获取连接server端的token

1
2
/var/lib/rancher/k3s/server/node-token  
k3s agent -s https://master_ip:6443 -t token

agent连接server端

1
curl -sfL https://get.k3s.io | K3S_URL=https://myserver:6443 K3S_TOKEN=XXX sh -

验证

1
2
3
4
5
6
k3s kubectl get node

NAME STATUS ROLES AGE VERSION
ubuntu-server Ready master 86m v1.15.4-k3s.1
ubuntu-agent Ready worker 86m v1.15.4-k3s.1

卸载
执行

1
/usr/local/bin/k3s-uninstall.sh 或k3s-agent-uninstall.sh 

注意:
在线安装有pause镜像会去k8s.gcr.io仓库拉取,在国内网络环境连接会受阻。

离线安装

准备下载离线包
在github,k3s release页下载对应的离线镜像

1
https://github.com/rancher/k3s/releases/

根据机器类型,下载对应的文件

文件 作用 机器类型
k3s k3s 可执行文件 x86 CPU架构64位系统
k3s-arm64 k3s可执行文件 ARM CPU架构 64位系统
k3s-armhf k3s可执行文件 ARM CPU架构 32位系统
k3s-airgap-images-amd64.tar 离线镜像包 x86 CPU架构64位系统
k3s-airgap-images-arm64.tar 离线镜像包 ARM CPU架构 64位系统
k3s-airgap-images-arm.tar 离线镜像包 ARM CPU架构 32位系统

选择对应的操作系统版本,下载对应的k3s可执行文件和离线镜像包。

注:
官方的Raspbian Buster Lite系统仍然是32位。

需要提前在打开操作系统cgroup

ubuntu18.04方法:

1
2
3
sudo vi /boot/firmware/cmdline.txt

cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory

Raspbian Buster Lite系统方法:

1
2
vi /boot/cmdline.txt
cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory

重启生效。

创建镜像存储目录

1
mkdir -p /var/lib/rancher/k3s/agent/images/

拷贝离线镜像件

1
sudo cp ./k3s-airgap-images-$ARCH.tar /var/lib/rancher/k3s/agent/images/

拷贝可执行文到/usr/bin目录,并配置可执行权限

1
2
cp k3sxxx /usr/bin/k3s
chmoad a+x /usr/bin/k3s

启动 k3s会自动解压并导入镜像文件

1
k3s server
1
2
rm /etc/rancher/k3s/k3s.yaml 
rm /var/lib/rancher/ -rf

查看集群

1
2
3
k3s  kubectl get node
NAME STATUS ROLES AGE VERSION
ubuntu Ready master 14s v1.15.4-k3s.1

agent连接
在server端获取agent连接server的token

1
cat   /var/lib/rancher/k3s/server/node-token

常见命令

列出当前集群镜像

1
k3s crictl images

列出当前集群容器

1
k3s crictl ps -a 
1
k3s crictl ps 

查看pod占用cpu 内存资源

1
k3s crictl stats

FAQ

不使用containerd直接docker

安装docker后

将离线镜像导入

1
docker load < k3s-airgap-images-arm64.tar 

执行k3s server

1
k3s server --docker

使用systemd启动k3s server

创建systemd文件

1
vim /etc/systemd/system/k3s.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[Unit]
Description=Lightweight Kubernetes
Documentation=https://k3s.io
After=network-online.target
[Service]
Type=${SYSTEMD_TYPE}
EnvironmentFile=${FILE_K3S_ENV}
ExecStartPre=-/sbin/modprobe br_netfilter
ExecStartPre=-/sbin/modprobe overlay
ExecStart=${BIN_DIR}/k3s \\
${CMD_K3S_EXEC}
KillMode=process
Delegate=yes
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
TimeoutStartSec=0
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target

根据实际情况修改ExecStar,server用server对应的命令,agent用agent对应指令。