生产测试

这项工作正在进行中,我们将逐段添加其内容。欢迎您在 discuss.istio.io 网站上提供反馈。

在生产环境中测试您的微服务!

测试单个微服务

  • 从测试 pod 中向服务之一发起 HTTP 请求:
  1. $ kubectl exec -it $(kubectl get pod -l app=sleep -o jsonpath='{.items[0].metadata.name}') -- curl http://ratings:9080/ratings/7

混乱测试

在生产环境中执行一些混乱测试,并查看您的应用程序如何反应。进行每次混乱的操作后,请访问应用程序的网页,查看是否有任何更改。使用 kubectl get pods 检查 pods 状态。

  • details 服务的一个 pod 中终止它。
  1. $ kubectl exec -it $(kubectl get pods -l app=details -o jsonpath='{.items[0].metadata.name}') -- pkill ruby
  • 检查 pods 状态:
  1. $ kubectl get pods
  2. NAME READY STATUS RESTARTS AGE
  3. details-v1-6d86fd9949-fr59p 1/1 Running 1 47m
  4. details-v1-6d86fd9949-mksv7 1/1 Running 0 47m
  5. details-v1-6d86fd9949-q8rrf 1/1 Running 0 48m
  6. productpage-v1-c9965499-hwhcn 1/1 Running 0 47m
  7. productpage-v1-c9965499-nccwq 1/1 Running 0 47m
  8. productpage-v1-c9965499-tjdjx 1/1 Running 0 48m
  9. ratings-v1-7bf577cb77-cbdsg 1/1 Running 0 47m
  10. ratings-v1-7bf577cb77-cz6jm 1/1 Running 0 47m
  11. ratings-v1-7bf577cb77-pq9kg 1/1 Running 0 48m
  12. reviews-v1-77c65dc5c6-5wt8g 1/1 Running 0 47m
  13. reviews-v1-77c65dc5c6-kjvxs 1/1 Running 0 48m
  14. reviews-v1-77c65dc5c6-r55tl 1/1 Running 0 47m
  15. sleep-88ddbcfdd-l9zq4 1/1 Running 0 47m

请注意第一个 pod 重启了一次。

  • details 的所有 pods 中终止它:
  1. $ for pod in $(kubectl get pods -l app=details -o jsonpath='{.items[*].metadata.name}'); do echo terminating $pod; kubectl exec -it $pod -- pkill ruby; done
  • 检查应用的页面:

Bookinfo Web Application,详情不可用

Bookinfo Web Application,详情不可用

请注意详情部分显示的是错误信息而不是书籍详情。

  • 检查 pods 状态:
  1. $ kubectl get pods
  2. NAME READY STATUS RESTARTS AGE
  3. details-v1-6d86fd9949-fr59p 1/1 Running 2 48m
  4. details-v1-6d86fd9949-mksv7 1/1 Running 1 48m
  5. details-v1-6d86fd9949-q8rrf 1/1 Running 1 49m
  6. productpage-v1-c9965499-hwhcn 1/1 Running 0 48m
  7. productpage-v1-c9965499-nccwq 1/1 Running 0 48m
  8. productpage-v1-c9965499-tjdjx 1/1 Running 0 48m
  9. ratings-v1-7bf577cb77-cbdsg 1/1 Running 0 48m
  10. ratings-v1-7bf577cb77-cz6jm 1/1 Running 0 48m
  11. ratings-v1-7bf577cb77-pq9kg 1/1 Running 0 49m
  12. reviews-v1-77c65dc5c6-5wt8g 1/1 Running 0 48m
  13. reviews-v1-77c65dc5c6-kjvxs 1/1 Running 0 49m
  14. reviews-v1-77c65dc5c6-r55tl 1/1 Running 0 48m
  15. sleep-88ddbcfdd-l9zq4 1/1 Running 0 48m

第一个 pod 重启了两次,其它两个 details pods 重启了一次。您可能会看到 ErrorCrashLoopBackOff 状态,直到 pods 变为 Running 状态。

在这两种情况下,应用程序都没有崩溃。details 微服务中的崩溃并未导致其他微服务失败。该行为表示您在这种情况下没有级联失败。相反,您的服务会逐渐降级:尽管一个微服务崩溃了,该应用仍可以提供有用的功能。它显示了有关书的评论和基本信息。