![如果指定的 pod 不再存在于集群中,为什么“kubectl”有时会返回 *node* 名称而不是 *pod* 名称?](https://linux22.com/image/773132/%E5%A6%82%E6%9E%9C%E6%8C%87%E5%AE%9A%E7%9A%84%20pod%20%E4%B8%8D%E5%86%8D%E5%AD%98%E5%9C%A8%E4%BA%8E%E9%9B%86%E7%BE%A4%E4%B8%AD%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88%E2%80%9Ckubectl%E2%80%9D%E6%9C%89%E6%97%B6%E4%BC%9A%E8%BF%94%E5%9B%9E%20*node*%20%E5%90%8D%E7%A7%B0%E8%80%8C%E4%B8%8D%E6%98%AF%20*pod*%20%E5%90%8D%E7%A7%B0%EF%BC%9F.png)
有时kubectl get pod some-pod-1234abc
会返回类似以下错误:Error from server (NotFound): pods "ip-192-168-55-196.us-east-1.compute.internal" not found
。这令人惊讶,因为错误引用了节点,不是荚名称。这种情况很少发生,似乎是(我还没有确切地证实这一点)只发生在最近已删除。
什么情况会导致这种情况发生?这是 AWS EKS 中的 Kubernetes 1.20 集群,使用 Spot 实例。我并不关心 Pod 被删除,但我试图理解为什么节点名称返回自kubectl
消息中荚姓名。
答案1
这是预期行为。这就是 Pod 在 DNS(AAAA 记录)中注册的方式。
句法:pod-ip 地址。命名空间。荚。簇
我的理解是:
荚
- IP 地址 = ip-192-168-55-196
- 命名空间 = us-east-1
- 集群 = compute.internal
检查一下关联。