全部產品
Search
文件中心

:ALIYUN::CS::ManagedEdgeKubernetesCluster

更新時間:Jun 25, 2024

ALIYUN::CS::ManagedEdgeKubernetesCluster類型用於建立Kubernetes邊緣託管版叢集執行個體。

文法

{ 
  "Type": "ALIYUN::CS::ManagedEdgeKubernetesCluster",
  "Properties": {
    "NumOfNodes": Number,
    "Profile": String,
    "VpcId": String,
    "ServiceCidr": String,
    "Name": String,
    "Tags": List,
    "ProxyMode": String,
    "DisableRollback": Boolean,
    "SnatEntry": Boolean,
    "VSwitchIds": List,
    "LoginPassword": String,
    "WorkerSystemDiskSize": Number,
    "KeyPair": String,
    "Addons": List,
    "WorkerDataDiskCategory": String,
    "EndpointPublicAccess": Boolean,
    "WorkerDataDisk": Boolean,
    "WorkerSystemDiskCategory": String,
    "WorkerDataDiskSize": Integer,
    "TimeoutMins": Number,
    "ClusterSpec": String,
    "ContainerCidr": String,
    "CloudMonitorFlags": Boolean,
    "WorkerInstanceTypes": List,
    "IsEnterpriseSecurityGroup": Boolean,
    "AutoRenewPeriod": Number,
    "ChargeType": String,
    "AutoRenew": Boolean,
    "Period": Number,
    "NodeCidrMask": String,
    "PeriodUnit": String,
    "DeletionProtection": Boolean,
    "ZoneIds": List,
    "ResourceGroupId": String,
    "WorkerDataDisks": List
  }
}

屬性

屬性名稱

類型

必須

允許更新

描述

約束

Name

String

叢集名稱。

以英文字母或數字開頭,可包含英文字母、漢字、數字和短劃線(-)。

NumOfNodes

Number

Worker節點數。

取值範圍:0~300。

Addons

List

叢集安裝的組件列表。

取值:

  • 網路組件

    支援Flannel和Terway兩種網路類型,建立叢集時需二選一:

    • Flannel網路:[{"Name":"flannel","Config":""}]

    • Terway網路:[{"Name": "terway-eniip","Config": ""}]

  • 儲存群組件

    支援csi和flexvolume兩種類型:

    • csi:[{"Name":"csi-plugin","Config": ""},{"Name": "csi-provisioner","Config": ""}]

    • flexvolume:[{"Name": "flexvolume","Config": ""}]

  • 日誌組件(可選)

    說明

    如果不開啟Log Service,將無法使用叢集審計功能。

    • 使用已有SLS Project:[{"Name": "logtail-ds","Config": "{\"IngressDashboardEnabled\":\"true\",\"sls_project_name\":\"your_sls_project_name\"}"}]

    • 建立新的SLS Project:[{"Name": "logtail-ds","Config": "{\"IngressDashboardEnabled\":\"true\"}"}]

  • Ingress組件(可選)

    Kubernetes專有版叢集預設安裝Ingress組件nginx-ingress-controller。

    • 安裝Ingress並且開啟公網:[{"Name":"nginx-ingress-controller","Config":"{\"IngressSlbNetworkType\":\"internet\"}"}]

    • 不安裝Ingress:[{"Name": "nginx-ingress-controller","Config": "","Disabled": true}]

  • 事件中心(可選,預設開啟)

    事件中心提供對Kubernetes事件的儲存、查詢、警示等能力。Kubernetes事件中心關聯的Logstore在90天內免費。更多資訊,請參見建立並使用Kubernetes事件中心

    開啟事件中心:[{"Name":"ack-node-problem-detector","Config":"{\"sls_project_name\":\"your_sls_project_name\"}"}]

更多資訊,請參見Addons屬性

AutoRenew

Boolean

是否自動續約。

當ChargeType取值為PrePaid時該參數有效。取值:

  • true(預設值):自動續期。

  • false:不自動續期。

AutoRenewPeriod

Number

自動續借周期。

當ChargeType取值為PrePaid,且AutoRenew取值為true時,該參數有效。取值:

  • 當PeriodUnit取值為Week時:1、2、3。

  • 當PeriodUnit取值為Month時:1、2、3、6、12。

預設值:1。

