108 lines
4.2 KiB
Markdown
108 lines
4.2 KiB
Markdown
**定义一个Pod**
|
||
|
||
````
|
||
apiVersion: v1 # 必选,API的版本号
|
||
kind: Pod # 必选,类型Pod
|
||
metadata: # 必选,元数据
|
||
name: nginx # 必选,符合RFC 1035规范的Pod名称
|
||
namespace: default # 可选,Pod所在的命名空间,不指定默认为default,可以使用-n 指定namespace
|
||
labels: # 可选,标签选择器,一般用于过滤和区分Pod
|
||
app: nginx
|
||
role: frontend # 可以写多个
|
||
annotations: # 可选,注释列表,可以写多个
|
||
app: nginx
|
||
spec: # 必选,用于定义容器的详细信息
|
||
initContainers: # 初始化容器,在容器启动之前执行的一些初始化操作
|
||
- command:
|
||
- sh
|
||
- -c
|
||
- echo "I am InitContainer for init some configuration"
|
||
image: busybox
|
||
imagePullPolicy: IfNotPresent
|
||
name: init-container
|
||
containers: # 必选,容器列表
|
||
- name: nginx # 必选,符合RFC 1035规范的容器名称
|
||
image: nginx:latest # 必选,容器所用的镜像的地址
|
||
imagePullPolicy: Always # 可选,镜像拉取策略
|
||
command: # 可选,容器启动执行的命令
|
||
- nginx
|
||
- -g
|
||
- "daemon off;"
|
||
workingDir: /usr/share/nginx/html # 可选,容器的工作目录
|
||
volumeMounts: # 可选,存储卷配置,可以配置多个
|
||
- name: webroot # 存储卷名称
|
||
mountPath: /usr/share/nginx/html # 挂载目录
|
||
readOnly: true # 只读
|
||
ports: # 可选,容器需要暴露的端口号列表
|
||
- name: http # 端口名称
|
||
containerPort: 80 # 端口号
|
||
protocol: TCP # 端口协议,默认TCP
|
||
env: # 可选,环境变量配置列表
|
||
- name: TZ # 变量名
|
||
value: Asia/Shanghai # 变量的值
|
||
- name: LANG
|
||
value: en_US.utf8
|
||
resources: # 可选,资源限制和资源请求限制
|
||
limits: # 最大限制设置
|
||
cpu: 1000m
|
||
memory: 1024Mi
|
||
requests: # 启动所需的资源
|
||
cpu: 100m
|
||
memory: 512Mi
|
||
# startupProbe: # 可选,检测容器内进程是否完成启动。注意三种检查方式同时只能使用一种。
|
||
# httpGet: # httpGet检测方式,生产环境建议使用httpGet实现接口级健康检查,健康检查由应用程序提供。
|
||
# path: /api/successStart # 检查路径
|
||
# port: 80
|
||
readinessProbe: # 可选,健康检查。注意三种检查方式同时只能使用一种。
|
||
httpGet: # httpGet检测方式,生产环境建议使用httpGet实现接口级健康检查,健康检查由应用程序提供。
|
||
path: / # 检查路径
|
||
port: 80 # 监控端口
|
||
livenessProbe: # 可选,健康检查
|
||
#exec: # 执行容器命令检测方式
|
||
#command:
|
||
#- cat
|
||
#- /health
|
||
#httpGet: # httpGet检测方式
|
||
# path: /_health # 检查路径
|
||
# port: 8080
|
||
# httpHeaders: # 检查的请求头
|
||
# - name: end-user
|
||
# value: Jason
|
||
tcpSocket: # 端口检测方式
|
||
port: 80
|
||
initialDelaySeconds: 60 # 初始化时间
|
||
timeoutSeconds: 2 # 超时时间
|
||
periodSeconds: 5 # 检测间隔
|
||
successThreshold: 1 # 检查成功为2次表示就绪
|
||
failureThreshold: 2 # 检测失败1次表示未就绪
|
||
lifecycle:
|
||
postStart: # 容器创建完成后执行的指令, 可以是exec httpGet TCPSocket
|
||
exec:
|
||
command:
|
||
- sh
|
||
- -c
|
||
- 'mkdir /data/ '
|
||
preStop:
|
||
httpGet:
|
||
path: /
|
||
port: 80
|
||
# exec:
|
||
# command:
|
||
# - sh
|
||
# - -c
|
||
# - sleep 9
|
||
restartPolicy: Always # 可选,默认为Always
|
||
#nodeSelector: # 可选,指定Node节点
|
||
# region: subnet7
|
||
imagePullSecrets: # 可选,拉取镜像使用的secret,可以配置多个
|
||
- name: default-dockercfg-86258
|
||
hostNetwork: false # 可选,是否为主机模式,如是,会占用主机端口
|
||
volumes: # 共享存储卷列表
|
||
- name: webroot # 名称,与上述对应
|
||
emptyDir: {} # 挂载目录
|
||
#hostPath: # 挂载本机目录
|
||
# path: /etc/hosts
|
||
|
||
````
|
||
|