#kubernetes
#kubernetes
Вопрос:
мой модуль застрял в статусе создания контейнера с этим массажем :
Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container "483590313b7fd092fe5eeec92356152721df3e971d942174464ac5a3f1529898" network for pod "my-nginx": networkPlugin cni failed to set up pod "my-nginx_default" network: CNI failed to retrieve network namespace path: cannot find network namespace for the terminated container "483590313b7fd092fe5eeec92356152721df3e971d942174464ac5a3f1529898", failed to clean up sandbox container "483590313b7fd092fe5eeec92356152721df3e971d942174464ac5a3f1529898" network for pod "my-nginx": networkPlugin cni failed to teardown pod "my-nginx_default" network: error getting ClusterInformation: Get https://[10.96.0.1]:443/apis/crd.projectcalico.org/v1/clusterinformations/default: dial tcp 10.96.0.1:443: i/o timeout]
состояние рабочего узла готово .
но kubectl get pods -n kube-system
, похоже, у вывода есть проблемы :
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-6dfcd885bf-ktbhb 1/1 Running 0 22h
calico-node-4fs2v 0/1 Init:RunContainerError 1 22h
calico-node-l9qvc 0/1 Running 0 22h
coredns-f9fd979d6-8pzcd 1/1 Running 0 23h
coredns-f9fd979d6-v4cq8 1/1 Running 0 23h
etcd-k8s-master 1/1 Running 1 23h
kube-apiserver-k8s-master 1/1 Running 128 23h
kube-controller-manager-k8s-master 1/1 Running 4 23h
kube-proxy-bwtwj 0/1 CrashLoopBackOff 342 23h
kube-proxy-stq7q 1/1 Running 1 23h
kube-scheduler-k8s-master 1/1 Running 4 23h
и результат выполнения команды kubectl -n kube-system logs kube-proxy-bwtwj
был :
failed to try resolving symlinks in path "/var/log/pods/kube-system_kube-proxy-bwtwj_1a0f4b93-cc6f-46b9-bf29-125feba593cb/kube-proxy/348.log": lstat /var/log/pods/kube-system_kube-proxy-bwtwj_1a0f4b93-cc6f-46b9-bf29-125feba593cb/kube-proxy/348.log: no such file or directory
Комментарии:
1. Как вы настроили свой CNI?
2. Я запустил kubectl apply -f docs.projectcalico.org/v3.14/manifests/calico.yaml команда для применения calico cni, и я устанавливаю —pod-network-cri=10.244.10.0/16 во время инициализации кластера: инициализация sudo kubeadm —apiserver-advertise-address=192.168.43.174 —pod-network-cidr=10.244.10.0/16
3. Вы решили эту проблему?
Ответ №1:
Я вижу здесь две темы:
- По умолчанию
--pod-network-cidr
для calico192.168.0.0/16
. Вы можете использовать другой, но всегда следите за тем, чтобы не было наложений. Тем не менее, я протестировал его по умолчанию, и мой кластер работает без проблем. Чтобы начать все сначала с правильной конфигурации, вы должны удалить узел и очистить плоскость управления. Затем продолжайте:
-
kubeadm init --pod-network-cidr=192.168.0.0/16
-
mkdir -p $HOME/.kube
-
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
-
chown $(id -u):$(id -g) $HOME/.kube/config
-
kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml
-
После этого присоединитесь к своим рабочим узлам с помощью
kubeadm join
Используйте sudo
там, где / если это необходимо. Все необходимые детали можно найти в официальной документации.
failed to try resolving symlinks
Ошибка означает, что kubelet ищет журналы pod в неправильном каталоге. Чтобы это исправить, вам нужно передать--log-dir=/var/log
флаг в kubelet. После добавления флага вы запустилиsystemctl daemon-reload
, чтобы kubelet был перезапущен. Это должно быть сделано на всех ваших узлах.
Комментарии:
1. Я сбросил kubadm и инициализировал свой кластер так, как вы упомянули, но все равно создал модуль прокси-сервера kube, застрявший в создании контейнера: (
2. кто-нибудь это исправит?
Ответ №2:
Убедитесь, что вы развернули calico, прежде чем присоединять другие узлы к вашему кластеру. Когда у вас есть другие узлы в вашем кластере calico-kube-controllers
, иногда происходит передача на рабочий узел. Это может привести к проблемам
Ответ №3:
Вам необходимо тщательно проверять журналы на наличие модулей calico-node. В моем случае у меня есть несколько других сетевых интерфейсов, и механизм автоматического определения в calico обнаруживал неправильный интерфейс (ip-адрес). Вам необходимо ознакомиться с этой документацией https://projectcalico.docs.tigera.io/reference/node/configuration .
То, что я сделал в моем случае, было просто:
kubectl set env daemonset/calico-node -n kube-system IP_AUTODETECTION_METHOD=cidr=172.16.8.0/24
cidr — это моя «рабочая сеть».
После этого все calico-узлы перезапустились, и внезапно все стало нормально.