私は、マスターと3つのノードで構成されたKubernetesクラスターを実行しています。Kubernetesは、到達可能でないにもかかわらずノードを準備していると表示しているのはなぜですか?
#kubectl get nodes
NAME STATUS AGE
minion-1 Ready 46d
minion-2 Ready 46d
minion-3 Ready 46d
私はクラスタにいくつかのポッドを立ち上げ、ポッドが保留状態にあることを発見しました。ポッド「のhttpd」YAMLファイルの
# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
httpd 0/1 Pending 0 10m <none>
nginx 0/1 Pending 0 11m <none>
ワン:
# cat http.yaml
apiVersion: v1
kind: Pod
metadata:
name: httpd
labels:
env: test
spec:
containers:
- name: httpd
image: httpd
失敗の原因をデバッグしている間は、設定されたノードのカップルは準備ができていないことがわかりました。マスタから到達できるノードは1つだけです。
# ping minion-1
PING minion-1 (172.31.24.204) 56(84) bytes of data.
64 bytes from minion-1 (172.31.24.204): icmp_seq=1 ttl=64 time=0.575 ms
他のノードは到達できないのに対し:私はここにある
# ping minion-2
PING minion-2 (172.31.29.95) 56(84) bytes of data.
From master (172.31.16.204) icmp_seq=1 Destination Host Unreachable
# ping minion-3
PING minion-3 (172.31.17.252) 56(84) bytes of data.
From master (172.31.16.204) icmp_seq=1 Destination Host Unreachable
クエリが
1である)なぜKubernetesは、彼らが ない場合でも、準備としてのノードを示すんマスターから到達可能?
2)ポッドの作成に失敗するのはなぜですか?続き
Is it because of unavailability of nodes or any configuration issue in yaml file?
# kubectl describe pod httpd
Name: httpd
Namespace: default
Node: /
Labels: env=test
Status: Pending
IP:
Controllers: <none>
Containers:
httpd:
Image: httpd
Port:
Volume Mounts: <none>
Environment Variables: <none>
No volumes.
QoS Class: BestEffort
Tolerations: <none>
No events.
Kubernetesとetcdバージョンです。
]# kubectl --version
Kubernetes v1.5.2
[[email protected] ~]# et
etcd etcdctl ether-wake ethtool
[[email protected] ~]# etcd --version
etcd Version: 3.2.5
Git SHA: d0d1a87
Go Version: go1.8.3
Go OS/Arch: linux/amd64
あなたが言ったように、通信はhttpsプロトコルを介して行われますが、それは最初の接続のみをチェックし、ノードの稼働状態はチェックしないということですか? –