详情页标题前

阿里云容器服务ACK节点池部署集最佳实践-云淘科技

详情页1

部署集是控制ECS实例分布的策略,该策略将ECS实例分散部署在不同的物理服务器上,提升业务的高可用性和底层容灾能力。通过为节点池指定部署集,能够保证节点池弹出的ECS实例不会分布于同一物理机上,并通过亲和性配置,使您的应用对底层的节点拓扑进行感知,使其均匀地分布在不同节点上,保证应用的容灾能力和高可用性。本文介绍如何通过ACK控制台为节点池指定部署集,并介绍两种典型的使用案例。

前提条件

  • 已创建部署集。具体操作,请参见创建部署集。

  • 请确保部署集内ECS实例配额充足,默认为20台;所需机型库存充足。具体信息,请参见查看和提升资源配额。

背景信息

在同可用区下,为了保证高可用,您通常会选择跨主机部署服务,但是当一台物理机出问题时,会影响到应用的所有副本。为了解决这个问题,ECS提供了部署集功能。部署集内所有ECS实例会在指定地域内严格分散在不同的物理服务器上,满足服务相互隔离的应用架构,大幅降低服务不可用的几率。关于部署集的更多信息,请参见部署集概述。

使用限制

  • 每个节点池仅支持绑定一个部署集,且不支持更换部署集。

  • 目前部署集不支持手动添加或移除节点,您可以通过扩缩容节点池的操作,调整部署集中的节点数。具体操作,请参见创建节点池。

  • 选择开启部署集功能后,不支持创建抢占式实例和专有宿主机。

  • 选择开启部署集功能后,一个可用区内最多能创建20台ECS实例(该数值根据您使用云服务器ECS的情况而变化),一个阿里云地域下能创建的ECS实例数量为20×可用区数量(可用区数量由节点池选择的交换机决定)。目前部署集暂不支持配额申请,如有需求,请前往配额平台申请。

  • 部署集支持的实例规格族信息:

    说明

    部分规格族只支持特定的部署集策略,您可以调用DescribeDeploymentSetSupportedInstanceTypeFamily获取各种部署集策略支持的实例规格族信息。

    部署策略

    支持的实例规格族

    高可用策略和部署集组高可用策略

    • g8i、g8y、g7se、g7a、g7、g7t、g7ne、g7nex、g6、g6e、g6a、g6h、g5、g5ne、sn2ne

    • c8i、c8y、c7se、c7、c7t、c7nex、c7a、c6、c6a、c6e、c5、ic5、sn1ne

    • r8y、r7、r7se、r7t、r7a、r6、r6e、r6a、re6、re6p、r5、re4、se1ne、se1

    • hfc7、hfg7、hfr7、hfc6、hfg6、hfr6、hfc5、hfg5

    • d3s、d3c、d2s、d2c、d1、d1ne、d1-c14d3、d1-c8d3

    • i4、i4g、i4r、i3g、i3、i2、i2g、i2ne、i2gne、i1

    • ebmg5、sccgn6、scch5、scch5s、sccg5、sccg5s

    • s6、t6、xn4、mn4、n4、e4、

    • gn6i

    • u1

    网络低时延策略

    • g8a、g8i、g8ae、g8y

    • c8a、c8i、c8ae、c8y

    • r8a、r8i、r8ae、r8y

    • i4

    • ebmgn7ex

  • 在部署集内创建ECS实例,或重启按量付费ECS实例(节省停机模式)时,供货紧缺依然会导致请求失败。请前往配额平台申请,确保配额充足,节点池节点能够正确弹出。

更多有关部署集的使用限制及配额,请参见使用限制。

通过控制台为节点池指定部署集

  1. 登录容器服务管理控制台。
  2. 在控制台左侧导航栏,单击集群
  3. 集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情
  4. 在集群管理页左侧导航栏,选择节点管理 > 节点池
  5. 节点池页面右上角,单击创建节点池创建托管节点池

  6. 创建节点池创建托管节点池对话框中,配置参数,选择部署集,然后单击确认配置

    有关配置项的详细说明,请参见操作步骤。阿里云容器服务ACK节点池部署集最佳实践-云淘科技

