尝试在LXD环境中配置k8s, 需要解决两个主要的问题

  1. 配置LXD的 profile ,解决 k8s 运行时缺少权限的问题
  2. 配置 lxc 容器,解决 kubelet 无法读取 kmsg 的问题

配置LXD的 profile

config:
  limits.cpu: "4" 
  limits.memory: 4GB
  limits.memory.swap: "false" 
  raw.lxc: "lxc.apparmor.profile=unconfined\nlxc.cap.drop= \nlxc.cgroup.devices.allow=a\nlxc.mount.auto=proc:rw sys:rw" 
  security.nesting: "true" 
  security.privileged: "true" 

主要配置 config 区段的 raw.lxc 、 security.nesting 和 security.privileged 的内容。

配置 lxc 容器,解决 kubelet 无法读取 kmsg 的问题

k8s 安装过程中,如果遇到 kubelet 不能够正常启动,可能的一个错误是 /dev/kmsg 不存在。就需要在容器环境里面,写入下面的配置:

echo 'L /dev/kmsg - - - - /dev/null' > /etc/tmpfiles.d/kmsg.conf

参考资料