第六篇:kubernetes之Pod基础(一)

112 阅读2分钟

注明:当前文档内容来源于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失败