Kubernetes 对服务器性能与内存的要求比较高,选择更轻量级的 K3s 是一个不错的选择,适合小型项目的运维。
安装
官方给出的安装方式:
curl -sfL https://get.k3s.io | sh -
但是这种方式需要科学上网,或者下载速度很慢,因此可以用下面的镜像站:
curl –sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_EXEC="--docker" sh -s -
验证
安装完成之后,可以用下面的命令验证是否安装成功:
root@VM-0-6-ubuntu:~# k3s kubectl get nodes
NAME STATUS ROLES AGE VERSION
vm-0-6-ubuntu Ready control-plane 38s v1.35.5+k3s1
常见问题
cgroup 兼容性
安装完成后尝试验证时发现如下问题:
root@VM-0-6-ubuntu:~# k3s kubectl get nodes
E0603 20:25:56.954647 284858 memcache.go:265] "Unhandled Error" err="couldn't get current server API group list: the server is currently unable to handle the request"
Error from server (ServiceUnavailable): the server is currently unable to handle the request
查看 K3s 服务状态:
systemctl status k3s
如果日志出现:
Error: failed to validate kubelet configuration, error: kubelet is configured to not run on a host using cgroup v2
说明是 cgroup 的兼容性问题,解决方法如下:
mkdir -p /etc/rancher/k3s
cat > /etc/rancher/k3s/config.yaml <<EOF
kubelet-arg:
- "cgroup-driver=systemd"
- "cgroup-root=/"
EOF
然后重启服务即可:
systemctl daemon-reload
systemctl start k3s
如果还是不行,那就检查系统版本并启用纯 cgroup v2 再试一次,具体流程可百度或 AI,根据实际情况操作。
拒绝访问
执行 k3s kubectl get nodes 出现 The connection to the server 127.0.0.1:6443 was refused - did you specify the right host or port?
查看服务日志发现:Polling for API server readiness…
执行下面的命令清空配置再重启即可:
systemctl stop k3s
rm -rf /var/lib/rancher/k3s/server/db
rm -rf /var/lib/rancher/k3s/server/cred
rm -rf /var/lib/rancher/k3s/server/tls
rm -rf /var/lib/rancher/k3s/server/manifests/*.yaml
systemctl start k3s



