| 学习路线指引(点击解锁) | 知识定位 | 人群定位 |
|---|---|---|
| 🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
| 💛Python量化交易实战💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
目录* 一、Pod定义
推荐手机阅读原文:https://mp.weixin.qq.com/s/nR6P6eidE1r5A2viLCFHWA
推荐手机阅读阅读:https://mp.weixin.qq.com/s/nR6P6eidE1r5A2viLCFHWA
推荐手机阅读阅读:https://mp.weixin.qq.com/s/nR6P6eidE1r5A2viLCFHWA
如下图,在K8S中资源调度的基本单位是Pod

Pod其实是一个抽象的概念,Pod里是我们的业务容器(docker/containerd)。像大家听过的Deployment、StatefulSet、CronJob等资源调度对象所调度的资源都是Pod。
为了更好的理解Pod的概念,大家可以将Pod理解成VM 虚拟机,将Pod中的容器理解成VM中的进程。既然这样理解,就意味着Pod中的容器进程可以直接通过localhost+端口号实现网络互通,也意味着Pod中的容器可以实现类似直接读取彼此产出到磁盘上的文件的效果。

如上图:容器1访问:127.0.0.1:8082可以访问到容器2。
在实际用应用中,比如我们有两个服务:服务A和服务B,并且他俩之间只能通过本地回环网卡通信,那我们在就应该将它们分配进同一个pod中。
那什么是资源调度? 简单来说就是将:为Pod挑选一个合适的物理节点,然后将Pod中的容器启动好对外提供服务。
简单的,只要将我们想启动的Docker容器填入Pod资源对象的containers字段中,再通过kubectl命令创建Pod,K8S会为Pod选择一个合适的Node,并在该Node上启动用户指定的容器。
如下是一个Pod的Yaml描述文件,Pod中定义了两个容器分别是:nginx、shell
apiVersion: v1 # 必选,API的版本号
kind: Pod # 必选,类型Pod
metadata: # 必选,元数据
name: daemon-pod # 必选,符合RFC 1035规范的Pod名称
spec:
containers:
- name: nginx
image: nginx:latest # 必选,容器所用的镜像的地址
- name: shell
image: busybox
stdin: true
tty: true
使用kubectl命名创建Pod,可以看到Ready数为2、Node字段说明该Pod运行在叫node02的宿主机上

验证,找到node02

登录node02,查看node02上是否有相应的docker容器