全部產品
Search
文件中心

:ALIYUN::CS::ASKCluster

更新時間:Oct 11, 2024

ALIYUN::CS::ASKCluster類型用於建立ACK Serverless叢集

文法

{
  "Type": "ALIYUN::CS::ASKCluster",
  "Properties": {
    "KubernetesVersion": String,
    "EndpointPublicAccess": Boolean,
    "ZoneId": String,
    "ResourceGroupId": String,
    "VSwitchIds": List,
    "SecurityGroupId": String,
    "Addons": List,
    "DeletionProtection": Boolean,
    "ClusterSpec": String,
    "Name": String,
    "TimeZone": String,
    "ServiceDiscoveryTypes": List,
    "VpcId": String,
    "ServiceCidr": String,
    "SnatEntry": Boolean,
    "Tags": List,
    "PrivateZone": Boolean,
    "DeleteOptions": List
  }
}

屬性

屬性名稱

類型

必須

允許更新

描述

約束

KubernetesVersion

String

叢集版本。

EndpointPublicAccess

Boolean

是否開啟公網API Server訪問。

取值:

  • true(預設值):開啟公網API Server訪問。

  • false:不開啟公網訪問。選擇不開啟時,則無法通過外網訪問叢集API Server。

ZoneId

String

叢集所屬地區的可用性區域ID。

當建立ACK Serverless叢集時,如果未指定VpcIdVSwitchIds,必須為叢集指定ZoneId,用於自動在該可用性區域建立VPC網路資源。

ResourceGroupId

String

叢集所屬資源群組ID。

VSwitchIds

List

叢集節點所在的虛擬交換器ID列表。

最多支援3個虛擬交換器。

說明

當建立零節點的託管版叢集時,該欄位必填。

SecurityGroupId

String

叢集ECS執行個體所屬的安全性群組ID。 

Addons

List

叢集組件列表。

DeletionProtection

Boolean

叢集是否啟用刪除保護,防止通過控制台或API誤刪除叢集。

取值:

  • true:啟用叢集刪除保護,將不能通過控制台或API刪除叢集。

  • false(預設值):不啟用叢集刪除保護,則能通過控制台或API刪除叢集。

ClusterSpec

String

託管版叢集類型,面向託管叢集。

取值:

  • ack.pro.small:專業託管叢集,即ACK Pro版叢集。

  • ack.standard(預設值):標準託管叢集。

說明

取值可以為空白,為空白時則建立標準託管叢集。

更多資訊,請參見ACK Pro版叢集概述

Name

String

叢集名稱。

命名規則:由數字、漢字、英文字元或短劃線(-)組成,長度範圍1~63個字元,且不能以短劃線(-)開頭。

TimeZone

String

叢集使用的時區。

ServiceDiscoveryTypes

List

叢集內服務發現類型,用於在ACK Serverless叢集中指定服務發現方式。

取值:

  • CoreDNS:使用Kubernetes原生標準服務發現組件CoreDNS,需要在叢集部署一組容器用於DNS解析。預設採用兩個0.25 Core 512 MiB規格的ECI執行個體。

  • PrivateZone:使用阿里雲PrivateZone產品提供服務發現能力,需要開啟PrivateZone服務,預設不開啟。

VpcId

String

叢集使用的專用網路。

ServiceCidr

String

Service網路位址區段。

可選範圍:10.0.0.0/16-24172.16-31.0.0/16-24192.168.0.0/16-24 不能與VPC網段10.1.0.0/21及VPC內已有Kubernetes叢集使用的網段重複,建立成功後不能修改。

說明

預設使用172.19.0.0/20網段。

SnatEntry

Boolean

是否為專用網路配置SNAT規則。

取值:

  • true(預設值):將為您建立NAT Gateway並自動設定SNAT規則,若您叢集內的節點、應用等需要訪問公網需要設定為true。

  • false:不為您建立NAT Gateway及SNAT規則。這種模式下,叢集內節點及應用將不能訪問公網。

說明

如果建立叢集時未開啟,後續業務需要訪問公網,可手動開啟。更多資訊,請參見為已有叢集開啟公網訪問能力

Tags

List

節點標籤。

標籤定義規則:

  • 標籤由區分大小寫索引值對組成,您最多可以設定20個標籤。

  • 標籤鍵不可以重複,最長為64個字元。標籤值可以為空白,最長為128個字元。標籤鍵和標籤值都不能以aliyunacs:https://http://開頭。更多資訊,請參見Labels and Selectors

PrivateZone

Boolean

是否開啟PrivateZone服務。

取值:

  • true:開啟PrivateZone服務。

  • false:不開啟PrivateZone服務。

Addons文法

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

Addons屬性

屬性名稱

類型

必須

