注明:当前文档内容来源于51cto课堂‘宽哥’杜宽学习课程。
一、Pod简介
Pod 可简单理解为一组、一个或多个容器构成,每个Pod还包含一个基础容器Pause容器。
**重点:面试常问考基础认知
- Pause容器作用:Pause容器是Pod的父容器,他主要负责僵尸进程的回收管理,同时通过Pause容器可以使同一个Pod里面的不同容器共享存储、网络、PID、IPC等,容器之间可以使用localhost:port相互访问,可以使用volume等实现数据共享。***
根据Docker的构造,Pod可以被建模为一组具有共享命令空间、卷、IP地址和Port端口的容器。
二、为什么要引入pod
1.强依赖的服务需要部署在一起;例:NGINX+PHP
2.多个服务需要协同工作
3.兼容其他CRI标准的运行时
三、定义一个Pod
apiVersion: v1 #必选,API的版本号
kind: Pod # 必选,类型Pod
metadata: # 必选,元数据
name: nginx # 必选,符合RFC 1035规范的Pod名称
spec: # 必选用于定义Pod的详细信息
containers: # 必选,容器列表
- image: nginx:1.15.12 # 必选,容器所使用的镜像地址
name: nginx # 必选,符合RFC 1035规范的Pod名称
四、使用命令创建pod
kubectl create -f pod.yaml # 创建pod
kubectl get po #查询创建的pod ,如果在其他命名空间要加 "-n" 命令空间
五、修改容器的启动命令
apiVersion: v1 #必选,API的版本号
kind: Pod # 必选,类型Pod
metadata: # 必选,元数据
name: nginx # 必选,符合RFC 1035规范的Pod名称
spec: # 必选用于定义Pod的详细信息
containers: # 必选,容器列表
- image: nginx:1.15.12 # 必选,容器所使用的镜像地址
name: nginx # 必选,符合RFC 1035规范的Pod名称
command: ["sleep", "10"] # 会覆盖entrypoint
解释:command 会覆盖原有容器的nginx 前端启动。当前表现为pod10后启动失败,curl nginx失败