Tec*_*irl 1 kubernetes kubernetes-pod
我有一个测试场景,用于检查 API 请求是否正在由另一个 pod 处理(如果一个 pod 发生故障)。我知道这是默认行为,但我想刺激以下场景。
Pod 副本 - 2 个(Pod A 和 B)
在我的 API 请求期间,我只想终止/停止 pod A。在 A 停机期间,请求应由 B 处理。
我知道我们可以重新启动部署,并将副本数扩展到 0,然后再次扩展到 2,但这对我不起作用。
有没有办法只杀死/停止/崩溃 pod A?任何帮助将不胜感激。
如果您想模拟其中一个 pod 丢失时会发生什么,您可以缩小部署规模
kubectl scale deployment the-deployment-name --replicas=1
Run Code Online (Sandbox Code Playgroud)
Kubernetes 将终止除其中一个 Pod 之外的所有 Pod;您几乎应该立即看到流向幸存 Pod 的所有流量。
但如果您想模拟其中一个 Pod 崩溃并重新启动时会发生什么情况,您可以删除该 Pod
# kubectl scale deployment the-deployment-name --replicas=2
kubectl get pods
kubectl delete pod the-deployment-name-12345-f7h9j
Run Code Online (Sandbox Code Playgroud)
一旦 Pod 开始被删除,Kubernetes 服务应该将所有流量路由到幸存的 Pod(具有Running状态的 Pod)。但是,Pod 由 ReplicaSet 管理,该 ReplicaSet 需要有 2 个副本,因此如果其中一个 pod 被删除,ReplicaSet 将立即创建一个新的 pod。这类似于 Pod 崩溃并重新启动时会发生的情况(在这种情况下,您将获得相同的 Pod 和相同的节点,如果您删除 Pod,它可能会返回到不同的位置)。
| 归档时间: |
|
| 查看次数: |
6527 次 |
| 最近记录: |