web-dev-qa-db-ja.com

Kubernetesマスターでポッドのスケジューリングを許可しますか?

generic install scripts を使用して、ベアメタル上のCoreOSでKubernetesをセットアップします。 Kubernetesバージョン1.5.4で現在の安定版リリース1298.6.0を実行しています。

可用性の高いマスターセットアップが必要ですが、現時点では、3つのサーバーを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として表示されました。

この質問 は、マスターノードでのポッドのスケジューリングが可能であるべきであることを示していますが、この件について見つけることができるものはほとんどありません。

13
dmol

Kubernetes 1.7以降を使用している場合:

kubectl taint node mymasternode node-role.kubernetes.io/master:NoSchedule-
29
Magnus Runesson

まず、マスターの名前を取得します

kubectl get nodes

NAME     STATUS   ROLES    AGE   VERSION
yasin   Ready    master   11d   v1.13.4

ご覧のとおり、yasinという名前のノードが1つあり、ロールはmasterです。ワーカーとして使用する場合は、実行する必要があります

kubectl taint nodes yasin node-role.kubernetes.io/master-
6
yasin lachini

マスターノードがNotReadyとして表示される理由がわかりません。すべきではありません。 kubectl describe node mymasternodeを実行して確認してください。

SchedulingDisabledは、マスターノードがtainteddedicated=master:NoScheduleであるためです。

すべてのマスターに対してこのコマンドを実行して、汚染を削除します。

kubectl taint nodes mymasternode dedicated-

それがなぜ機能するのかを理解するために、 汚染と寛容 を読んでください。

3
Janos Lenart

AWSでkopsを使用している人向け。マスターでポッドのスケジューリングを有効にしたかった。

$ 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
...                 ^^^^
...

次のコマンドでマスターにパッチを当てます

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

私のために働いて、ポッドのスケジューリングが有効になりました。

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

2
illagrenan

以下のコマンドを使用して、すべてのマスターを取得します

kubectl taint nodes --all node-role.kubernetes.io/master-
1
P Ekambaram