在 k8s 集群上安装 rook 失败

Failed to install rook on k8s cluster

我正在尝试在 k8s 集群中创建一个 rook 集群。

设置 - 1 个主节点,1 个工作节点

这些是我遵循的步骤

Master node: 
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
sudo sysctl net.bridge.bridge-nf-call-iptables=1
sudo sysctl net.bridge.bridge-nf-call-ip6tables=1
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/32a765fd19ba45b387fdc5e3812c41fff47cfd55/Documentation/kube-flannel.yml
kubeadm token create --print-join-command

Worker node: 
kubeadm join {master_ip_address}:6443 --token {token} --discovery-token-ca-cert-hash {hash} --apiserver-advertise-address={worker_private_ip}

Master node - Install rook - (reference - https://rook.github.io/docs/rook/master/ceph-quickstart.html):
kubectl create -f ceph/common.yaml
kubectl create -f ceph/operator.yaml
kubectl create -f ceph/cluster-test.yaml

创建 rook-ceph-operator pod 时出错:

(combined from similar events): Failed create pod sandbox: rpc error: code = 
Unknown desc = failed to set up sandbox container "4a901f12e5af5340f2cc48a976e10e5c310c01a05a4a47371f766a1a166c304f" 
network for pod "rook-ceph-operator-fdfbcc5c5-jccc9": networkPlugin cni failed to 
set up pod "rook-ceph-operator-fdfbcc5c5-jccc9_rook-ceph" network: failed to set bridge addr: 
"cni0" already has an IP address different from 10.244.1.1/24

谁能帮我解决这个问题?

如果您 kubeadm reset 然后 kubeadm init 重新初始化 Kubernetes,就会出现此问题。

kubeadm reset
systemctl stop kubelet
systemctl stop docker
rm -rf /var/lib/cni/
rm -rf /var/lib/kubelet/*
rm -rf /etc/cni/
ifconfig cni0 down
ifconfig flannel.1 down
ifconfig docker0 down

在此之后再次启动 docker 和 kubelet 和 kubeadm。

解决方法

您也可以尝试这种简单易行的解决方法

ip link delete cni0
ip link delete flannel.1

这取决于您在 k8s 中使用的网络。