首页 文章

允许在Kubernetes master上安排pod?

提问于
浏览
8

我使用generic install scripts在裸机上在CoreOS上设置了Kubernetes . 它运行当前稳定版本1298.6.0,Kubernetes版本1.5.4 .

我们希望拥有一个高度可用的主设置,但是我们目前没有足够的硬件将三个服务器专门用作Kubernetes主服务器,所以我希望能够允许用户端安排在Kubernetes大师 . 我在/etc/systemd/system/kubelet.service中设置了--register-schedulable = true,但它仍然显示为SchedulingDisabled .

我尝试添加设置以将节点包括为工作者,包括将工作者TLS证书添加到/ etc / kubernetes / ssl,将这些设置添加到kubelet.service,添加指向那些的/etc/kubernetes/worker-kubeconfig.yaml证书,并将该信息添加到/etc/kubernetes/manifests/kube-proxy.yaml . 我使用现有节点作为添加内容的模板 . 这在主机的主机名下注册了另一个节点,然后它和原始主节点都显示为NotReady,SchedulingDisabled .

This question表示主节点上的调度窗口应该是可能的,但我几乎找不到任何关于该主题的内容 .

3 回答

  • 17

    我不知道为什么主节点显示为 NotReady ;它不应该 . 尝试执行 kubectl describe node mymasternode 以查找 .

    SchedulingDisabled 是因为主节点被 dedicated=master:NoSchedule 污染了

    对所有主人执行此命令以删除污点:

    kubectl taint nodes mymasternode dedicated-
    

    要理解为什么工作在taints and tolerations上阅读 .

  • 3

    如果您使用的是Kubernetes 1.7及以上版本:

    kubectl taint node mymasternode node-role.kubernetes.io/master:NoSchedule-
    
  • 0

    对于在AWS上使用kops的任何人 . 我想在master上启用Pods的调度 .

    $ kubectl get nodes -owide 给了我这个输出:

    NAME                                          STATUS
    ...
    ...
    ip-1**-**-**-***.********.compute.internal    Ready                      node
    ip-1**-**-**-***.********.master.internal     Ready,SchedulingDisabled   master
                                                        ^^^^^^^^^^^^^^^^^^
    ip-1**-**-**-***.********.compute.internal    Ready                      node
    ...
    ...
    

    并且 $ kubectl describe nodes ip-1**-**-**-***.********.master.internal

    ...
    ...
    Taints:             <none>
    Unschedulable:      true
    ...                 ^^^^
    ...
    

    Patching the master 使用此命令:

    $ kubectl patch node MASTER_NAME -p "{\"spec\":{\"unschedulable\":false}}"

    为我工作,现在启用了Pods的安排 .

    参考:https://github.com/kubernetes/kops/issues/639#issuecomment-287015882

相关问题