k8s的Deployment.yaml配置文件字段详解
1apiVersion: extensions/v1beta1 # 指定api版本,此值必须在kubectl api-versions中
2kind: Deployment # 指定创建资源的角色/类型
3metadata: # 资源的元数据/属性
4 name: demo # 资源的名字,在同一个namespace中必须唯一
5 namespace: default # 部署在哪个namespace中
6 labels: # 设定资源的标签
7 app: nginx
8 version: v1
9spec: # 资源规范字段
10 replicas: 1 # 声明副本数目
11 revisionHistoryLimit: 3 # 保留历史版本
12 selector: # 选择器
13 matchLabels: # 匹配标签
14 app: nginx
15 version: v1
16 minReadySeconds: 30 #定义新建的 Pod 经过多少秒后才被视为可用
17 terminationGracePeriodSeconds: 30 #30秒内 (默认 30s) 还未完全停止,就发送 SIGKILL 信号强制杀死进程。
18 progressDeadlineSeconds: 600 #升级过程中的最大时间(如果升级过程被暂停了,该时间也会同步暂停,时间不会一直增长)
19 strategy: # 策略
20 rollingUpdate: # 滚动更新
21 maxSurge: 30% # 最大额外可以存在的副本数,可以为百分比,也可以为整数
22 maxUnavailable: 30% # 示在更新过程中能够进入不可用状态的 Pod 的最大值,可以为百分比,也可以为整数
23 type: RollingUpdate # 滚动更新策略
24 template: # 模版
25 metadata: # 资源的元数据/属性
26 annotations: # 自定义注解列表
27 sidecar.istio.io/inject: "false" # 自定义注解名字
28 labels: # 设定资源的标签
29 app: nginx
30 version: v1
31 spec: # 资源规范字段
32 containers:
33 - name: nginx# 容器的名字
34 image: nginx:1.17.0 # 容器使用的镜像地址
35 imagePullPolicy: IfNotPresent # 每次Pod启动拉取镜像策略,三个选择 Always、Never、IfNotPresent
36 # Always,每次都检查;
37 # Never,每次都不检查(不管本地是否有);
38 # IfNotPresent,如果本地有就不检查,如果没有就拉取(手动测试时,已经打好镜像存在docker容器中时,
39 # 使用存在不检查级别, 默认为每次都检查,然后会进行拉取新镜像,因镜像仓库不存在,导致部署失败)
40 volumeMounts: #文件挂载目录,容器内配置
41 - mountPath: /data/ #容器内要挂载的目录
42 name: share #定义的名字,需要与下面vloume对应
43 resources: # 资源管理
44 limits: # 最大使用
45 cpu: 300m # CPU,1核心 = 1000m
46 memory: 500Mi # 内存,1G = 1000Mi
47 requests: # 容器运行时,最低资源需求,也就是说最少需要多少资源容器才能正常运行
48 cpu: 100m
49 memory: 100Mi
50 livenessProbe: # pod 内部健康检查的设置
51 httpGet: # 通过httpget检查健康,返回200-399之间,则认为容器正常
52 path: /healthCheck # URI地址
53 port: 8080 # 端口
54 scheme: HTTP # 协议
55 # host: 127.0.0.1 # 主机地址
56 initialDelaySeconds: 30 # 表明第一次检测在容器启动后多长时间后开始
57 timeoutSeconds: 5 # 检测的超时时间
58 periodSeconds: 30 # 检查间隔时间
59 successThreshold: 1 # 成功门槛
60 failureThreshold: 5 # 失败门槛,连接失败5次,pod杀掉,重启一个新的pod
61 readinessProbe: # Pod 准备服务健康检查设置
62 httpGet:
63 path: /healthCheck
64 port: 8080
65 scheme: HTTP
66 initialDelaySeconds: 30
67 timeoutSeconds: 5
68 periodSeconds: 10
69 successThreshold: 1
70 failureThreshold: 5
71 #也可以用这种方法
72 #exec: 执行命令的方法进行监测,如果其退出码不为0,则认为容器正常
73 # command:
74 # - cat
75 # - /tmp/health
76 #也可以用这种方法
77 #tcpSocket: # 通过tcpSocket检查健康
78 # port: number
79 ports:
80 - name: http # 名称
81 containerPort: 8080 # 容器开发对外的端口
82 protocol: TCP # 协议
83 imagePullSecrets: # 镜像仓库拉取密钥
84 - name: harbor-certification
85 volumes: #挂载目录在本机的路径
86 - name: share #对应上面的名字
87 hostPath:
88 path: /data #挂载本机的路径
89 affinity: # 亲和性调试
90 nodeAffinity: # 节点亲和力
91 requiredDuringSchedulingIgnoredDuringExecution: # pod 必须部署到满足条件的节点上
92 nodeSelectorTerms: # 节点满足任何一个条件就可以
93 - matchExpressions: # 有多个选项,则只有同时满足这些逻辑选项的节点才能运行 pod
94 - key: beta.kubernetes.io/arch
95 operator: In
96 values:
97 - amd64
发布日期:2023-03-07 23:55 字数:396 用时
标签云
alpine(1) api网关(1) async(1) await(1) centos(4) cli(1) client-go(1) debug(1) docker(10) docker-compose(1) dockerfile(1) embed(1) es6(1) etcd(1) etcdctl(1) freemesh(2) git(6) go(5) go-zeus(5) goland(2) golang(7) grafana(2) grpc(5) grpcurl(1) homebrew(1) homedir(1) http(2) hugo(1) java(2) javascript(3) job(1) js(1) json(1) k8s(16) k8s部署指南(1) kubebuilder(1) kubectl(4) kubernetes(1) linux(2) localecompare(1) lombok(1) metrics(2) mock(1) mysql(1) npm(1) nsenter(1) nvm(1) pnpm(2) pprof(1) prettier(1) prometheus(2) protobuf3(1) protoc(1) qiankun(1) request(1) scss(1) servicemesh(1) spring(1) springcloud->freemesh(1) ssh(2) systemctl(1) tcpdump(1) typescript(2) vite(2) vscode(2) vue(8) vue-admin(2) vue3(1) webssh(1) xtermjs(1) xxl-job(1) yarn(1) zookeeper(1) 云原生(4) 云原生框架(1) 介绍(1) 单体架构->freemesh(1) 单元化(1) 博客(1) 压缩(1) 可观测(1) 后台管理系统(1) 命名规范(1) 多云多活(1) 如水网(1) 安全(1) 安装(1) 容器(2) 开发联调神器(1) 微前端(1) 微服务(2) 微服务架构->freemesh(1) 微服务框架(1) 快速开始(1) 控制面(1) 数据面(1) 文集(2) 服务发现(1) 服务网格(1) 流量泳道(1) 流量管理(1) 监控告警(1) 端口映射(1) 证书(1) 负载均衡(1) 配置(1)