根据我的理解,在 Kubernetes 中运行任何内容的正确方法是使用 Deployment,它负责副本、升级、降级、pod 数量、版本控制等。
除了出于培训或学习的目的之外,直接实例化 Pod(甚至是 ReplicaSet)的有效用例是什么?
从技术上讲,该建议是正确的——通常应该仅使用部署来创建 Pod,但对于一次性的临时实例,可以使用直接创建 Pod(也许更快)。
例如,我会使用类似以下内容直接创建一个 pod,以便从 kubernetes 集群内部进行快速调试:
kubectl run $ARGS -i --tty debug-pod --image=debian -- bash
然后我可以退出 Pod,并在完成后
kubectl delete debug-pod
。
这对于测试
ClusterIP
服务或只能从集群内部访问的服务,或者调试为什么 pod 无法访问外部服务(可能是由于 IP 或其他错误)非常有用。