KubernetesYAML文件全字段详解

KubernetesYAML文件全字段详解

2023年6月30日发(作者:)

KubernetesYAML⽂件全字段详解Kubernetes YAML ⽂件全字段详解Deployment yaml其中主要参数都在podTemplate 中,DaemonSet StatefulSet 中的pod部分⼀样。apiVersion: v1kind: Deploymentmetadata: name: namespace: labels: : spec:

replicas: 2

selector: matchLabels: #管理的有该label 的pod

: revisionHistoryLimit: 5 progressDeadlineSeconds: 600 #可选参数;deployment 卡住执⾏出现错误时,等待deployment 进⾏的时间秒数,deployment controller会继续重试。设置该值必须⼤于.dySeconds。 minReadySeconds: 0 #可选参数,默认为0(pod 在ready后就被认为可⽤),pod中容器没有crash 并被认为可⽤状态的最⼩秒数。 strategy: #更新的策略,默认为rollingUpdate , 可选Recreate 在创建新pod之前会杀掉所有已经存在的pod rollingUpdate: maxUnavailable: 25% #最⼤不可⽤⽐例,可绝对值,可⽐例 maxSurge: 25% #最⼤更新pod量,可绝对值,可⽐例,按上取整 rollbackTo: #可选参数,⽤来配置deploy回退的配置,设置该参数将触发回退操作,每次回退完成会清楚该值 revision: 0 #默认为0,⽤来指定回退到的revision,0意味着回退到历史中最⽼的revision paused: false #可选参数 默认⾮paused,boolean值。⽤来指定暂停和恢复deploy,paused 和 ⾮paused的唯⼀区别在于,paused后,所有对PodTemplateSpec的修改都不会触发新的rollout template: #和pod template中⼀样 metadata: name: labels: : #需要和abels 中的lable 匹配,否则rs 服务管理到该pod spec: containers: - name:

image: imagePullPolicy: Alway # Alway,IfNotPresent,Never

command: args: workingDir: #指定容器的⼯作⽬录 resources: #容器运⾏的资源申请和限制 requests: #申请 cpu: memory: limits: #最⼤限制 cpu: memory: ports: #容器应⽤运⾏暴露的port - name: containerPort: protocol: env: # 指定容器运⾏的环境变量 - name: value: volumeMounts: # 挂载外部⽂件到容器 - name: # volume 的 name mountPath: /home # 挂载到容器中的指定路径 livenessProbe: #存活探针 httpGet: #http检测形式 path: #路径 port: #端⼝ httpHeaders: #需要设置请求头时的设置 - name: value: initialDelaySeconds: 20 #开始探针检测的等待秒数,根据业务需求具体启动时间来设置,过长会造成应⽤长时间⽆法提供服务,过短会杀死掉没有启动完全的应⽤ #exec: 探针的exec形式 # command: # - cmd 指令 # - args 参数 periodSeconds: 10 # 执⾏探测的间隔 timeoutSeconds: 3 # 探测超时的时间 successThreshold: 1 # 默认为1,失败状态后的服务检测成功1次后就识别为成功 failureThreshold: 3 # 成功状态后的服务,检测3次失败后为失败 readinessProbe: # 就绪探针 tcpSocket: #tcp 端⼝探测模式,kubelet 执⾏检测⼯作 port: #需要探测容器端⼝ terminationMessagePath: /dev/terminatino-log terminationMessagePolicy: File securityContext: {} #容器上下⽂权限 lifecycle: # ⽣命周期 postStart: exec: command: preStop: exec: command: stdin: true #标准输⼊,是否开启 stdinOnce: true #stdin 为true 后,可以有打开多个通道连接容器,当stdinOnce为true,只能有⼀个通道连接,并且关闭通道后,stdin也将关闭,直到容器重启 tty: true #是否开启交互窗⼝,加stdin 是docker -it ⼀样的功能 hostAliases: # 追加pod 中/etc/hosts ⽂件内容 - ip: "10.1.2.3" hostnames: - "" - "" shareProcessNamespace: true # ⼏乎不⽤参数,pod 中所有容器共享进程空间 nodeSelector: #指定调度节点标签,⽤节点label 匹配 :

dnsPolicy: ClusterFirst # dns策略 restartPolicy: Always #Always,Never,Failure 重启策略,总是、永不、失败后重启 schedulerName: default-scheduler # 默认调度策略 securityContext: {} #pod上下⽂权限 terminatinoGracePeriodSeconds: 30 # 默认30 ,优雅关闭时间