使用案例

  • 场景一:服务在同一个节点池中,同一个应用的Pod之间反亲和,一个节点只能调度一个Pod

    本示例介绍如何将Deployment中的三个Pod副本调度到三个不同节点上,操作步骤如下。

    1. 创建节点池包含三个节点,并为节点池指定部署集ID。具体操作,请参见通过控制台为节点池指定部署集。

      创建节点池完成后,在节点池页面,单击目标节点,在节点管理页签,可以查看到成功创建的三个节点。阿里云容器服务ACK节点池部署集最佳实践-云淘科技

      登录ECS控制台,在左侧导航栏选择部署与弹性 > 部署集,在部署集页面,可以查看到节点池中的三个节点均属于所选的部署集。阿里云容器服务ACK节点池部署集最佳实践-云淘科技

    2. 使用以下示例内容,配置应用YAML。

      通过反亲和性配置三个应用Pod,将不同的Pod调度到节点池不同节点上。

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: nginx
        labels:
          app: nginx
      spec:
        replicas: 3
        selector:
          matchLabels:
            app: nginx
        template:
          metadata:
            name: nginx
            labels:
              app: nginx
          spec:
            affinity:
              podAntiAffinity:
                requiredDuringSchedulingIgnoredDuringExecution:  #设置调度策略。
                - labelSelector:
                    matchExpressions:
                    - key: app
                      operator: In
                      values:
                      - nginx
                  topologyKey: kubernetes.io/hostname
            nodeSelector:
                alibabacloud.com/nodepool-id:   #指定节点池ID。
            containers:
            - name: nginx
              image: nginx
              resources:
                limits:
                  cpu: 1
                requests:
                  cpu: 1

      执行结果

      无状态页面,单击目标Deployment,在容器组页签,可以看到三个不同的Pod调度到节点池不同节点上。阿里云容器服务ACK节点池部署集最佳实践-云淘科技

  • 场景二:服务在同一个节点池中,同一个应用的Pod之间按照可用区和节点均匀调度打散

    1. 创建节点池包含四个节点,为节点池指定部署集ID,并选择多可用区的VSwitch。具体操作,请参见通过控制台为节点池指定部署集。

      创建完成后,在节点页面,可以查看到四个节点,并选择了四个可用区。根据ESS的均匀分布策略,弹出的ECS实例将分布在不同的四个可用区,且均加入了部署集。阿里云容器服务ACK节点池部署集最佳实践-云淘科技

      登录ECS控制台,在左侧导航栏选择部署与弹性 > 部署集,在部署集页面,可以查看到节点池中的四个节点均属于所选的部署集。阿里云容器服务ACK节点池部署集最佳实践-云淘科技

    2. 使用以下示例内容,配置应用YAML。

      通过Pod拓扑分布约束,将同一个应用的Pod之间按照可用区和节点均匀调度打散。更多信息,请参见Pod 拓扑分布约束。

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: nginx
        labels:
          app: nginx
      spec:
        replicas: 4
        selector:
          matchLabels:
            app: nginx
        template:
          metadata:
            name: nginx
            labels:
              app: nginx
          spec:
            topologySpreadConstraints:
              - maxSkew: 1
                topologyKey: kubernetes.io/hostname
                whenUnsatisfiable: DoNotSchedule
                labelSelector:
                    matchLabels:
                      app: nginx
              - maxSkew: 1
                topologyKey: topology.kubernetes.io/zone
                whenUnsatisfiable: DoNotSchedule
                labelSelector:
                    matchLabels:
                      app: nginx
            nodeSelector:
                alibabacloud.com/nodepool-id:   #指定节点池ID。
            containers:
            - name: nginx
              image: nginx
              resources:
                limits:
                  cpu: 1
                requests:
                  cpu: 1

      执行结果

      无状态页面,单击目标Deployment,在容器组页签,可以看到同一个应用的Pod之间按照可用区和节点已均匀调度打散。阿里云容器服务ACK节点池部署集最佳实践-云淘科技

相关文档

使用Terraform为节点池指定部署集

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/170943.html

(0)
上一篇 2023年12月10日 下午1:48
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云ECS云服务器修改部署集信息-云淘科技

    创建部署集后,您可以根据需要修改部署集的名称和描述。本文介绍如何修改部署集的信息。 前提条件 请确保您已经创建了部署集。具体操作,请参见创建部署集。 操作步骤 登录ECS管理控制台。 在左侧导航栏,选择部署与弹性 > > 部署集。 在页面左侧顶部,选择目标资源所在的地域。 在部署集列表页面,找到需要修改信息的部署集。 在下列两种方式中,任选一种方…

    阿里云服务器 2023年12月9日
  • 阿里云容器服务ACK自定义节点池kubelet配置-云淘科技

    kubelet提供了一系列配置,用于调整节点行为。ACK集群支持修改节点池内节点的kubelet配置。修改完成后,节点池的节点会自动生效,节点池新增节点也会使用新的配置。本文介绍如何修改节点池内kubelet配置。 使用限制 kubelet自定义参数仅支持Kubernetes 1.20.4-aliyun.1版本及以上的ACK集群。如低于此版本,请升级ACK集…

    阿里云容器服务 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云日志服务SLS查询概述-云淘科技

    日志服务支持秒级查询十亿到千亿级别的日志数据。 基本语法 查询语句和分析语句以竖线(|)分割。查询语句的语法为日志服务专有语法,更多信息,请参见查询语法。 重要 查询语句可单独使用,分析语句必须与查询语句一起使用。即分析功能是基于查询结果或全量数据进行的。 如果您需要查询百亿级的日志数据量,您可以反复执行(10次以内)某查询语句获取最终完整的结果。更多信息,…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云容器服务ACK使用Terraform为节点池指定部署集-云淘科技

    部署集是控制ECS实例分布的策略,该策略将ECS实例分散部署在不同的物理服务器上,提升业务的高可用性和底层容灾能力。通过为节点池指定部署集,能够保证节点池弹出的ECS实例不会分布于同一物理机上,并通过亲和性配置,使您的应用对底层的节点拓扑进行感知,使其均匀地分布在不同节点上,保证应用的容灾能力和高可用性。本文介绍如何通过Terraform为节点池指定部署集。…

    阿里云容器服务 2023年12月10日
  • 阿里云容器服务ACK创建节点池-云淘科技

    在Kubernetes集群中,节点是集群中的物理或虚拟机器,用于运行容器化应用程序。节点池是一组具有相同配置和用途的节点,便于对集群中的节点进行分组管理和运维。本文介绍如何基于容器服务ACK集群创建普通或托管节点池。 前提条件 已创建Kubernetes集群。具体操作,请参见创建Kubernetes托管版集群。 Kubernetes集群连通性正常。具体操作,…

    阿里云容器服务 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。