apiVersion: apps/v1 #指定api版本,此值必须在k8s api-versions中
kind: Deployment # 指定创建资源的角色/类型
metadata: # 资源的元数据/属性
name: # 资源的名字,在同一个namespace中必须唯一
namespace: # 部署在哪个namespace中
spec: # 资源规范字段
strategy: # 策略
type: RollingUpdate # 滚动更新策略
selector: # 选择器
matchLabels: # 匹配标签
app:
replicas: 1 # 声明副本数目
template: # 模版
metadata: # 资源的元数据/属性
labels: # 设定资源的标签
app: jxcc-trade-merchants-server
spec: # 资源规范字段
containers:
- name: # 容器的名字
image: # 容器使用的镜像地址
imagePullPolicy: Always # 每次Pod启动拉取镜像策略,三个选择 Always、Never、IfNotPresent
# Always,每次都检查;Never,每次都不检查(不管本地是否有);IfNotPresent,如果本地有就不检查,如果没有就拉取
args: ["test"] #指定dockerFile运行时,指定使用哪个bootstrap-xxx.ymal文件
ports: #容器端口
- containerPort:
- containerPort:
resources: # 资源管理
limits: # 最大使用
cpu: 1000m # CPU,1核心 = 1000m
memory: 2000Mi # 内存,1G = 1024Mi
requests: # 容器运行时,最低资源需求,也就是说最少需要多少资源容器才能正常运行
cpu: 1000m
memory: 2000Mi
readinessProbe: # Pod 准备服务健康检查设置
httpGet:
path: /actuator/health
port:
scheme: HTTP
# 表明第一次检测在容器启动后多长时间后开始
initialDelaySeconds: 30
# 检查间隔时间
periodSeconds: 5
# 失败门槛,失败1次,pod杀掉,重启一个新的pod
failureThreshold: 1
# 成功门槛
successThreshold: 1
# 检测的超时时间
timeoutSeconds: 5
#pod生命周期
lifecycle:
preStop:
exec:
command:
- bash
- -c
- 'curl -X "POST" "http:"'
# pod DNS的策略 ClusterFirst:默认的配置,所有请求会优先在集群所在域查询,如果没有才会转发到上游DNS
dnsPolicy: ClusterFirst
#重启策略 Always : 容器失效时,kubelet 自动重启该容器;
# 可选策略
# OnFailure : 容器终止运行且退出码不为0时重启;
# Never : 不论状态为何, kubelet 都不重启该容器。
restartPolicy: Always
#定义优雅关闭的宽限期,即在收到停止请求后,有多少时间来进行资源释放或者做其它操作,
#如果到了最大时间还没有停止,会被强制结束。默认30s
terminationGracePeriodSeconds: 30