ChargeType

String

付費類型。

取值:

  • PrePaid:預付費。

  • PostPaid(預設值):隨用隨付。

CloudMonitorFlags

Boolean

是否安裝CloudMonitor外掛程式。

取值:

  • true:安裝。

  • false(預設值):不安裝。

ClusterSpec

String

託管版叢集類型。

取值:

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

  • ack.standard(預設值):標準託管叢集,即ACK@Edge標準版叢集。

ContainerCidr

String

Pod網路位址區段。

當建立Flannel網路類型的叢集時,ContainerCidr為必填。ContainerCidr必須是有效私人網段,即以下網段及其子網:

  • 10.0.0.0/8

  • 172.16-31.0.0/12-16

  • 192.168.0.0/16

不能與專用網路及專用網路內已有Kubernetes叢集使用的網段重複,且建立成功後不能修改。

關於叢集網路規劃,請參見Kubernetes叢集網路規劃

DeletionProtection

Boolean

是否啟用刪除保護功能。

啟用刪除保護後,叢集不能被直接刪除。取值:

  • true:啟用。

  • false(預設值):禁用。

DisableRollback

Boolean

失敗時是否復原。

取值:

  • true(預設值):失敗時不復原。

  • false:失敗時復原。

    說明

    如果選擇失敗時復原,則會釋放建立過程中所生產的資源,因此不推薦使用false。

EndpointPublicAccess

Boolean

是否開啟公網API Server。

取值:

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

  • false:僅開啟私網API Server。

IsEnterpriseSecurityGroup

Boolean

是否建立進階安全性群組。

當SecurityGroupId為空白時,該參數生效。取值:

  • true:建立。安裝了Terway的叢集,必須建立進階安全性群組。

  • false(預設值):不建立。

KeyPair

String

金鑰組名稱。

LoginPassword和KeyPair二者只能指定一個參數。

LoginPassword

String

登入密碼。

