Шаги ==== Настройка haproxy: # hostnamectl set-hostname podsec-haproxy && reboot # apt-get install -y haproxy /etc/haproxy/haproxy.cfg: frontend main bind *:8443 mode tcp option tcplog default_backend apiserver backend apiserver option httpchk GET /healthz http-check expect status 200 mode tcp option ssl-hello-chk balance roundrobin server master01 <master ip>:6443 check # systemctl enable --now haproxy && sleep 5; systemctl status haproxy Настройка master: # uname -r | grep un-def >/dev/null || update-kernel -t un-def -y # sed -i '/swap/d' /etc/fstab # hostnamectl set-hostname podsec-master # reboot # echo "<IP> podsec-haproxy" >> /etc/hosts # apt-get install -y podsec-k8s podsec-inotify # export PATH=/usr/libexec/podsec/u7s/bin/:$PATH && which kubeadm # U7S_PLATFORM=k8s-PLATFORM U7S_KUBEVERSION=v1.26.11 U7S_SETAVAILABLEIMAGES=yes kubeadm init --apiserver-advertise-address $(hostname -i) --control-plane-endpoint $(cat /etc/hosts | grep podsec-haproxy | cut -d' ' -f1):8443 где PLATFORM - p10 / sisyphus Фактический результат ===================== Команда завершается успешно, и даже возможно последующее подключение control-plane и worker-нод. Но некоторые pod'ы не запускаются: > NAMESPACE NAME READY STATUS RESTARTS AGE > kube-flannel pod/kube-flannel-ds-7dbzq 0/1 Init:0/1 0 33m > kube-flannel pod/kube-flannel-ds-825d7 1/1 Running 0 16s > kube-flannel pod/kube-flannel-ds-tcqgq 1/1 Running 1 3m56s > kube-system pod/coredns-5d74d44657-7q9xn 0/1 Pending 0 33m > kube-system pod/coredns-5d74d44657-945zd 0/1 ContainerCreating 0 33m > kube-system pod/etcd-podsec-controlplane 1/1 Running 1 3m46s > kube-system pod/etcd-podsec-master 1/1 Running 1 33m > kube-system pod/kube-apiserver-podsec-controlplane 1/1 Running 0 3m25s > kube-system pod/kube-apiserver-podsec-master 1/1 Running 0 33m > kube-system pod/kube-controller-manager-podsec-controlplane 1/1 Running 1 3m55s > kube-system pod/kube-controller-manager-podsec-master 1/1 Running 1 33m > kube-system pod/kube-proxy-bhqqj 1/1 Running 0 16s > kube-system pod/kube-proxy-hflbv 1/1 Running 1 3m56s > kube-system pod/kube-proxy-mr2bj 0/1 ContainerCreating 0 33m > kube-system pod/kube-scheduler-podsec-controlplane 1/1 Running 1 3m55s > kube-system pod/kube-scheduler-podsec-master 1/1 Running 1 33m Вследствие этого команды вида: # curl -s https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.0/deploy/static/provider/baremetal/deploy.yaml -o ingress-nginx-deploy.yaml # sed -i 's|targetPort: http$|targetPort: http\n\ \ \ \ nodePort: 31000|' ingress-nginx-deploy.yaml # kubectl apply -f ingress-nginx-deploy.yaml затем просто зависают на kubectl apply, после чего kubectl зависает на любой команде. Ожидаемый результат =================== Успешная инициализация master-ноды кластера. Воспроизводимость ================= Воспроизводится на виртуальной машине: [sisyphus] ALT Server 10.2 x86_64 podsec-1.0.10-alt6.noarch kubernetes1.26-kubeadm-1.26.14-alt1.1.x86_64 kubernetes1.26-kubelet-1.26.14-alt1.1.x86_64 kubernetes1.26-crio-1.26.14-alt1.1.noarch kubernetes1.26-common-1.26.14-alt1.1.noarch kubernetes1.26-node-1.26.14-alt1.1.x86_64 kubernetes1.26-client-1.26.14-alt1.1.x86_64 Не воспроизводится на виртуальной машине: [p10] ALT Server 10.2 x86_64 podsec-k8s-1.0.8-alt1.noarch kubernetes1.26-kubelet-1.26.14-alt1.x86_64 kubernetes1.26-crio-1.26.14-alt1.noarch kubernetes1.26-common-1.26.14-alt1.noarch kubernetes1.26-node-1.26.14-alt1.x86_64 kubernetes1.26-master-1.26.14-alt1.x86_64 kubernetes1.26-kubeadm-1.26.14-alt1.x86_64 kubernetes1.26-client-1.26.14-alt1.x86_64
> Фактический результат > ===================== > > Команда завершается успешно, и даже возможно последующее подключение > control-plane и worker-нод. Но некоторые pod'ы не запускаются: > > > NAMESPACE NAME READY STATUS RESTARTS AGE > > kube-flannel pod/kube-flannel-ds-7dbzq 0/1 Init:0/1 0 33m > > kube-flannel pod/kube-flannel-ds-825d7 1/1 Running 0 16s > > kube-flannel pod/kube-flannel-ds-tcqgq 1/1 Running 1 3m56s > > kube-system pod/coredns-5d74d44657-7q9xn 0/1 Pending 0 33m > > kube-system pod/coredns-5d74d44657-945zd 0/1 ContainerCreating 0 33m > > kube-system pod/etcd-podsec-controlplane 1/1 Running 1 3m46s > > kube-system pod/etcd-podsec-master 1/1 Running 1 33m > > kube-system pod/kube-apiserver-podsec-controlplane 1/1 Running 0 3m25s > > kube-system pod/kube-apiserver-podsec-master 1/1 Running 0 33m > > kube-system pod/kube-controller-manager-podsec-controlplane 1/1 Running 1 3m55s > > kube-system pod/kube-controller-manager-podsec-master 1/1 Running 1 33m > > kube-system pod/kube-proxy-bhqqj 1/1 Running 0 16s > > kube-system pod/kube-proxy-hflbv 1/1 Running 1 3m56s > > kube-system pod/kube-proxy-mr2bj 0/1 ContainerCreating 0 33m > > kube-system pod/kube-scheduler-podsec-controlplane 1/1 Running 1 3m55s > > kube-system pod/kube-scheduler-podsec-master 1/1 Running 1 33m > Артем а есть возможность привести результат выполнения команд $ kubectl -n flannel describe pod/... $ kubectl -n flannel logs pod/... для всех POD'ов в состоянии 0/1 ?
Created attachment 15959 [details] Вывод kubectl describe для неработающих pod'ов Приложил вывод describe при следующем состоянии: > # kubectl get pods -A > NAMESPACE NAME READY STATUS RESTARTS AGE > kube-flannel kube-flannel-ds-p7mqt 0/1 Init:0/1 0 9m8s > kube-system coredns-74b4f8d87d-hprkh 0/1 ContainerCreating 0 9m8s > kube-system coredns-74b4f8d87d-k4sj4 0/1 Pending 0 9m8s > kube-system etcd-podsec-master 1/1 Running 1 9m26s > kube-system kube-apiserver-podsec-master 1/1 Running 0 9m35s > kube-system kube-controller-manager-podsec-master 1/1 Running 1 9m42s > kube-system kube-proxy-9jbtj 0/1 ContainerCreating 0 9m8s > kube-system kube-scheduler-podsec-master 1/1 Running 1 9m44s > # kubectl -n kube-flannel describe pod/kube-flannel-ds-p7mqt >> describe.txt > # kubectl -n kube-system describe pod/coredns-74b4f8d87d-hprkh >> describe.txt > # kubectl -n kube-system describe pod/coredns-74b4f8d87d-k4sj4 >> describe.txt > # kubectl -n kube-system describe pod/kube-proxy-9jbtj >> describe.txt kubectl logs невозможно использовать для любых pod'ов, вероятно это связано с тем, что pod/kube-proxy не работает. # kubectl logs -n kube-system pod/kube-controller-manager-podsec-master Error from server (InternalError): Internal error occurred: Authorization error (user=kube-apiserver-kubelet-client, verb=get, resource=nodes, subresource=proxy) В p10 работают все pod'ы и доступны логи.
(Ответ для Artem Varaksa на комментарий #2) > В p10 работают все pod'ы и доступны логи. В p10, похоже, используется 1.26.3 вне зависимости от U7S_KUBEVERSION. Проверил на sisyphus с U7S_KUBEVERSION=v1.26.3, ошибка также воспроизводится.
А вообще есть потенциальная возможность мне войти в эти VM? Очень трудно и долго вытаскивать информацию по шагам :-( И да - может в telegram списаться?
(Ответ для Artem Varaksa на комментарий #2) > Создано вложение 15959 [details] [подробности] > Вывод kubectl describe для неработающих pod'ов > > Приложил вывод describe при следующем состоянии: > > > # kubectl get pods -A > > NAMESPACE NAME READY STATUS RESTARTS AGE > > kube-flannel kube-flannel-ds-p7mqt 0/1 Init:0/1 0 9m8s > > kube-system coredns-74b4f8d87d-hprkh 0/1 ContainerCreating 0 9m8s > > kube-system coredns-74b4f8d87d-k4sj4 0/1 Pending 0 9m8s > > kube-system etcd-podsec-master 1/1 Running 1 9m26s > > kube-system kube-apiserver-podsec-master 1/1 Running 0 9m35s > > kube-system kube-controller-manager-podsec-master 1/1 Running 1 9m42s > > kube-system kube-proxy-9jbtj 0/1 ContainerCreating 0 9m8s > > kube-system kube-scheduler-podsec-master 1/1 Running 1 9m44s > > > # kubectl -n kube-flannel describe pod/kube-flannel-ds-p7mqt >> describe.txt > > # kubectl -n kube-system describe pod/coredns-74b4f8d87d-hprkh >> describe.txt > > # kubectl -n kube-system describe pod/coredns-74b4f8d87d-k4sj4 >> describe.txt > > # kubectl -n kube-system describe pod/kube-proxy-9jbtj >> describe.txt > > kubectl logs невозможно использовать для любых pod'ов, вероятно это связано > с тем, что pod/kube-proxy не работает. > > # kubectl logs -n kube-system pod/kube-controller-manager-podsec-master > Error from server (InternalError): Internal error occurred: Authorization > error (user=kube-apiserver-kubelet-client, verb=get, resource=nodes, > subresource=proxy) > 1.Надо посмотреть на наком узле неработающие POD'ы # kubectl get pods -A -o wide 2. Зайти туда в root через ssh 3. Зайти в пользователя u7s-admin # machinectl shell u7s-admin@ /bin/bash 4. Войти в namespace $ nsenter_u7s [INFO] Entering RootlessKit namespaces: OK [root@host-70 ~]# 5. Посмотреть список POD'ов # crictl ps CONTAINER IMAGE CREATED STATE NAME ATTEMPT POD ID POD 80b164bf31738 95174ae115a72b6b8b2ca31dfe8dc2ad8194dd4820e55796627602c080e91845 28 hours ago Running kube-flannel 0 4a1049e2ced4a kube-flannel-ds-qwcfq ... 6. Посмотреть логи POD'а # crictl logs 80b164bf31738 .... и бросить их мне
(Ответ для ALexey Kostarev на комментарий #5) > (Ответ для Artem Varaksa на комментарий #2) > > Создано вложение 15959 [details] [подробности] > > Вывод kubectl describe для неработающих pod'ов > > > > Приложил вывод describe при следующем состоянии: > > > > > # kubectl get pods -A > > > NAMESPACE NAME READY STATUS RESTARTS AGE > > > kube-flannel kube-flannel-ds-p7mqt 0/1 Init:0/1 0 9m8s > > > kube-system coredns-74b4f8d87d-hprkh 0/1 ContainerCreating 0 9m8s > > > kube-system coredns-74b4f8d87d-k4sj4 0/1 Pending 0 9m8s > > > kube-system etcd-podsec-master 1/1 Running 1 9m26s > > > kube-system kube-apiserver-podsec-master 1/1 Running 0 9m35s > > > kube-system kube-controller-manager-podsec-master 1/1 Running 1 9m42s > > > kube-system kube-proxy-9jbtj 0/1 ContainerCreating 0 9m8s > > > kube-system kube-scheduler-podsec-master 1/1 Running 1 9m44s > > > > > # kubectl -n kube-flannel describe pod/kube-flannel-ds-p7mqt >> describe.txt > > > # kubectl -n kube-system describe pod/coredns-74b4f8d87d-hprkh >> describe.txt > > > # kubectl -n kube-system describe pod/coredns-74b4f8d87d-k4sj4 >> describe.txt > > > # kubectl -n kube-system describe pod/kube-proxy-9jbtj >> describe.txt > > > > kubectl logs невозможно использовать для любых pod'ов, вероятно это связано > > с тем, что pod/kube-proxy не работает. > > > > # kubectl logs -n kube-system pod/kube-controller-manager-podsec-master > > Error from server (InternalError): Internal error occurred: Authorization > > error (user=kube-apiserver-kubelet-client, verb=get, resource=nodes, > > subresource=proxy) > > > > 1.Надо посмотреть на наком узле неработающие POD'ы > # kubectl get pods -A -o wide > > 2. Зайти туда в root через ssh > > 3. Зайти в пользователя u7s-admin > > # machinectl shell u7s-admin@ /bin/bash > > 4. Войти в namespace > $ nsenter_u7s > [INFO] Entering RootlessKit namespaces: OK > [root@host-70 ~]# > > 5. Посмотреть список POD'ов > # crictl ps > CONTAINER IMAGE > CREATED STATE NAME ATTEMPT > POD ID POD > 80b164bf31738 > 95174ae115a72b6b8b2ca31dfe8dc2ad8194dd4820e55796627602c080e91845 28 hours > ago Running kube-flannel 0 > 4a1049e2ced4a kube-flannel-ds-qwcfq > ... > 6. Посмотреть логи POD'а > > # crictl logs 80b164bf31738 > .... > > и бросить их мне Можно даже лучше Те же шаги, но вместо # crirtl ps # criatl logs 1. зайти в каталог # cd /var/log Там все kuber-логи # ls containers crio pods 2. Заархивировать их # tar cvzf /tmp/logs.tgz 3. Бросить logs.tgz мне
Версия 1.0.10-alt7 - проблема не воспроизводится. Но нужно обязательно поменять адреса подсети в файле /etc/podsec/u7s/config/cni_net.d/50-bridge.conf, если они пересекаются с текущей подсетью.
(Ответ для Alexander Makeenkov на комментарий #7) > Версия 1.0.10-alt7 - проблема не воспроизводится. Но нужно обязательно > поменять адреса подсети в файле > /etc/podsec/u7s/config/cni_net.d/50-bridge.conf, если они пересекаются с > текущей подсетью. Я в ближайшее время планирую выпустить очередную версию 1.0.10-alt8 В ней исправлены ряд недоработок, что я обнаружил во время тестирования Могу в эту версия добавить предложенный Вами функционал Но мне нужна площадка для тестирования с локальными адресами 10.88.8.0/21 Вы можете мне поднять одну-две VM с этими адресами для тестирования функционала?