Closed oomichi closed 4 years ago
手元環境
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: cinder-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
apiVersion: v1
kind: Pod
metadata:
name: task-pv-pod
spec:
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: cinder-claim
containers:
- name: task-pv-container
image: nginx
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- mountPath: "/tmp/test"
name: task-pv-storage
$ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
task-pv-pod 1/1 Running 0 117s 10.244.2.8 k8s-cpu02 <none> <none>
$ nova stop k8s-cpu02
$ nova list
+--------------------------------------+------------+---------+------------+-------------+------------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+------------+---------+------------+-------------+------------------------+
| 540d112e-26ce-425e-ac50-a4b12af59fa1 | e2e | ACTIVE | - | Running | provider=192.168.1.173 |
| a6abbbc7-8302-42e4-9e11-ba176e8e0aa1 | k8s-cpu01 | ACTIVE | - | Running | provider=192.168.1.160 |
| 53f5bc3e-bcd3-445d-80fb-befdae9ce742 | k8s-cpu02 | SHUTOFF | - | Shutdown | provider=192.168.1.158 |
| 23261bf9-76bd-4f8a-96ba-85ac07e7d0df | k8s-master | ACTIVE | - | Running | provider=192.168.1.185 |
+--------------------------------------+------------+---------+------------+-------------+------------------------+
6. node, pod の状態を確認する
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-cpu01 Ready
上記の通り、Nodeの状態がNotReady にも関わらず、Pod は k8s-cpu02 で Running となっている。
これは Pod の Toleration の設定が5分間は Node がNotReadyに陥っても何もしないことになっているため。
$ kubectl describe pod task-pv-pod
...
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
5分過ぎたところでTerminatingになった
-> この状態で止まっている
-> /var/log/syslog には multi-attach error のログは出ていない
$ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
task-pv-pod 1/1 Terminating 0 22h 10.244.2.8 k8s-cpu02
この問題は既にコミュニティで認識されている
Persistent Volume をアタッチした Pod が稼動していた Node に障害が起きた場合、Pod は別の Node で立上がるが Persistent Volume のアタッチで
multi-attach error
でエラーになる障害がある模様。 まずは手元の環境で再現させ、必要に応じてコミュニティにエスカレーションする。問題発生環境
この問題は既にコミュニティで認識されているもので、現時点で対処されていない。
https://github.com/kubernetes/kubernetes/issues/80040#issuecomment-527600684