長度為8~30個字元。必須同時包含大寫英文字母、小寫英文字母,數字和特殊字元中至少三項,支援的特殊字元為:( ) ` ~ ! @ # $ % ^ & * - + = | { } [ ] : ; ‘ < > , . ? /

LoginPassword和KeyPair二者只能指定一個參數。

NodeCidrMask

String

可分配給節點的最大CIDR地址塊數量。

數量由指定的pod CIDR決定。該參數僅在叢集使用Flannel外掛程式時生效。

預設值:25。

Period

Number

購買資源的時間長度。

當ChargeType為PrePaid時,該參數生效且為必選參數。取值:

  • 當PeriodUnit為Week時:1~4。

  • 當PeriodUnit為Month時:1~9、12、24、36、48、60。

預設值:1。

PeriodUnit

String

購買資源的時間長度周期。

當ChargeType為PrePaid時該參數有效。取值:

  • Week:周。

  • Month(預設值):月。

Profile

String

邊緣叢集標識。

預設值:Edge。

ProxyMode

String

kube-proxy代理模式。

取值:

  • iptables(預設值)

  • ipvs

ResourceGroupId

String

叢集所屬的資源群組ID。

ServiceCidr

String

服務網段。

不能與專用網路網段以及容器網段衝突。當選擇系統自動建立專用網路時,預設使用172.19.0.0/20網段。

SnatEntry

Boolean

是否為網路設定SNAT。

取值:

  • true:配置。

  • false(預設值):不配置。

說明

如果使用自動建立的專用網路,則必須設定為true。如果使用已有非系統自動建立的專用網路,則需要根據是否具備出網能力來設定。

Tags

List

標籤。

最多可以設定20個標籤。

更多資訊,請參見Tags屬性

TimeoutMins

Number

叢集資源棧建立逾時時間。

預設值:60。

單位:分鐘。

VpcId

String

專用網路ID。

如果不設定,系統會自動建立專用網路,系統建立的專用網路網段為192.168.0.0/16。

VpcId和VSwitchIds只能同時為空白或者同時都設定對應的值。

VSwitchIds

List

交換器ID列表。

列表可以包含1~3個交換器ID。

VpcId和VSwitchIds只能同時為空白或者同時都設定對應的值。

WorkerDataDisk

Boolean

Worker節點是否掛載資料盤。

取值:

  • true:掛載。

  • false(預設值):不掛載。

WorkerDataDiskCategory

String

資料盤類型。

取值:

  • cloud_efficiency(預設值):高效雲端硬碟。

  • cloud_ssd:SSD雲端硬碟。

  • cloud_essd:ESSD雲端硬碟。

WorkerDataDisks

List

Worker資料盤類型、大小等配置。

只有在掛載Worker節點資料盤時有效。更多資訊,請參見WorkerDataDisks屬性

WorkerDataDiskSize

Integer

Worker節點資料盤大小。

WorkerInstanceTypes

List

Worker節點執行個體規格。

WorkerSystemDiskCategory

String

Worker節點系統硬碟類型。

取值:

  • cloud_efficiency(預設值):高效雲端硬碟。

  • cloud_ssd:SSD雲端硬碟。

  • cloud_essd:ESSD雲端硬碟。

WorkerSystemDiskSize

Number

Worker節點系統硬碟大小。

預設值:120。

單位:GiB。

ZoneIds

List

Worker節點所屬的交換器可用性區域。

Tags文法

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

Tags屬性

屬性名稱

類型

必須

允許更新

描述

約束

Key

String

標籤鍵。

長度為1~64個字元,不能以aliyunacs:https://http://開頭。

Value

String

標籤值。

長度為0~128個字元,不能以aliyunacs:https://http://開頭。

WorkerDataDisks文法

"WorkerDataDisks": [
  {
    "Category": String,
    "Size": Number
  }
]

WorkerDataDisks屬性

屬性名稱

類型

必須

允許更新

描述

約束

Category

String

Worker節點資料盤類型。

取值:

  • cloud:普通雲端硬碟。

  • cloud_ssd:SSD雲端硬碟。

  • cloud_efficiency(預設值):高效雲端硬碟。

  • cloud_essd:ESSD雲端硬碟。

Size

Number

資料盤大小。

取值範圍:40~32,768。單位:GiB。

Addons文法

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

Addons屬性

屬性名稱

類型

必須

允許更新

描述

約束

Name

String

組件名稱。

Config

String

組件配置。

Disabled

Boolean

是否禁止預設安裝組件。

取值:

  • true:禁止預設安裝組件。

  • false(預設值):允許預設安裝組件。

傳回值

Fn::GetAtt

  • ClusterId:叢集ID。

  • TaskId:任務ID。系統自動分配,用於查詢任務狀態。

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

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

  • ScalingRuleId:伸縮規則ID。

  • ScalingGroupId:伸縮組ID。

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

  • ScalingConfigurationId:伸縮配置ID。

  • Nodes:叢集節點列表。

  • APIServerSLBId:API伺服器負載平衡ID。

  • IngressSLBId:Ingress負載平衡ID。

樣本

YAML格式

ROSTemplateFormatVersion: '2015-09-01'
Description: Test ManagedEdgeKubernetesCluster
Parameters:
  VSwitchZoneId:
    Type: String
    AssociationProperty: ALIYUN::ECS::Instance::ZoneId
    Description: Availability ID for existing switches
    Label: VSwitch Zone ID
  VpcId:
    Type: String
    Default: Null
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
    Description: Please search the ID starts with (vpc-xxx)from console-Virtual Private Cloud
    Label: Existing VPC ID
  VSwitchId:
    Type: String
    Default: Null
    AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
    Description: Please search the business VSwitch ID starts with(vsw-xxx)from console-Virtual Private Cloud-VSwitches
    Label: VSwitch ID
    AssociationPropertyMetadata:
      ZoneId: ${VSwitchZoneId}
      VpcId: ${VpcId}
  ClusterName:
    Type: String
    Default: mytest
  Password:
    Type: String
    Description: Server login password, Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^*_-+=|{}[]:;,.? Special symbol in).
    MinLength: 8
    Label: Instance Password
    NoEcho: true
    MaxLength: 30
    ConstraintDescription: Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^*_-+=|{}[]:;',.?/ Special symbol in).
  NumOfNodes:
    Type: Number
    Default: 1
    MinValue: 0
    MaxValue: 300
  WorkerInstanceType:
    AssociationProperty: ALIYUN::ECS::Instance::InstanceType
    AssociationPropertyMetadata:
      ZoneId: ${VSwitchZoneId}
    Type: String
    Label: Instance Type
  WorkerSystemDiskCategory:
    AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
    AssociationPropertyMetadata:
      ZoneId: ${VSwitchZoneId}
      InstanceType: ${WorkerInstanceType}
    Type: String
    Label: System Disk Type
Resources:
  Cluster:
    Type: ALIYUN::CS::ManagedEdgeKubernetesCluster
    Properties:
      NumOfNodes:
        Ref: NumOfNodes
      Name:
        Ref: ClusterName
      LoginPassword:
        Ref: Password
      VpcId:
        Ref: VpcId
      VSwitchIds:
        - Ref: VSwitchId
      WorkerInstanceTypes:
        - Ref: WorkerInstanceType
      WorkerSystemDiskCategory:
        Ref: WorkerSystemDiskCategory
      ServiceCidr: 172.19.0.0/20
Outputs:
  ClusterId:
    Value:
      Fn::GetAtt:
        - Cluster
        - ClusterId
  TaskId:
    Value:
      Fn::GetAtt:
        - Cluster
        - TaskId

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": "Test ManagedEdgeKubernetesCluster",
  "Parameters": {
    "VSwitchZoneId": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::Instance::ZoneId",
      "Description": "Availability ID for existing switches",
      "Label": "VSwitch Zone ID"
    },
    "VpcId": {
      "Type": "String",
      "Default": null,
      "AssociationProperty": "ALIYUN::ECS::VPC::VPCId",
      "Description": "Please search the ID starts with (vpc-xxx)from console-Virtual Private Cloud",
      "Label": "Existing VPC ID"
    },
    "VSwitchId": {
      "Type": "String",
      "Default": null,
      "AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
      "Description": "Please search the business VSwitch ID starts with(vsw-xxx)from console-Virtual Private Cloud-VSwitches",
      "Label": "VSwitch ID",
      "AssociationPropertyMetadata": {
        "ZoneId": "${VSwitchZoneId}",
        "VpcId": "${VpcId}"
      }
    },
    "ClusterName": {
      "Type": "String",
      "Default": "mytest"
    },
    "Password": {
      "Type": "String",
      "Description": "Server login password, Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^*_-+=|{}[]:;,.? Special symbol in).",
      "MinLength": 8,
      "Label": "Instance Password",
      "NoEcho": true,
      "MaxLength": 30,
      "ConstraintDescription": "Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^*_-+=|{}[]:;',.?/ Special symbol in)."
    },
    "NumOfNodes": {
      "Type": "Number",
      "Default": 1,
      "MinValue": 0,
      "MaxValue": 300
    },
    "WorkerInstanceType": {
      "AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
      "AssociationPropertyMetadata": {
        "ZoneId": "${VSwitchZoneId}"
      },
      "Type": "String",
      "Label": "Instance Type"
    },
    "WorkerSystemDiskCategory": {
      "AssociationProperty": "ALIYUN::ECS::Disk::SystemDiskCategory",
      "AssociationPropertyMetadata": {
        "ZoneId": "${VSwitchZoneId}",
        "InstanceType": "${WorkerInstanceType}"
      },
      "Type": "String",
      "Label": "System Disk Type"
    }
  },
  "Resources": {
    "Cluster": {
      "Type": "ALIYUN::CS::ManagedEdgeKubernetesCluster",
      "Properties": {
        "NumOfNodes": {
          "Ref": "NumOfNodes"
        },
        "Name": {
          "Ref": "ClusterName"
        },
        "LoginPassword": {
          "Ref": "Password"
        },
        "VpcId": {
          "Ref": "VpcId"
        },
        "VSwitchIds": [
          {
            "Ref": "VSwitchId"
          }
        ],
        "WorkerInstanceTypes": [
          {
            "Ref": "WorkerInstanceType"
          }
        ],
        "WorkerSystemDiskCategory": {
          "Ref": "WorkerSystemDiskCategory"
        },
        "ServiceCidr": "172.19.0.0/20"
      }
    }
  },
  "Outputs": {
    "ClusterId": {
      "Value": {
        "Fn::GetAtt": [
          "Cluster",
          "ClusterId"
        ]
      }
    },
    "TaskId": {
      "Value": {
        "Fn::GetAtt": [
          "Cluster",
          "TaskId"
        ]
      }
    }
  }
}