如何解决PV / PVC触发了哪些事件?从何处触发?
kubectl get events
列出K8s对象的事件。
PV / PVC实际上是从哪里触发的?
有音量事件列表
https://docs.openshift.com/container-platform/4.5/nodes/clusters/nodes-containers-events.html
但是它不能确定哪些事件是针对哪个资源的?
解决方法
让我们从一个Kubernetes事件开始吧。这些对象可以洞悉集群内部发生的情况,例如调度程序做出了哪些决定或为什么从节点中驱逐了某些吊舱。这些API对象保留在etcd中。
您可以详细了解here和here。 您还可以找到有关here的Kubernetes事件的精彩教程。
有两种方法可以从Kubernetes查看/获取更详细的事件:
使用kubectl get events -o wide
。这将为您提供有关事件的object
,subobject
和source
的信息。这是一个示例:
LAST SEEN TYPE REASON OBJECT SUBOBJECT SOURCE MESSAGE
<unknown> Warning FailedScheduling pod/web-1 default-scheduler running "VolumeBinding" filter plugin for pod "web-1": pod has unbound immediate PersistentVolumeClaims
6m2s Normal ProvisioningSucceeded persistentvolumeclaim/www-web-1 k8s.io/minikube-hostpath 2481b4d6-0d2c-11eb-899d-02423db39261 Successfully provisioned volume pvc-a56b3f35-e7ac-4370-8fda-27342894908d
6m2s Normal ProvisioningSucceeded persistentvolumeclaim/www-web-1 k8s.io/minikube-hostpath 2481b4d6-0d2c-11eb-899d-02423db39261 Successfully provisioned volume pvc-a56b3f35-e7ac-4370-8fda-27342894908d
使用kubectl get events --output json
将以json
格式为您提供事件列表,其中包含其他详细信息,例如selflink
。
---
"apiVersion": "v1","count": 1,"eventTime": null,"firstTimestamp": "2020-10-13T12:07:17Z","involvedObject": {
---
"kind": "Event","lastTimestamp": "2020-10-13T12:07:17Z","message": "Created container nginx","metadata": {
---
Selflink
可用于确定从中提取数据的API位置。
我们可以以/api/v1/namespaces/default/events/
为例,并使用kubectl proxy
从API服务器获取数据:
kubectl proxy --port=8080 & curl http://localhost:8080/api/v1/namespaces/default/events/
使用所有这些信息,您可以使用field-selector
从基础对象中缩小到特定的详细信息:
kubectl get events --field-selector type=!Normal
or
kubectl get events --field-selector involvedObject.kind=PersistentVolumeClaim
LAST SEEN TYPE REASON OBJECT MESSAGE
44m Normal ExternalProvisioning persistentvolumeclaim/www-web-0 waiting for a volume to be created,either by external provisioner "k8s.io/minikube-hostpath" or manually created by system administrator
44m Normal Provisioning persistentvolumeclaim/www-web-0 External provisioner is provisioning volume for claim "default/www-web-0"
44m Normal ProvisioningSucceeded persistentvolumeclaim/www-web-0 Successfully provisioned volume pvc-815beb0a-b5f9-4b27-94ce-d21f2be728d5
请记住,kubectl events
提供的所有信息都与kubectl describe <ojbect>
中的信息相同。
最后,如果您仔细查看event.go代码,可能会看到有关卷的所有事件参考。如果将它们与Table 13. Volumes
进行比较,您会发现它们几乎相同(WaitForPodScheduled
和ExternalExpanding
的执行结果)
这意味着Openshift提供了有关该集群中可能发生的来自不同kubernetes的可能事件的汇总信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。