Кубернетес не готов - PullRequest
2 голосов
/ 06 апреля 2020

Я супер новичок в Kubernetes. Я унаследовал сторонний проект - действительно находящийся в процессе разработки ПО C - от другого разработчика, который недавно покинул команду. Он сделал демо из виртуальной машины, к которой у нас все еще есть доступ, прежде чем он внезапно ушел. После того, как он ушел, мы смогли go через его демо, и все работало. Один из членов команды перезапустил виртуальную машину, и теперь все сломалось. Мне поручили разобраться. Я смог перенести все компоненты обратно, за исключением части Kubernetes, которую все трассировки стека указывают на проблему в данный момент.

Как уже упоминалось, я новичок в Kubernets, поэтому мне не хватает словарного запаса, чтобы сделать правильный поиск в Интернете.

Я выполнил несколько команд, вставил их вывод ниже. Если я правильно понимаю, проблема в том, что развертывание k8s не запущено: kubectl get all

NAME                        TYPE        CLUSTER-IP      EXTERNAL-IPPORT(S)  AGE                                                 AGE
service/kubernetes          ClusterIP   10.96.0.1       <none>              443/TCP                                             14d
service/app-service-5x7z    NodePort    10.96.215.11    <none>              3000:32155/TCP,3001:32762/TCP,27017:30770/TCP       3d

NAME                                    READY   UP-TO-DATE  AVAILABLE   AGE
deployment.apps/app-deployment-5x7z     0/1     1           0           3d

NAME                                    DESIRED     CURRENT     READY       AGE
replicaset.apps/app-deployment-5x7z     1           1           0           3d

Я предполагаю, что проблема в том, что состояние READY 0/1

Может кто-нибудь подсказать мне, как я могу вернуть этого парня обратно? Кроме того, я вижу много тяжелой документации в Интернете, есть ли место с мелким банком, которое я могу погрузить в работу Kubernetes. Я очень рад этой возможности, но это не было гладким началом.

Ответы [ 2 ]

1 голос
/ 17 апреля 2020

Записав мои два цента на ваше решение:

  • После того, как вы сделали kubeadm reset и kubeadm init, ваш кластер пуст.

1-й Проблема:

Я применил эти изменения, но теперь, когда я запускаю kubectl get all, я получаю только первую строку "service / kubernetes" и больше не получаю ничего относительно app-service-5x7z каких-либо шансов Вы могли бы дать мне подсказку о том, как выполнить sh, что [возвращение развертывания]?

Решение:

  • Вам нужно чтобы найти файлы yaml, отвечающие за развертывание кластера, его, вероятно, называют app-deployment или что-то подобное.

2-й выпуск:

Вот моя текущая ситуация. Поскольку я понятия не имею, что использовал этот парень, я создал образы docker и обновил файлы yaml службы и развертывания, чтобы использовать их. Затем я запустил kubectl apply -f <yaml_folder>, что успешно, но когда я запускаю kubectl get pods --watch, я вижу следующее: justpaste.it / 3p9r1 какие-либо предложения, как я могу отладить и добраться до причины root? Насколько я понимаю, он не может вытянуть изображение docker. но так как я только что создал его, и он расположен на той же машине (не в реестре), не уверен, в чем проблема.

Решение:

Начиная с PrePulledImages Документация:

По умолчанию kubelet будет пытаться извлечь каждое изображение из указанного реестра. Однако если свойство imagePullPolicy контейнера установлено на IfNotPresent или Never, то используется локальное изображение (предпочтительно или исключительно, соответственно). Все модули будут иметь доступ для чтения к любым предварительно извлеченным образам.

Если образ docker находится в локальном реестре узла, необходимо установить imagePullPolicy: Never в файле развертывания. Обратите внимание, что образ должен присутствовать во всех локальных репозиториях узлов для обеспечения доступности.

Хорошо также создать Docker Частный репозиторий-концентратор для обеспечения доступности и целостности.

1 голос
/ 07 апреля 2020

Сбросьте узел с помощью

kubeadm reset -f

Очистите старую фланелевую установку

rm -rf /var/lib/cni/
rm -rf /run/flannel
rm -rf /etc/cni/

ip link delete cni0
ip link delete flannel.1

, а затем установите Kubernetes

kubeadm init --pod-network-cidr=10.244.0.0/16

Установите фланель

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...