文档

ALIYUN::ACS::Cluster

更新时间:

ALIYUN::ACS::Cluster类型用于创建容器计算服务集群。

语法

{
  "Type": "ALIYUN::ACS::Cluster",
  "Properties": {
    "Name": String,
    "Addons": List,
    "ClusterSpec": String,
    "DeletionProtection": Boolean,
    "EndpointPublicAccess": Boolean,
    "IpStack": String,
    "KubernetesVersion": String,
    "LoggingType": String,
    "LoadBalancerSpec": String,
    "MaintenanceWindow": Map,
    "PodVSwitchIds": List,
    "ResourceGroupId": String,
    "ServiceDiscoveryTypes": List,
    "SlsProjectName": String,
    "ServiceCidr": String,
    "SnatEntry": Boolean,
    "TimeZone": String,
    "Tags": List,
    "VSwitchIds": List,
    "VpcId": String,
    "ZoneId": String
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

Name

String

集群名称。

集群名称可以使用大小写字母、中文字符、数字和破折号。

Addons

List

要安装到集群上的附加组件。

详情参考Addons属性

ClusterSpec

String

托管集群规范。

取值:

  • ack.pro.small:专业托管集群,即:“ACK Pro版本集群”。

  • ack.standard:标准托管集群。

默认值:ack.pro.small。

DeletionProtection

Boolean

指定是否为集群开启删除保护。

一旦启用删除保护,该集群将无法通过ACK控制台或调用API操作进行删除。有效值为:

  • true:为集群开启删除保护。

  • false:为集群关闭删除保护。

    默认值:false。

EndpointPublicAccess

Boolean

是否启用公网API服务器。

取值:

  • true:表示公网API服务器是开放的。

  • false:如果设置为false,将不会创建公网上的API服务器,只会创建私网上的API服务器。默认为false。

IpStack

String

集群的IP堆栈。

KubernetesVersion

String

Kubernetes集群的版本。

LoggingType

String

集群的日志记录类型。

默认情况下,不使用日志服务。

LoadBalancerSpec

String

服务器负载均衡器实例的规格。

取值:

  • slb.s1.small

  • slb.s2.small

  • slb.s2.medium

  • slb.s3.small

  • slb.s3.medium

  • slb.s3.large

MaintenanceWindow

Map

集群的维护时间窗口。

更多信息,请参考MaintenanceWindow属性

PodVSwitchIds

List

这涉及到一系列为Pod设计的vSwitch(虚拟交换机)配置规则。

当为集群选择Terway网络插件时,需要提供PodVSwitchIds参数。具体来说:

  • 对于分配给每个节点的每个vSwitch,必须在同一区域内指定至少一个Pod vSwitch。这意味着Pod vSwitch用于在节点内部连接Pod,确保网络通信,而与负责节点间或外部通信的node vSwitch相区分。

  • Pod vSwitch不能与node vSwitch相同,这一点强调了网络架构中的隔离和层次划分,有助于提升系统的安全性和管理效率。

  • 建议为Pod vSwitch的CIDR块设置的子网掩码长度不超过19。

ResourceGroupId

String

资源组ID。

ServiceDiscoveryTypes

List

集群内服务发现类型。

用于指定ASK集群中的服务发现方法。

CoreDNS:使用Kubernetes原生标准服务发现组件CoreDNS,

需要在集群中部署一套容器来处理DNS解析。

默认情况下,会使用两个ECI实例,每个实例配置为0.25核心CPU和512MiB内存。

PrivateZone:若要使用阿里云PrivateZone产品来提供服务发现功能,

则需开启PrivateZone服务。

默认值:关闭。

SlsProjectName

String

SLS项目名称。

如果LoggingType设置为SLS且SlsProjectName为空,将创建一个新的项目。

ServiceCidr

String

服务网络段不能与VPC网络段和容器网络段冲突。

当系统选择自动创建VPC时,默认使用网络段172.19.0.0/20。

SnatEntry

Boolean

是否为网络配置SNAT。

当VPC能够访问公网环境时,设置为false。

当现有VPC无法访问公网环境时:

如果设为True,将配置SNAT,此时可以访问公网环境。

如果设为false,则表示未配置SNAT,此时无法访问公网环境。

默认值为true。

TimeZone

String

集群的时区。

Tags

List

集群绑定的标签。

详情参考Tags属性

VSwitchIds

List

虚拟交换机的IDs

如果您留空此属性,系统将自动创建一个VSwitch。

注意:您必须同时指定VpcId和VSwitchIds,或者两者都留空。

VpcId

String

专有网络ID。

ZoneId

String

可用区ID。

Addons语法

"Addons": [
  {
    "Config": String,
    "Disabled": Boolean,
    "Name": String
  }
]

Addons属性

属性名称

类型

必须

允许更新

描述

约束

Name

String

附加组件的名称。

Config

String

组件配置。

当值为空时,无需进行配置。

Disabled

Boolean

指定是否禁用默认安装。

MaintenanceWindow语法

"MaintenanceWindow": {
  "MaintenanceTime": String,
  "WeeklyPeriod": String,
  "Enable": Boolean,
  "Duration": String
}

MaintenanceWindow属性

属性名称

类型

必须

允许更新

描述

约束

Duration

String

维护窗口的持续时间。

Enable

Boolean

是否启用维护窗口。

MaintenanceTime

String

维护窗口的维护时间。

WeeklyPeriod

String

每周维护窗口的周期。

取值:

  • Monday

  • Tuesday

  • Wednesday

  • Thursday

  • Friday

  • Saturday

  • Sunday

Tags语法

"Tags": [
  {
    "Value": String,
    "Key": String
  }
]

Tags属性

属性名称

类型

必须

允许更新

描述

约束

Key

String

标签键。

Value

String

标签值。

返回值

Fn::GetAtt

  • TaskId:任务ID。由系统自动分配,用户可查询任务状态。

  • ClusterId:集群实例ID。

  • APIServerSLBId:API服务器SLB的ID

  • ScalingGroupId:伸缩组ID。

  • IngressSLBId:Ingress SLB的ID。

  • ScalingRuleId:伸缩规则ID。

  • DefaultUserKubeConfig:默认的 Kubernetes 用户配置,用于设置集群凭证。

  • WorkerRamRoleName:Worker RAM角色名称

  • ScalingConfigurationId:伸缩配置ID。

  • PrivateUserKubConfig:私有用户Kubernetes配置,用于设置集群凭证。

  • Nodes:集群节点列表。

示例

  • YAML格式

    ROSTemplateFormatVersion: '2015-09-01'
    Metadata: {}
    Parameters: {}
    Resources:
      Cluster:
        Type: ALIYUN::ACS::Cluster
        Properties:
          Name: test
          EndpointPublicAccess: false
          ServiceCidr: 172.19.0.0/20
          ClusterSpec: ack.pro.small
          SnatEntry: true
    Outputs: {}
  • JSON格式

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Metadata": {
      },
      "Parameters": {
      },
      "Resources": {
        "Cluster": {
          "Type": "ALIYUN::ACS::Cluster",
          "Properties": {
            "Name": "test",
            "EndpointPublicAccess": false,
            "ServiceCidr": "172.19.0.0/20",
            "ClusterSpec": "ack.pro.small",
            "SnatEntry": true
          }
        }
      },
      "Outputs": {
      }
    }