在 Kubernetes 中证明微服务的恢复能力
Kubernetes 的一大好处是支持声明性配置管理。 你在配置文件中定义的服务会不惜一切代价进行保留。
这意味着,如果出现故障,Kubernetes 将自动重启在发生故障之前运行的服务。
让我们通过删除披萨前端 Pod,然后验证 Kubernetes 是否已重启它,来看看此恢复能力如何发挥作用。
-
首先运行
kubectl get pods
,并记下披萨前端 Pod 的名称(包括随机字符串)。 下面是一个示例输出:username@computer-name % kubectl get pods NAME READY STATUS RESTARTS AGE pizzabackend-7445bdb5c9-pnpk6 1/1 Running 0 31m pizzafrontend-5b6cc765c4-hjpx4 1/1 Running 0 63m
-
现在,使用
kubectl delete
命令删除披萨前端 Pod。 你需要指定 Pod 的完整名称,包括随机字符串。kubectl delete pod pizzafrontend-5b6cc765c4-hjpx4
你将立即收到一条消息,指示 Pod 已被删除。
-
由于 Kubernetes 将保持配置文件中声明的系统状态,因此它将立即启动另一个 Pod 实例。 你可以通过运行
kubectl get pods
来进行验证。username@computer-name % kubectl get pods NAME READY STATUS RESTARTS AGE pizzabackend-7445bdb5c9-pnpk6 1/1 Running 0 31m pizzafrontend-5b6cc765c4-vwmv8 1/1 Running 0 7s
请注意,pizzafrontend 名称后面的随机字符串已发生变化。 指示 Pod 是一个新实例。 此外,“AGE”值也要小得多。
在本练习中,你了解了 Kubernetes 如何自动保持声明的系统状态,即使出现故障也是如此