本文介绍容器服务Swarm集群相关的发布类标签。

Swarm标签名 Swarm标签含义 对应 Kubernetes配置方案 Swarm配置示例 Kubernetes配置示例 如何迁移
restart 容器重启策略。 restartPolicy标签。 kompose自动迁移。
aliyun.latest_image 是否拉取最新镜像。 imagePullPolicy标签。 aliyun.latest_image: true 请参见aliyun.latest_image的Kubernetes配置示例。

手动迁移 :

kompose转换后,修改该应用对应资源文件*-deployment.yaml,添加 imagePullPolicy 配置。如果不填写,默认策略是always。

depends_on 设置服务的依赖关系。 利用init container,liveness/readiness探针等技术实现服务健康检查、依赖检查等功能。详细参见解决服务依赖 依赖业务实现。
aliyun.depends 设置服务的依赖关系。 利用init container,liveness/readiness探针等技术实现服务健康检查、依赖检查等功能。详细参见解决服务依赖 依赖业务实现。
environment: affinity:service!=db 设置服务的部署约束条件,参见服务部署约束(affinity:service) 在 Kubernetes中可以通过affinity.nodeAffinity affinity.podAffinity affinity.podAntiAffinity标签做Node或Pod亲和性配置,参见Affinity and anti-affinity 依赖业务实现。
environment: constraint:group==1 表示在所有带有group:1标签的节点上部署。 在Kubernetes可以通过nodeSelector来做Node过滤,参见nodeSelector 请参见environment: constraint:group==1的Swarm配置示例。 请参见environment: constraint:group==1的Kubernetes配置示例。

手动迁移:

kompose转换后,修改该应用对应资源文件*-deployment.yaml,添加 nodeSelector配置。

aliyun.global 设置该服务为全局服务。 通过DaemonSet类型应用支持,创建方式,参见DaemonSet 请参见aliyun.global的Swarm配置示例。 aliyun.global的Kubernetes配置示例。

kompose自动迁移+手动修复

手动修复:

kompose转换后,需要删除资源文件中的status章节(用来记录中间状态),才能部署成功。

aliyun.scale 设置该服务的容器数量,横向扩展服务。 replicas标签。 aliyun.scale: '10' replicas: 10 kompose自动迁移。
aliyun.rolling_updates 是否开启服务滚动更新。 strategy.type.RollingUpdate标签,参见Strategy 请参见aliyun.rolling_updates和aliyun.rolling_updates.parallelism的Swarm配置示例。 请参见aliyun.rolling_updates和aliyun.rolling_updates.parallelism的Kubernetes配置示例。

手动迁移:

kompose转换后,需要手动配置滚动更新策略。

aliyun.rolling_updates.parallelism 每次并行更新的容器数量。 maxUnavailable标签,参见Strategy

手动迁移:

kompose转换后,需要手动配置滚动更新策略。

aliyun.auto_scaling.* 容器自动伸缩,根据服务的容器资源占用情况自动调整容器数量。参见容器自动伸缩 无法简单做标签映射,阿里云容器服务支持在控制台界面上快速创建支持HPA的应用,实现容器资源的弹性伸缩。参见容器水平伸缩(HPA) 请参见aliyun.auto_scaling.*的Swarm配置示例。 请参见aliyun.auto_scaling.*的Kubernetes配置示例。

手动迁移:

部署Kubernetes资源文件后,在控制台配置。

aliyun.probe.cmd 健康检查执行的检查 Shell 命令,参见probe livenessProbe标签。 请参见aliyun.probe.cmd、aliyun.probe.initial_delay_seconds和aliyun.probe.timeout_seconds的Swarm配置示例。 请参见aliyun.probe.cmd、aliyun.probe.initial_delay_seconds和aliyun.probe.timeout_seconds的Kubernetes配置示例。 kompose自动迁移。
aliyun.probe.initial_delay_seconds 在容器启动后延迟几秒开始健康检查,参见probe livenessProbe 标签 。
说明
  • 在Swarm里面健康检查只是用来表示容器状态,并不会影响其对外提供服务。

  • 但在Kubernetes中,如果livenessProbe检查失败,则Kubernetes会强制重启容器,所以延迟该标签的值一定要设置合理,否则会导致Kubernetes不断重启容器,导致服务不可用。

kompose自动迁移。
aliyun.probe.timeout_seconds 健康检查的超时时间,参见probe livenessProbe标签 kompose自动迁移。
aliyun.probe.url HTTP、TCP 请求的 URL,参见probe livenessProbe标签 请参见aliyun.probe.url的Swarm配置示例。 请参见aliyun.probe.url的Kubernetes配置示例。 kompose自动迁移。
extra_hosts 添加容器 Host 文件绑定配置。 对应 Kubernetes的hostAliases配置,参见Adding Additional Entries with HostAliases 请参见extra_hosts的Swarm配置示例。 请参见extra_hosts的Kubernetes配置示例。

手动迁移:

kompose转换后,修改该应用对应资源文件*-deployment.yaml,添加 hostAliases配置。

entrypoint 覆盖默认入口点。 command标签 请参见entrypoint的Swarm配置示例。 请参见entrypoint的Kubernetes配置示例。 kompose自动迁移。
command 重写默认命令。 args标签 请参见command的Swarm配置示例。 请参见command的Kubernetes配置示例。 kompose自动迁移。

aliyun.latest_image

Swarm配置示例 Kubernetes配置示例
aliyun.latest_image: true aliyun.latest_image

详细配置,请参见config-deployment.yaml

environment: constraint:group==1

Swarm配置示例 Kubernetes配置示例
environment: constraint:group==1 environment: constraint:group==1

详细配置,请参见auth-mongodb-deployment.yaml

aliyun.global

Swarm配置示例 Kubernetes配置示例
aliyun.global aliyun.global

详细配置,请参见logtail2-daemonset.yaml

aliyun.rolling_updates和aliyun.rolling_updates.parallelism

Swarm配置示例 Kubernetes配置示例
1 1

详细配置,请参见config-deployment.yaml

aliyun.auto_scaling.*

Swarm配置示例 Kubernetes配置示例
aliyun.auto_scaling.* aliyun.auto_scaling.*

aliyun.probe.cmd、aliyun.probe.initial_delay_seconds和aliyun.probe.timeout_seconds

Swarm配置示例 Kubernetes配置示例
aliyun.probealiyun.latest_image: true aliyun.probe.

详细配置,请参见config-deployment.yaml

aliyun.probe.url

Swarm配置示例 Kubernetes配置示例
aliyun.probe.url probe

详细配置,请参见gateway-deployment.yaml

extra_hosts

Swarm配置示例 Kubernetes配置示例
extra_hosts extra_hosts

详细配置,请参见logtail2-daemonset.yaml

entrypoint

Swarm配置示例 Kubernetes配置示例
entrypoint entrypoint

详细配置,请参见 auth-service-deployment.yaml

command

Swarm配置示例 Kubernetes配置示例
command command

详细配置,请参见 auth-service-deployment.yaml