Узлы Kubernetes не получают правильные метки - PullRequest
0 голосов
/ 11 июня 2019

Потратив полдня на копание в Интернете, я все еще не могу найти причину, по которой мои рабочие узлы не получают правильные метки. У меня есть рабочие узлы в группе автоматического масштабирования в AWS, и я использую облачного провайдера AWS с Kubeadm для подготовки своего кластера. После того, как все мои главные узлы и рабочие узлы подходят, Я не вижу надлежащих меток, таких как зона доступности, назначенная рабочим узлам, которые присутствуют в главных узлах , как показано ниже:

# kubectl get nodes --show-labels
NAME                             STATUS   ROLES    AGE     VERSION   LABELS
ip-10-100-128-9.ec2.internal     Ready    <none>   5h12m   v1.14.3   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-100-128-9.ec2.internal,kubernetes.io/os=linux
ip-10-100-148-5.ec2.internal     Ready    <none>   5h12m   v1.14.3   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-100-148-5.ec2.internal,kubernetes.io/os=linux
ip-10-100-164-199.ec2.internal   Ready    <none>   5h12m   v1.14.3   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-100-164-199.ec2.internal,kubernetes.io/os=linux
ip-10-100-3-145.ec2.internal     Ready    master   5h15m   v1.14.3   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=m5.large,beta.kubernetes.io/os=linux,failure-domain.beta.kubernetes.io/region=us-east-1,failure-domain.beta.kubernetes.io/zone=us-east-1c,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-100-3-145.ec2.internal,kubernetes.io/os=linux,node-role.kubernetes.io/master=
ip-10-100-3-55.ec2.internal      Ready    master   5h15m   v1.14.3   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=m5.large,beta.kubernetes.io/os=linux,failure-domain.beta.kubernetes.io/region=us-east-1,failure-domain.beta.kubernetes.io/zone=us-east-1a,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-100-3-55.ec2.internal,kubernetes.io/os=linux,node-role.kubernetes.io/master=
ip-10-100-3-76.ec2.internal      Ready    master   5h15m   v1.14.3   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=m5.large,beta.kubernetes.io/os=linux,failure-domain.beta.kubernetes.io/region=us-east-1,failure-domain.beta.kubernetes.io/zone=us-east-1b,kubernetes.io/arch=amd64,kubernetes.io/hostname=ip-10-100-3-76.ec2.internal,kubernetes.io/os=linux,node-role.kubernetes.io/master=

Я почему-то сомневаюсь, что это причина того, что я не могу создать PVC для своего PV, который я хочу прикрепить к своему модулю реестра Docker.

# kubectl describe pod docker-registry-5b66dd644d-66f7k -n default | grep -A4  -i Events
Events:
  Type     Reason            Age                 From               Message
  ----     ------            ----                ----               -------
  Warning  FailedScheduling  84s (x11 over 14m)  default-scheduler  0/6 nodes are available: 3 node(s) had taints that the pod didn't tolerate, 3 node(s) had volume node affinity conflict.
  Warning  FailedScheduling  79s (x3 over 82s)   default-scheduler  0/4 nodes are available: 4 node(s) had taints that the pod didn't tolerate.

Я вижу, что мой класс хранения и PV созданы, и я могу проверить один и тот же идентификатор тома в AWS. Я также вручную попытался подключить том к своим рабочим узлам с помощью интерфейса командной строки AWS, где я добился успеха, но не через PVC. Пожалуйста, посоветуйте, что здесь не так. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 13 июня 2019

Проблема была с файлом сервиса kubelet.По умолчанию kubeadm не добавляет информацию о поставщике облачных сервисов AWS в файл модуля kubelet.Ручное добавление параметра KUBELET_EXTRA_ARGS=--cloud-provider=aws внутри файла /etc/sysconfig/kubelet решило проблему, и AWS автоматически присваивает метки.

0 голосов
/ 11 июня 2019

Состояние ошибки node(s) had taints that the pod didn't tolerate. Вы должны либо удалить эти пятна с узлов, используя kubectl taint nodes node_name taint-, либо добавить допуски к создаваемым объектам.

...