在 k8s 集群的 control plane 服务器上用下面的命令安装 cilum
cilium install --version 1.20.1 \
--set ipam.mode=kubernetes \
--namespace kube-system \
--set bpf.masquerade=true \
--set kubeProxyReplacement=true \
--set image.repository="cnblogs-k8s/cilium" \
--set image.useDigest=false \
--set operator.image.repository="cnblogs-k8s/operator" \
--set operator.image.useDigest=false \
--set envoy.image.repository="cnblogs-k8s/cilium-envoy" \
--set envoy.image.useDigest=false
同样的命令之前在另外一个 k8s 集群成功安装过
安装后 cilium pod 无法启动,对应的错误日志如下
cilium cilium 1 pods of DaemonSet cilium are not ready
cilium cilium-64nxf unable to retrieve cilium status: command failed (pod=kube-system/cilium-64nxf, container=cilium-agent): command terminatedwith exit code 1: "Get \"http://localhost/v1/healthz\": dial unix /var/run/cilium/cilium.sock: connect: no such file or directory\nIs the agent running?\n"
cilium cilium-64nxf unable to retrieve cilium endpoint information: command failed (pod=kube-system/cilium-64nxf, container=cilium-agent):command terminated with exit code 1: "Error: cannot get endpoint list: Get \"http://localhost/v1/endpoint\": dial unix /var/run/cilium/cilium.sock: connect: nosuch file or directory\nIs the agent running?\n\n"
查看 cilium-agent 日志
kubectl logs -n kube-system cilium-64nxf -c cilium-agent --tail=50
发现下面的日志
Restoring proxy ports from file failed, falling back to restoring from iptables rules" module=agent.controlplane.l7-proxy file-path=/var/run/cilium/state/proxy_ports_state.json error="stat /var/run/cilium/state/proxy_ports_state.json: no such file or directory"
...
Waiting for k8s node information" module=agent.controlplane.local-node-sync error="required IPv4 PodCIDR not available