9.1、Pod的配置(pod.spec.containers)

本小节主要来研究pod.spec.containers属性,这也是pod配置中最为关键的一项配置。

一. 本小节主要来研究pod.spec.containers属性,这也是pod配置中最为关键的一项配置。

1. 定义

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 查看使用方法
kubectl explain pod.spec.containers

KIND: Pod
VERSION: v1
RESOURCE: containers <[]Object> # 数组,代表可以有多个容器
FIELDS:
name <string> # 容器名称
image <string> # 容器需要的镜像地址
imagePullPolicy <string> # 镜像拉取策略
command <[]string> # 容器的启动命令列表,如不指定,使用打包时使用的启动命令
args <[]string> # 容器的启动命令需要的参数列表
env <[]Object> # 容器环境变量的配置
ports <[]Object> # 容器需要暴露的端口号列表
resources <Object> # 资源限制和资源请求的设置

containers <[]Object> 容器列表,用于定义容器的详细信息

2. 基本配置

创建pod-base.yaml文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
apiVersion: v1
kind: Pod
metadata: # 元数据
name: pod-base # pod名称
namespace: dev # pod所属的命名空间
labels: # 自定义标签
user: heima
spec: # 详细描述
containers:
- name: nginx # 容器名称
image: nginx:1.17.1 # 容器镜像
- name: busybox # 容器名称
image: busybox:1.30 # 容器镜像

上面定义了一个比较简单Pod的配置,里面有两个容器:

  • nginx:用1.17.1版本的nginx镜像创建,(nginx是一个轻量级web容器)
  • busybox:用1.30版本的busybox镜像创建,(busybox是一个小巧的linux命令集合)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 创建Pod
[root@k8s-master01 pod]# kubectl apply -f pod-base.yaml
pod/pod-base created

# 查看Pod状况
# READY 1/2 : 表示当前Pod中有2个容器,其中1个准备就绪,1个未就绪
# RESTARTS : 重启次数,因为有1个容器故障了,Pod一直在重启试图恢复它
[root@k8s-master01 pod]# kubectl get pod -n dev
NAME READY STATUS RESTARTS AGE
pod-base 1/2 Running 4 95s

# 可以通过describe查看内部的详情
# 此时已经运行起来了一个基本的Pod,虽然它暂时有问题
[root@k8s-master01 pod]# kubectl describe pod pod-base -n dev

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/12/image_33571420e04b19599c2fdbde3d555f2c.png