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