选择通过Kubernetes YAML方式创建ECI类型伸缩组时,在配置YAML文件之前,您需要了解支持的YAML字段和Annotation字段,可以帮助您更好地配置符合实际场景需要的YAML文件。
支持的YAML字段
通过Kubernetes YAML方式部署ECI类型伸缩组时,在配置YAML文件时仅支持以下Kubernetes Deployment资源类型中的YAML字段:
您可以参考Kubernetes官网的Deployment示例了解YAML文件的模板结构,YAML字段主要包括kind
、metadata
和spec
三部分。
支持的Kubernetes YAML字段
kind
:资源类型,仅支持Deployment类型。metadata.name
:资源名称,伸缩组未使用该字段,生效名称为Annotation中的k8s.aliyun.com/ess-scaling-group-name
。spec.replicas
:Pod副本数,伸缩组中的期望实例数。spec.template.spec
:定义了Pod配置。具体支持的功能如下:功能
YAML字段
说明
DNS配置
dnsPolicy
DNS策略。
dnsConfig.nameservers
DNS服务器的IP地址列表。
dnsConfig.searches
DNS搜索域列表。
dnsConfig.options.name
对象变量名。
dnsConfig.options.value
对象变量值。
容器配置
contaners.name
容器名称。
contaners.image
容器镜像。
contaners.command
容器启动命令。
contaners.args
容器启动命令参数。
contaners.imagePullPolicy
镜像拉取策略。
contaners.stdin
是否为stdin分配缓冲区。
contaners.stdinOnce
是否为stdin分配一次性缓冲区。
contaners.tty
是否分配TTY。
contaners.ports
containerPort
端口号。
protocol
TCP、UDP协议。
contaners.env
name
环境变量名。
value
环境变量值。
contaners.resources
requests.cpu
请求的CPU。
requests.memory
请求的内存。
limits.cpu
限制的CPU。
limits.memory
限制的内存。
limits.nvidia.com/gpu
可以在Pod metadata中添加Annotation来指定GPU规格。
指定GPU规格后,需要在Container的resources中添加nvidia.com/gpu字段声明容器所需的GPU资源。
contaners.securityContext
runAsUser
设置运行容器的用户ID。
readOnlyRootFilesystem
容器运行的根文件系统是否为只读。
capabilities.add
容器内的进程被授予某些特定的权限。
contaners.volumeMounts
name
此字段必须与卷的名称匹配。
mountPath
容器内卷的挂载路径。
mountPropagation
确定挂载如何从主机传播到容器以及如何反向传播。
readOnly
取值范围:
true:以只读方式挂载。
false:以读写方式挂载。
默认为 false。
subPath
卷中的路径。
contaners.livenessProbe
initialDelaySeconds
periodSeconds
successThreshold
timeoutSeconds
failureThreshold
exec.command
tcpSocket.port
httpGet.scheme
httpGet.port
httpGet.path
contaners.readinessProbe
initialDelaySeconds
periodSeconds
successThreshold
timeoutSeconds
failureThreshold
exec.command
tcpSocket.port
httpGet.scheme
httpGet.port
httpGet.path
init容器配置
initContainers.name
初始化容器名称。
initContainers.image
初始化容器镜像。
initContainers.command
初始化容器启动命令。
initContainers.args
初始化容器启动参数。
initContainers.imagePullPolicy
初始化容器镜像拉取策略。
initContainers.env
name
初始化容器环境变量名称。
value
初始化容器环境变量值。
initContainers.resources
requests.cpu
初始化容器请求的CPU。
requests.memory
初始化容器限制的内存。
limits.cpu
初始化容器限制的CPU。
limits.memory
初始化容器限制的内存。
limits.nvidia.com/gpu
初始化容器实用的GPU。
initContainers.securityContext
capabilities.add
初始化容器内的进程授予某些特定的权限。
initContainers.volumeMounts
name
初始化容器使用的卷名称,此字段必须与卷的名称匹配。
mountPath
初始化容器内卷的挂载路径。
mountPropagation
确定挂载如何从主机传播到初始化容器,以及如何反向传播。
readOnly
取值范围:
true:以只读方式挂载。
false:以读写方式挂载。
默认为false。
subPath
卷中的路径。
数据卷配置
volumes.nfs
name
自定义的卷名称。
server
NFS服务器地址(NAS挂载点)。
path
NFS数据卷路径。
readOnly
是否只读。
volumes.emptyDir
sizeLimit
临时目录EmptyDir数据卷的大小。取值时需要带上单位,建议使用Gi或Mi。
medium
EmptyDirVolume的存储媒介。取值范围:
未指定或为空:表示使用node文件系统作为存储媒介。
memory:表示使用内存作为存储媒介。
默认为空。
volumes.flexVolume
driver
用于FlexVolume的驱动程序名称。
options
FlexVolume对象选项列表。为KV形式,采用JSON传递。
例如:通过FlexVolume挂载云盘时,Options的格式为
{"volumeId":"d-2zehdahrwoa7srg****","performanceLevel": "PL2"}
。优雅中断容器配置
terminationGracePeriodSeconds
程序的缓冲时间,用于处理关闭之前的操作。单位为秒。
支持的Annotation字段
通过Kubernetes YAML方式部署ECI类型伸缩组时,在配置YAML文件时仅支持扩展以下Annotation字段。
支持的Annotation
参数 | 示例值 | 说明 |
k8s.aliyun.com/ess-scaling-group-min-size | 1 | 伸缩组内实例最小数。默认值:0。 |
k8s.aliyun.com/ess-scaling-group-max-size | 20 | 伸缩组内实例最大数。默认值:max(replicas, 30)。 |
k8s.aliyun.com/eci-ntp-server | 100.100.*.* | NTP Server。 |
k8s.aliyun.com/eci-use-specs | 2-4Gi | 指定ECI实例规格,支持指定多规格。更多信息,请参见多规格创建Pod。 |
k8s.aliyun.com/eci-vswitch | vsw-bp1xpiowfm5vo8o3c**** | 指定交换机ID,支持指定多个交换机实现多可用区功能。 |
k8s.aliyun.com/eci-security-group | sg-bp1dktddjsg5nktv**** | 指定安全组ID。要求如下:
|
k8s.aliyun.com/eci-sls-enable | "false" | 配置为false表示关闭日志采集功能。通过SLS CRD方式采集日志时,如果某些Pod不需要采集日志,可配置该Annotation来关闭日志采集功能,避免系统自动创建Logtail而造成资源浪费。 |
k8s.aliyun.com/eci-spot-strategy | SpotAsPriceGo | 抢占式实例的出价策略,可根据需要进行配置。
|
k8s.aliyun.com/eci-spot-price-limit | "0.5" | 抢占式实例的每小时价格上限,最多支持精确到小数点后三位。仅当
设置为
时有效。 |
k8s.aliyun.com/eci-with-eip | "true" | 配置为true表示自动创建并绑定EIP。 |
k8s.aliyun.com/eci-data-cache-bucket | default | 指定DataCache的Bucket。使用DataCache创建Pod时必须配置。 |
k8s.aliyun.com/eci-data-cache-pl | PL1 | 基于DataCache创建的云盘的性能等级。默认使用ESSD云盘,性能等级默认为PL1。 |
k8s.aliyun.com/eci-data-cache-provisionedIops | "40000" | ESSD AutoPL云盘预配置的读写IOPS。取值范围:0~min{50000, 1000 * 容量-基准性能},基准性能=min{1800+50 * 容量, 50000}。更多信息,请参见ESSD AutoPL云盘。 如果添加了该Annotation,则基于DataCache创建的云盘类型为ESSD AutoPL云盘。 |
k8s.aliyun.com/eci-data-cache-burstingEnabled | "true" | ESSD AutoPL云盘是否开启Burst(性能突发)。更多信息,请参见ESSD AutoPL云盘。 如果添加了该Annotation,则基于DataCache创建的云盘类型为ESSD AutoPL云盘。 |
k8s.aliyun.com/eci-custom-tags | "env:test,name:alice" | 绑定的标签(Tag)字符串,最多可以绑定3个标签。标签键和标签值之间用半角冒号(:)隔开,多个标签之间用半角逗号(,)隔开。 |
更多Annotation信息,请参见ECI Pod Annotation。
- 本页导读