k3s with multus cni
k3s with multus cni 最近在家部署了一个k3s,用于管理一些家用服务比如jellyfin,homeassistant等,在使用homeassistant时,遇到一些网络问题,在了解k8s一点网络架构后,需要在k8s中安装multus cni,为pod创建额外网口来解决我的问题。 一、安装multus 拉取官方git仓库git clone https://github.com/k8snetworkplumbingwg/multus-cni.git 然后打开code multus-cni 修改deployments/multus-daemonset.yml 需要修改有三处 cniVersion k3s 默认采用的 flannel 的 cniVersion 已经升级到 1.0.0 版本,为了 multus 可以正确生成 flannel 相关配置,需要把cniVersion提高到 1.0.0 kubeconfig multus 默认读取 kubeconfig 的路径为 /etc/cni/net.d/multus.d/multus.kubeconfig,但是 k3s 将相关配置保存在 /var/lib/rancher/k3s/agent/etc/ 中,导致 cni 相关的配置(下面volume)会改动到此,所以需要修改 kubeconfig 路径到 /var/lib/rancher/k3s/agent/etc/cni/net.d/multus.d/multus.kubeconfig volume 为了配置 k3s 资源的默认保存路径 将 /etc/cni/net.d 修改为 /var/lib/rancher/k3s/agent/etc/cni/net.d 将 /opt/multus/bin 修改为 /var/lib/rancher/k3s/data/current/bin 生成的diff文件 diff --git a/deployments/multus-daemonset.yml b/deployments/multus-daemonset.yml index ab626a66..28eb48af 100644 --- a/deployments/multus-daemonset.yml +++ b/deployments/multus-daemonset.yml @@ -125,7 +125,7 @@ data: }, "delegates": [ { - "cniVersion": "0....