允許更新

描述

約束

Config

String

組件配置。

Disabled

Boolean

是否禁止預設安裝。

叢集建立時除了安裝必要元件外,還會額外安裝一些日誌組件等,您可以禁止這些預設行為,後續通過安裝組件的API進行安裝或通過控制台安裝。

取值:

  • true:禁止預設安裝。

  • false:允許預設安裝。

Name

String

組件名稱。

Tags文法

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

Tags屬性

屬性名稱

類型

必須

允許更新

描述

約束

Value

String

標籤key值。

Key

String

標籤value值。

DeleteOptions文法

"DeleteOptions": [
  {
    "DeleteMode": String,
    "ResourceType": String
  }
]

DeleteOptions屬性

屬性名稱

類型

必須

允許更新

描述

約束

DeleteMode

String

該類型資源的刪除策略。

取值:

  • delete:刪除該類資源

  • retain:保留該類資源

ResourceType

String

資源類型。

取值:

  • SLB:通過 service 建立的 SLB 資源,預設刪除,可選擇保留

  • ALB:ALB Ingress Controller 建立的 ALB 資源,預設保留,可選擇刪除

  • SLS_Data:叢集日誌功能所使用的Log Service Project,預設保留,可選擇刪除

  • SLS_ControlPlane:託管版叢集控制平面日誌所使用的Log Service Project,預設保留,可選擇刪除

  • PrivateZone:ACK Serverless 叢集建立的 PrivateZone 資源,預設保留,可選擇刪除

傳回值

Fn::GetAtt

  • TaskId:任務ID。

  • ClusterId:叢集ID。

  • APIServerSLBId:API伺服器SLB的ID

  • ScalingGroupId:伸縮組ID

  • ScalingRuleId:縮放規則ID。

  • DefaultUserKubeConfig:使用者配置叢集憑據的預設Kubernetes配置。

  • WorkerRamRoleName:Worker節點RAM角色名稱。

  • ScalingConfigurationId:伸縮配置ID。

  • PrivateUserKubConfig:使用者配置叢集憑據的專有Kubernetes配置。

  • Nodes:叢集節點列表。

  • IngressSLBId:Ingress負載平衡ID。

樣本

YAML格式

ROSTemplateFormatVersion: '2015-09-01'
Description: Test Create ASKCluster
Parameters: {}
Resources:
  VSwitch:
    Type: ALIYUN::ECS::VSwitch
    Properties:
      VSwitchName: mytest
      VpcId:
        Ref: Vpc
      CidrBlock: 192.168.1.0/24
      ZoneId:
        Fn::Select:
          - '0'
          - Fn::GetAZs:
              Ref: ALIYUN::Region
  Vpc:
    Type: ALIYUN::ECS::VPC
    Properties:
      VpcName: mytest
      CidrBlock: 192.168.0.0/16
  ASKCluster:
    Type: ALIYUN::CS::ASKCluster
    Properties:
      VpcId:
        Ref: Vpc
      ClusterSpec: ack.pro.small
      Name: mytest
      VSwitchIds:
        - Ref: VSwitch
Outputs:
  ClusterId:
    Value:
      Fn::GetAtt:
        - ASKCluster
        - ClusterId
  TaskId:
    Value:
      Fn::GetAtt:
        - ASKCluster
        - TaskId

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": "Test Create ASKCluster",
  "Parameters": {},
  "Resources": {
    "VSwitch": {
      "Type": "ALIYUN::ECS::VSwitch",
      "Properties": {
        "VSwitchName": "mytest",
        "VpcId": {
          "Ref": "Vpc"
        },
        "CidrBlock": "192.168.1.0/24",
        "ZoneId": {
          "Fn::Select": [
            "0",
            {
              "Fn::GetAZs": {
                "Ref": "ALIYUN::Region"
              }
            }
          ]
        }
      }
    },
    "Vpc": {
      "Type": "ALIYUN::ECS::VPC",
      "Properties": {
        "VpcName": "mytest",
        "CidrBlock": "192.168.0.0/16"
      }
    },
    "ASKCluster": {
      "Type": "ALIYUN::CS::ASKCluster",
      "Properties": {
        "VpcId": {
          "Ref": "Vpc"
        },
        "ClusterSpec": "ack.pro.small",
        "Name": "mytest",
        "VSwitchIds": [
          {
            "Ref": "VSwitch"
          }
        ]
      }
    }
  },
  "Outputs": {
    "ClusterId": {
      "Value": {
        "Fn::GetAtt": [
          "ASKCluster",
          "ClusterId"
        ]
      }
    },
    "TaskId": {
      "Value": {
        "Fn::GetAtt": [
          "ASKCluster",
          "TaskId"
        ]
      }
    }
  }
}