kube-dns pods не запускается при установке с помощью kops - PullRequest
0 голосов
/ 26 мая 2018

Я установил автономный кластер k8s, используя kops, поэтому я хочу, чтобы все модули работали только на одном ведущем устройстве.Кластер запустился хорошо, но модули kube-dns и kube-autoscaler не работают, он находится в состоянии ожидания.Это описание узла

kubectl describe nodes
Name:               ip-10-0-3-184.ap-southeast-1.compute.internal
Roles:              master
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/instance-type=m3.large
                    beta.kubernetes.io/os=linux
                    failure-domain.beta.kubernetes.io/region=ap-southeast-1
                    failure-domain.beta.kubernetes.io/zone=ap-southeast-1a
                    kops.k8s.io/instancegroup=master-ap-southeast-1a
                    kubernetes.io/hostname=ip-10-0-3-184.ap-southeast-1.compute.internal
                    kubernetes.io/role=master
                    node-role.kubernetes.io/master=
Annotations:        node.alpha.kubernetes.io/ttl=0
                    volumes.kubernetes.io/controller-managed-attach-detach=true
Taints:             node-role.kubernetes.io/master:NoSchedule

, но /var/log/kube-scheduler.log:

I0526 12:49:54.629475       1 scheduler.go:191] Failed to schedule pod: kube-system/kube-dns-autoscaler-787d59df8f-8jgn7
I0526 12:49:54.629570       1 factory.go:1251] Updating pod condition for kube-system/kube-dns-autoscaler-787d59df8f-8jgn7 to (PodScheduled==False)
I0526 12:50:09.706382       1 scheduler.go:191] Failed to schedule pod: kube-system/kube-dns-7785f4d7dc-rqzdq
I0526 12:50:09.706484       1 factory.go:1251] Updating pod condition for kube-system/kube-dns-7785f4d7dc-rqzdq to (PodScheduled==False)
I0526 12:50:10.632285       1 scheduler.go:191] Failed to schedule pod: kube-system/kube-dns-autoscaler-787d59df8f-8jgn7
I0526 12:50:10.632371       1 factory.go:1251] Updating pod condition for kube-system/kube-dns-autoscaler-787d59df8f-8jgn7 to (PodScheduled==False)
I0526 12:50:41.709687       1 scheduler.go:191] Failed to schedule pod: kube-system/kube-dns-7785f4d7dc-rqzdq
I0526 12:50:41.709796       1 factory.go:1251] Updating pod condition for kube-system/kube-dns-7785f4d7dc-rqzdq to (PodScheduled==False)
I0526 12:50:42.635260       1 scheduler.go:191] Failed to schedule pod: kube-system/kube-dns-autoscaler-787d59df8f-8jgn7
I0526 12:50:42.635361       1 factory.go:1251] Updating pod condition for kube-system/kube-dns-autoscaler-787d59df8f-8jgn7 to (PodScheduled==False)

Я могу исправить это вручную, используя команду kubectl taint nodes --all node-role.kubernetes.io/master-, но я хочу, чтобы он был включен при создании кластера.с kops create cluster

Спасибо

1 Ответ

0 голосов
/ 28 мая 2018

Taints установлены в шаблонах kops для всех типов сетевых дополнений Kubernetes .

В настоящее время невозможно включить / отключить эту часть шаблона с помощью командной строкиoptions.

Но есть возможность настроить порты для группы экземпляров:

kops edit ig master-us-west-1c

Группы экземпляров
По умолчаниюкластер имеет:

  • Группа экземпляров, называемая узлами, охватывающими все зоны;эти экземпляры являются вашими работниками.
  • Одна группа экземпляров для каждой мастер-зоны, называемая master- (например, master-us-east-1c).Обычно они имеют минимальный размер и максимальный размер = 1, поэтому они будут запускать один экземпляр.Мы делаем это так, чтобы облако всегда перезапускало мастеров, даже если все было завершено одновременно.У нас есть группа экземпляров для каждой зоны, потому что нам нужно заставить облако запускать экземпляр в каждой зоне, чтобы мы могли монтировать основные тома - мы не можем делать это по зонам.

ДобавлениеНарушения или метки для группы экземпляров
Если вы работаете с Kubernetes 1.6.0 или более поздней версии, вы также можете управлять портами в InstanceGroup.Свойство taints принимает список строк.В следующем примере будут добавлены два вреда для IG, используя тот же процесс edit -> update -> Rolling-Update, как описано выше.

Кроме того, к IG можно добавить nodeLabels, чтобы воспользоваться Pod Affinity,Каждому узлу в IG будут назначены нужные метки.Для получения дополнительной информации см. Этикетку документации.

metadata:
  creationTimestamp: "2016-07-10T15:47:14Z"
  name: nodes
spec:
  machineType: m3.medium
  maxSize: 3
  minSize: 3
  role: Node
  taints:
  - dedicated=gpu:NoSchedule
  - team=search:PreferNoSchedule
  nodeLabels:
    spot: "false"
...