懒猫微服安装K3S(有几个小坑)

忘机山人

发布于123天前
博客图片修整中,看不了可以先搜索公众号“忘机山人”看。

K3s 是 Rancher 推出的轻量级 Kubernetes 发行版,一个二进制文件搞定一切,特别适合边缘计算、IoT、开发测试等场景。
本文记录在一个轻量 Linux 容器(lzcbox)中从零安装 K3s 的完整过程,包括踩坑和解决方案。

https://appstore.lazycat.cloud/#/shop/detail/cloud.lazycat.app.dockge

都玩K3S了,相信你一定会使用SSH了。可以看我之前文章开启SSH哦~

如果网络OK的话一行命令搞定:

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

安装脚本会自动:

  • 下载 k3s 二进制文件到 /usr/local/bin/k3s
  • 创建 /usr/local/bin/kubectl 软链接指向 k3s
  • 创建 /usr/local/bin/crictl 软链接
  • 创建 systemd 服务文件并启动 k3s
  • 创建卸载脚本 /usr/local/bin/k3s-uninstall.sh

安装输出示例:

[INFO]  Finding release for channel stable
[INFO]  Using v1.34.5+k3s1 as release
[INFO]  Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.34.5%2Bk3s1/k3s
[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]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
[INFO]  systemd: Starting k3s

因为网络原因镜像下载不下来,所以出现systemd: Starting k3s的时候我们停掉。

然后下载离线的包:

sudo mkdir -p /var/lib/rancher/k3s/agent/images/
cp k3s-airgap-images-amd64.tar.zst /var/lib/rancher/k3s/agent/images/

还有一个注意,不然一直起不来。

内核不允许嵌套挂载 overlayfs。K3s 默认使用 overlayfs 作为 containerd 的 snapshotter,导致服务一直卡在 activating (start) 状态,日志循环报错:

"overlayfs" snapshotter cannot be enabled for "/var/lib/rancher/k3s/agent/containerd",
try using "fuse-overlayfs" or "native"

切换 snapshotter 为 native

mkdir -p /etc/rancher/k3s
echo 'snapshotter: native' > /etc/rancher/k3s/config.yaml
systemctl restart k3s

然后重启:

systemctl restart k3s

5. 验证

k3s kubectl get nodes
k3s kubectl get pods -A

然后就可以启动,因为ghcr的nginx默认在8080端口,换一个终端curl一下就行了。

k3s kubectl run nginx --image=ghcr.io/nginxinc/nginx-unprivileged:latest --port=8080

k3s kubectl port-forward pod/nginx 8080:8080 --address=0.0.0.0

然后就可以兼容K8S得模式在微服上玩转K3S了,Docker根本不够玩。

but 重启之后这些配置还会丢失。。。探索ing

image.png

评论

0

暂无评论

说点什么呢~
收藏
0
0
0