securityContext Pod 权限控制⾯已授权容器的运⾏为容器添加默认的⼀组能⼒为容器去掉某些能⼒容器能够请求添加某些能⼒控制卷类型的使⽤主机⽹络的使⽤主机端⼝的使⽤主机 PID namespace 的使⽤主机 IPC namespace 的使⽤主机路径的使⽤容器的 SELinux 上下⽂⽤户 ID配置允许的补充组分配拥有 Pod 数据卷的 FSGroup必须使⽤⼀个只读的 root ⽂件系统readOnlyRootFilesystemPod

安全策略 由设置和策略组成,它们能够控制 Pod 访问的安全特征。这些设置分为如下三类:hostPortshostPIDhostIPC字段名称privilegeddefaultAddCapabilitiesrequiredDropCapabilitiesallowedCapabilities基于布尔值控制 :这种类型的字段默认为最严格限制的值。基于被允许的值集合控制 :这种类型的字段会与这组值进⾏对⽐,以确认值被允许。基于策略控制 :设置项通过⼀种策略提供的机制来⽣成该值,这种机制能够确保指定的值落在被允许的这组值中。RunAsUserMustRunAs - 必须配置⼀个

range。使⽤该范围内的第⼀个值作为默认值。验证是否不在配置的该范围内。MustRunAsNonRoot - 要求提交的 Pod 具有⾮零

runAsUser 值,或在镜像中定义了

USER 环境变量。不提供默认值。RunAsAny - 没有提供默认值。允许指定任何

runAsUser 。SELinuxMustRunAs - 如果没有使⽤预分配的值,必须配置

seLinuxOptions。默认使⽤

seLinuxOptions。验证

seLinuxOptions。RunAsAny - 没有提供默认值。允许任意指定的

seLinuxOptions ID。SupplementalGroupsMustRunAs - ⾄少需要指定⼀个范围。默认使⽤第⼀个范围的最⼩值。验证所有范围的值。RunAsAny - 没有提供默认值。允许任意指定的

supplementalGroups ID。FSGroupMustRunAs - ⾄少需要指定⼀个范围。默认使⽤第⼀个范围的最⼩值。验证在第⼀个范围内的第⼀个 ID。RunAsAny - 没有提供默认值。允许任意指定的

fsGroup ID。控制卷通过设置 PSP 卷字段,能够控制具体卷类型的使⽤。当创建⼀个卷的时候,与该字段相关的已定义卷可以允许设置如下值:1. azureFile2. azureDisk3. flocker4. flexVolume5. hostPath6. emptyDir7. gcePersistentDisk8. awsElasticBlockStore9. gitRepo10. secret11. nfs12. iscsi13. glusterfs14. persistentVolumeClaim15. rbd16. cinder17. cephFS18. downwardAPI19. fc20. configMap21. vsphereVolume22. quobyte23. projected24. portworxVolume25. scaleIO26. storageos27. * (allow all volumes)对新的 PSP,推荐允许的卷的最⼩集合包括:configMap、downwardAPI、emptyDir、persistentVolumeClaim、secret 和 projected。主机⽹络HostPorts , 默认为

empty。HostPortRange 列表通过

min(包含) and

max(包含) 来定义,指定了被允许的主机端⼝。允许的主机路径AllowedHostPaths 是⼀个被允许的主机路径前缀的⽩名单。空值表⽰所有的主机路径都可以使⽤。许可包含

PodSecurityPolicy 的

许可控制,允许控制集群资源的创建和修改,基于这些资源在集群范围内被许可的能⼒。许可使⽤如下的⽅式为 Pod 创建最终的安全上下⽂: 1. 检索所有可⽤的 PSP。 1. ⽣成在请求中没有指定的安全上下⽂设置的字段值。 1. 基于可⽤的策略,验证最终的设置。如果某个策略能够匹配上,该 Pod 就被接受。如果请求与 PSP 不匹配,则 Pod 被拒绝。Pod 必须基于 PSP 验证每个字段。services yaml后续补充...endpoints yaml后续补充...ingress yaml后续补充...RBAC yaml后续补充...HPA yaml后续补充...ConfigMap, Secret yaml后续补充...PV、PVC、StorageClass yaml后续补充...

发布者:admin,转转请注明出处:http://www.yc00.com/web/1688056270a72230.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信