AWS::EKS::Cluster - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::EKS::Cluster

创建 Amazon EKS 控制层面。

Amazon EKS 控制层面由运行 Kubernetes 软件(如 etcd 和 API 服务器)的控制层面实例组成。控制层面在由 AWS 管理的账户中运行,并且 Kubernetes API 将通过 Amazon EKS API 服务器终端节点公开。每个 Amazon EKS 集群控制层面都是单租户而且是唯一的,它们在其自己的一组 Amazon EC2 实例上运行。

集群控制层面跨多个可用区进行配置,其前面配置了一个 Elastic Load Balancing 网络负载均衡器。Amazon EKS 还在 VPC 子网中配置了弹性网络接口,以便在控制层面实例与工作线程节点之间建立连接(例如,为了支持 kubectl execlogsproxy 数据流)。

Amazon EKS 工作线程节点在 AWS 账户中运行并通过 Kubernetes API 服务器终端节点和为集群创建的证书文件连接到集群的控制层面。

集群创建通常需要 10 到 15 分钟。在创建 Amazon EKS 集群之后,必须配置 Kubernetes 工具以便与 API 服务器进行通信,并在集群中启动工作线程节点。有关更多信息,请参阅 Amazon EKS 用户指南 中的管理集群身份验证启动 Amazon EKS 工作线程节点

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::EKS::Cluster", "Properties" : { "EncryptionConfig" : [ EncryptionConfig, ... ], "Name" : String, "ResourcesVpcConfig" : ResourcesVpcConfig, "RoleArn" : String, "Version" : String } }

YAML

Type: AWS::EKS::Cluster Properties: EncryptionConfig: - EncryptionConfig Name: String ResourcesVpcConfig: ResourcesVpcConfig RoleArn: String Version: String

属性

EncryptionConfig

集群的加密配置。

必需:否

类型EncryptionConfig 列表

最高1

Update requires: Replacement

Name

要为集群提供的唯一名称。

必需:否

类型:字符串

最低1

最高100

模式^[0-9A-Za-z][A-Za-z0-9\-_]*

Update requires: Replacement

ResourcesVpcConfig

集群控制层面所使用的 VPC 配置。Amazon EKS VPC 资源对正常用于 Kubernetes 有特定的要求。有关更多信息,请参阅 Amazon EKS 用户指南 中的集群 VPC 注意事项集群安全组注意事项。您必须指定至少两个子网。您最多可以指定 5 个安全组,但我们建议您对集群控制层面使用专用安全组。

必需:是

类型ResourcesVpcConfig

Update requires: Replacement

RoleArn

IAM 角色的 Amazon 资源名称 (ARN),该角色为 Kubernetes 控制层面提供代表您调用 AWS API 操作的权限。有关更多信息,请参阅 Amazon EKS 用户指南 中的 Amazon EKS Service IAM 角色

必需:是

类型:字符串

Update requires: Replacement

Version

集群所需的 Kubernetes 版本。如果您未在此处指定值,则使用 Amazon EKS 中提供的最新版本。

必需:否

类型:字符串

Update requires: No interruption

返回值

Ref

在将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回 资源名称。例如:

{ "Ref": "myCluster" }

对于 Amazon EKS 集群 myClusterRef 返回该集群的名称。

For more information about using the Ref function, see Ref.

Fn::GetAtt

Fn::GetAtt 内部函数返回此类型的一个指定属性的值。以下为可用属性和示例返回值。

有关使用 Fn::GetAtt 内部函数的更多信息,请参阅 Fn::GetAtt

Arn

集群的 ARN,例如 arn:aws:eks:us-west-2:666666666666:cluster/prod

CertificateAuthorityData

集群的 certificate-authority-data

ClusterSecurityGroupId

Amazon EKS 为集群创建的集群安全组。托管节点组将该安全组用于控制层面到数据层面的通信。

仅支持托管节点组的 Amazon EKS 集群返回该参数。有关更多信息,请参阅 Amazon EKS 用户指南 中的托管节点组

EncryptionConfigKeyArn

Amazon 资源名称 (ARN) 或客户主密钥 (CMK) 的别名。

Endpoint

Kubernetes API 服务器的终端节点,例如 https://5E1D0CEXAMPLEA591B746AFC5AB30262.yl4.us-west-2.eks.amazonaws.com

示例

创建集群

以下示例创建一个名为 prod 的 Amazon EKS 集群。

JSON

{ "Resources": { "myCluster": { "Type": "AWS::EKS::Cluster", "Properties": { "Name": "prod", "Version": "1.14", "RoleArn": "arn:aws:iam::012345678910:role/eks-service-role-AWSServiceRoleForAmazonEKS-EXAMPLEBQ4PI", "ResourcesVpcConfig": { "SecurityGroupIds": [ "sg-6979fe18" ], "SubnetIds": [ "subnet-6782e71e", "subnet-e7e761ac" ] } } } } }

YAML

Resources: myCluster: Type: 'AWS::EKS::Cluster' Properties: Name: prod Version: '1.14' RoleArn: >- arn:aws:iam::012345678910:role/eks-service-role-AWSServiceRoleForAmazonEKS-EXAMPLEBQ4PI ResourcesVpcConfig: SecurityGroupIds: - sg-6979fe18 SubnetIds: - subnet-6782e71e - subnet-e7e761ac

另请参阅