KubernetesYAML⽂件全字段详解
Kubernetes YAML ⽂件全字段详解
Deployment yaml
其中主要参数都在podTemplate 中,DaemonSet StatefulSet 中的pod部分⼀样。
apiVersion: v1
kind: Deployment
metadata:
name: <deploy-name>
namespace: <ns-name>
labels:
<key>: <value>
spec:
replicas: 2
lector:
matchLabels: #管理的有该label 的pod
<key>: <value>
revisionHistoryLimit: 5
progressDeadlineSeconds: 600 #可选参数;deployment 卡住执⾏出现错误时,等待deployment 进⾏的时间秒数,deployment controller会继续重试。设置该值必须⼤于.spec.minReadySeconds。 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
paud: fal #可选参数默认⾮paud,boolean值。⽤来指定暂停和恢复deploy,paud 和⾮paud的唯⼀区别在于,paud后,所有对PodTemplateSpec的修改都不会触发新的rollout
template: #和pod template中⼀样好看人体艺术
metadata:
冷面name: <pod-name>
labels:
<key>: <value> #需要和pc.lector.matchLabels 中的lable 匹配,否则rs 服务管理到该pod
spec:
containers:
- name:
image:
沥青路面做法青岛毛公山imagePullPolicy: Alway # Alway,IfNotPrent,Never
command:
args:
workingDir: #指定容器的⼯作⽬录
resources: #容器运⾏的资源申请和限制
requests: #申请
cpu:
memory:
limits: #最⼤限制
cpu:
memory:
ports: #容器应⽤运⾏暴露的port
- name:
containerPort:
protocol:
env: # 指定容器运⾏的环境变量
- name:
value:
周公解梦大全查询免费
volumeMounts: # 挂载外部⽂件到容器
- name: <volume-name> # volume 的 name
mountPath: /home # 挂载到容器中的指定路径
livenessProbe: #存活探针
httpGet: #http检测形式
path: </path> #路径
port: <containerPort> #端⼝
httpHeaders: #需要设置请求头时的设置
- name: <key>
value: <value>
initialDelaySeconds: 20 #开始探针检测的等待秒数,根据业务需求具体启动时间来设置,过长会造成应⽤长时间⽆法提供服务,过短会杀死掉没有启动完全的应⽤
#exec: 探针的exec形式
# command:
# - cmd 指令
# - args 参数
periodSeconds: 10 # 执⾏探测的间隔
timeoutSeconds: 3 # 探测超时的时间
successThreshold: 1 # 默认为1,失败状态后的服务检测成功1次后就识别为成功
failureThreshold: 3 # 成功状态后的服务,检测3次失败后为失败
readinessProbe: # 就绪探针
tcpSocket: #tcp 端⼝探测模式,kubelet 执⾏检测⼯作
port: <containerPort> #需要探测容器端⼝
terminationMessagePath: /dev/terminatino-log
terminationMessagePolicy: File
curityContext: {} #容器上下⽂权限
lifecycle: # ⽣命周期
postStart:
exec:
总是想大便又拉不出来怎么回事command:
preStop:
exec:
command:
stdin: true #标准输⼊,是否开启
stdinOnce: true #stdin 为true 后,可以有打开多个通道连接容器,当stdinOnce为true,只能有⼀个通道连接,并且关闭通道后,stdin也将关闭,直到容器重启
tty: true #是否开启交互窗⼝,加stdin 是docker -it ⼀样的功能
hostAlias: # 追加pod 中/etc/hosts ⽂件内容
- ip: "10.1.2.3"
hostnames:
- ""
- ""
shareProcessNamespace: true # ⼏乎不⽤参数,pod 中所有容器共享进程空间
nodeSelector: #指定调度节点标签,⽤节点label 匹配
<key>: <value>
dnsPolicy: ClusterFirst # dns策略
restartPolicy: Always #Always,Never,Failure 重启策略,总是、永不、失败后重启
青岛港oa
schedulerName: default-scheduler # 默认调度策略
curityContext: {} #pod上下⽂权限
terminatinoGracePeriodSeconds: 30 # 默认30 ,优雅关闭时间
curityContext Pod 权限
控制⾯字段名称
已授权容器的运⾏privileged
为容器添加默认的⼀组能⼒defaultAddCapabilities
为容器去掉某些能⼒requiredDropCapabilities
容器能够请求添加某些能⼒allowedCapabilities
少儿夏令营
控制卷类型的使⽤
主机⽹络的使⽤
主机端⼝的使⽤hostPorts
主机 PID namespace 的使⽤hostPID
主机 IPC namespace 的使⽤hostIPC
主机路径的使⽤
容器的 SELinux 上下⽂
⽤户 ID
配置允许的补充组
分配拥有 Pod 数据卷的 FSGroup
必须使⽤⼀个只读的 root ⽂件系统readOnlyRootFilesystem
Pod 安全策略由设置和策略组成,它们能够控制 Pod 访问的安全特征。这些设置分为如下三类:
基于布尔值控制:这种类型的字段默认为最严格限制的值。
基于被允许的值集合控制:这种类型的字段会与这组值进⾏对⽐,以确认值被允许。
基于策略控制:设置项通过⼀种策略提供的机制来⽣成该值,这种机制能够确保指定的值落在被允许的这组值中。RunAsUr
MustRunAs - 必须配置⼀个range。使⽤该范围内的第⼀个值作为默认值。验证是否不在配置的该范围内。
MustRunAsNonRoot - 要求提交的 Pod 具有⾮零runAsUr值,或在镜像中定义了USER环境变量。不提供默认值。
RunAsAny - 没有提供默认值。允许指定任何runAsUr。
SELinux
MustRunAs - 如果没有使⽤预分配的值,必须配置LinuxOptions。默认使⽤LinuxOptions。验证LinuxOptions。
RunAsAny - 没有提供默认值。允许任意指定的LinuxOptions ID。
SupplementalGroups
MustRunAs - ⾄少需要指定⼀个范围。默认使⽤第⼀个范围的最⼩值。验证所有范围的值。
RunAsAny - 没有提供默认值。允许任意指定的supplementalGroups ID。
FSGroup
MustRunAs - ⾄少需要指定⼀个范围。默认使⽤第⼀个范围的最⼩值。验证在第⼀个范围内的第⼀个 ID。
RunAsAny - 没有提供默认值。允许任意指定的fsGroup ID。
控制卷
通过设置 PSP 卷字段,能够控制具体卷类型的使⽤。当创建⼀个卷的时候,与该字段相关的已定义卷可以允许设置如下值:
1. azureFile
2. azureDisk
3. flocker
4. flexVolume
5. hostPath
6. emptyDir
7. gcePersistentDisk
8. awsElasticBlockStore
9. gitRepo
10. cret
11. nfs
12. iscsi
13. glusterfs
14. persistentVolumeClaim
15. rbd
16. cinder
17. cephFS
18. downwardAPI
19. fc
20. configMap
21. vsphereVolume
22. quobyte
23. projected
24. portworxVolume
25. scaleIO
26. storageos
27. * (allow all volumes)
对新的 PSP,推荐允许的卷的最⼩集合包括:configMap、downwardAPI、emptyDir、persistentVolumeClaim、cret 和 projected。
主机⽹络
HostPorts,默认为empty。HostPortRange列表通过min(包含) and max(包含) 来定义,指定了被允许的主机端⼝。
允许的主机路径
AllowedHostPaths是⼀个被允许的主机路径前缀的⽩名单。空值表⽰所有的主机路径都可以使⽤。
许可
包含PodSecurityPolicy的许可控制,允许控制集群资源的创建和修改,基于这些资源在集群范围内被
许可的能⼒。
许可使⽤如下的⽅式为 Pod 创建最终的安全上下⽂: 1. 检索所有可⽤的 PSP。 1. ⽣成在请求中没有指定的安全上下⽂设置的字段值。 1. 基于可⽤的策略,验证最终的设置。
如果某个策略能够匹配上,该 Pod 就被接受。如果请求与 PSP 不匹配,则 Pod 被拒绝。
Pod 必须基于 PSP 验证每个字段。
rvices yaml
后续补充...
endpoints yaml
后续补充...
ingress yaml
后续补充...
RBAC yaml
后续补充...
HPA yaml
后续补充...
ConfigMap, Secret yaml
后续补充...
PV、PVC、StorageClass yaml
后续补充...