基本概念
容器的本质
- 一个视图被隔离、资源受限的进程
- 容器里
PID=1
的进程就是应用本身 - 管理虚拟机=管理基础设施
- 管理容器=直接管理应用本身
- 容器里
什么是
kubernetes
- 云时代的操作系统
- 以此类推,容器镜像->操作系统的软件安装包
- 容器 -> 系统进程
Pod
-> 线程组(一个pod
可以包含多个容器)
pod
为什么需要
pod
?
首先容器是单进程模型,容器的PID=1
的进程应为应用本身进程
其次同一容器内启动多个进程,难以管理进程生命周期,也起不到隔离作用(ns,cgroup
)
尽可能遵循: 一个容器只做一件事
同一
pod
网络共享
通过infra
容器实现:
同一pod
内的容器挂载infra
容器(k8s.gcr.io/pause
)的网络命名空间,实现网络共享
同一pod
内的容器通信地址为localhost
同一pod
内的容器共享同一ip
地址,端口不可重复