使用kops安装时,kube-dns pods不会运行

时间:2018-05-26 12:54:41

标签: kubernetes kops kube-dns

我使用kops设置了一个独立的k8s群集,所以我希望所有pod只能在1个master上运行。群集启动良好,但kube-dns和kube-autoscaler pods没有运行,它处于挂起状态。这是节点描述

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 :(得分:0)

Taints在kops模板中设置,适用于所有类型的Kubernetes networking add-ons

现在无法使用命令行选项启用/禁用该部分模板。

但是,有可能为实例组配置污点:

kops edit ig master-us-west-1c
  

Instance Groups
  默认情况下,群集具有:

     
      
  • 一个名为节点的实例组,跨越所有区域;这些实例是你的工人。
  •   
  • 每个主区域的一个实例组,称为master-(例如master-us-east-1c)。这些通常具有最小尺寸和最大尺寸   = 1,因此它们将运行单个实例。我们这样做是为了让云总是重新启动主人,即使一切都被终止了   一旦。我们每个区域都有一个实例组,因为我们需要强制执行   云在每个区域中运行一个实例,因此我们可以安装主服务器   卷 - 我们不能跨区域这样做。
  •   
     

Adding Taints or Labels to an Instance Group
  如果你正在运行   Kubernetes 1.6.0或更高版本,你也可以控制污点   InstanceGroup。 taints属性采用字符串列表。该   以下示例将使用相同的编辑将两个污点添加到IG    - >更新 - >如上所述的滚动更新过程。

     

此外,可以将nodeLabels添加到IG中以便获取   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"