目录
第二章 Pod
1、什么是 Pod:pod 是 kubernetes 中的基本构建模块。pod中的所有容器都运行在同一个工作节点,而不会跨工作节点运行。
3、容器被设计成更适合运行单个进程。但是多个容器之间又需要有联系。pod就是将容器绑定在一起,作为一个单元运行管理。容器是相互隔离的,但是又想要做到部分互通。
- 让容器组隔离,但是容器组内的容器可以共享一些资源。
虽然一个容器组中的容器共享了一些资源,但是这些资源中不包括文件系统。
- 当涉及到文件系统的时候,每个容器的文件系统都是与其他容器完全隔离的,但是需要进行文件共享的时候,可以使用 Volume;
4、pod中端口冲突的问题:pod 中运行的各个进程应该注意可能发生端口冲突,并且可以进行相互通信。
- 一个 pod 中的容器运行在相同的 network 命名空间中,所以容器共享相同的 IP 地址和端口空间
5、集群中的所有 pod 都在同一个共享网络地址空间中, 这意味着每个 pod 都可以通过其他 pod 的 IP 地址来实现相互访问。所以当两个 pod 彼此之间发送网络数据包时, 它们都会将对方的实际 IP 地址看作数据包中的源 IP。
6、将多层应用分散到多个 pod 中,(一个pod部署前端服务器,一个pod部署数据库。)如果将前端服务器和数据库都部署在同一个pod中,将会一直在一个工作节点中运行,不利于资源的利用。
7、pod 是扩缩容的基本单位,对于 Kubernetes 而言,不能扩缩单个容器,只能扩缩单个 pod:
- 当一个 pod中部署有前端服务器和数据库时,进行扩缩后将会得到两个pod, 每个 pod 中都有一个前端服务器和一个数据库。所以总是倾向于一个 pod 中运行一个容器。