CKAD备战笔记(3)- 多容器Pod
多Pod容器有多种 设计模式,包括 Ambassador, Adapter和 Sidecar。我们会一一对他们进行学习。
1. 为何需要多容器Pod
将大型单体应用程序(monolith)解耦为称为微服务(microservices)的子组件的想法使我们能够开发和部署一组独立的小型可重用代码。 这种架构可以帮助我们根据需要扩大、缩小和修改每个服务,而不是修改整个应用程序。如下图:
(图片来源)
但是,有时您可能需要两个服务一起工作,例如 Web 服务器和日志服务。每个配对的 Web 服务器实例需要一个日志服务的实例。所以我们需要把这两个微服务放到同一个Pod中,以保证它们:
- 处于同一个生命周期(lifecycle):意味着同时被生成/销毁
- 分享同一个network:可以相互引用为
localhost
- 访问同一个volume
当用户访问量增多,我们需要扩大应用规模的时候,我们只需多见几个Pod就可以了:
举例:多容器Pod的定义文件
apiVersion: v1
kind: Pod
metadata:
name: simple-webapp
spec:
# containers是一个数组,数组中的每个元素是一个container
containers:
-