AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
如何使用 Amazon EKS 托管节点组启动竞价型实例并对其进行故障排除?
我想为我的 Amazon Elastic Kubernetes Service(Amazon EKS)集群创建具有竞价型容量的托管节点组并解决问题。
解决方法
1. 安装 eksctl。
**重要提示:**确保先检查所有 AWS 命令行界面(AWS CLI)命令再使用,并将 example 字符串的实例替换为您的值。例如,将 example_cluster 替换为您的集群名称。
2. 运行以下命令,在现有集群中创建具有竞价型容量的托管节点组:
#eksctl create nodegroup --cluster=<example_cluster> --spot --instance-types=<Comma-separated list of instance types> --region <EKS cluster AWS region. Defaults to the value set in your AWS config (~/.aws/config)>
示例:
#eksctl create nodegroup --cluster=demo --spot --instance-types=c3.large,c4.large,c5.large --region us-east-1
注意:在创建竞价型托管节点组时,您还可以设置其他标记,例如 --name、--nodes、--nodes-min 和 --nodes-max。运行以下命令,获取所有可用标记的完整列表:
#eksctl create nodegroup --help
3. 如果您为您的集群维护 eksctl ClusterConfig 配置文件,您还可以使用该文件创建竞价型托管节点组。运行以下命令,使用带 spot-cluster.yaml 配置文件的托管节点组创建竞价型实例:
apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: <example_cluster> region: <example_region> managedNodeGroups: - name: spot instanceTypes: ["c3.large","c4.large","c5.large","c5d.large","c5n.large","c5a.large"] spot: true
4. 运行以下命令,使用配置文件创建节点组:
# eksctl create nodegroup -f spot-cluster.yaml
与 Amazon EKS 中解决与竞价型实例相关的问题
使用 eksctl 或 Amazon EKS 控制台检查托管节点组的运行状况,如下所示:
$ eksctl utils nodegroup-health --name=<example_nodegroup> --cluster=<example_cluster>
由于已用实例类型的竞价型容量不足,竞价型托管节点组的运行状况可能会因错误而下降。请参阅以下错误示例:
AsgInstanceLaunchFailures Could not launch Spot Instances. UnfulfillableCapacity - Unable to fulfill capacity due to your request configuration. Please adjust your request and try again. Launching EC2 instance failed.
**注意:**要成功采用竞价型实例,最佳实践是在竞价型托管节点组配置中实现竞价型实例多样化。竞价型实例多样化有助于从多个竞价型实例池中获取容量。获得此容量既可用于扩展规模,也可用于替换可能会收到竞价型实例终止通知的竞价型实例。
如果您的集群竞价型节点组必须配置符合 1 vCPU:4 GB RAM 比率的实例类型,则可以多样化您的竞价型实例池。借助以下策略,多样化您的实例池:
- 创建多个节点组,每个节点组的大小各不相同。例如,一个节点组大小为 4 个 vCPU 和 16 GB RAM,另一个大小为 8 个 vCPU 和 32 GB RAM。
- 在节点组内实现实例多样化。为此,您可以从满足相同 vCPU 和内存标准的不同竞价型实例池中混合选择实例类型和系列。
运行以下命令,使用 amazon-ec2-instance-selector 选择具有足够数量的 vCPU 和 RAM 的相关实例类型和系列:
curl -Lo ec2-instance-selector https://github.com/aws/amazon-ec2-instance-selector/releases/download/v2.0.3/ec2-instance-selector-`uname | tr '[:upper:]' '[:lower:]'`-amd64 && chmod +x ec2-instance-selector sudo mv ec2-instance-selector /usr/local/bin/ ec2-instance-selector --version
示例:
ec2-instance-selector --vcpus 4 --memory 16 --gpus 0 --current-generation -a x86_64 --deny-list '.*[ni].*'
前面的命令显示了类似于以下内容的列表。在您的某个节点组中使用这些实例。
- m4.xlarge
- m5.xlarge
- m5a.xlarge
- m5ad.xlarge
- m5d.xlarge
- t2.xlarge
- t3.xlarge
- t3a.xlarge
注意:无法使用 Amazon EKS API 更改现有节点组的实例类型。最佳实践是使用所需的实例类型创建新的竞价型节点组。在 eksctl create nodegroup 命令中输入以下内容。注意新的 eksctl 标记,表示节点组运行竞价型实例:--spot。
$eksctl create nodegroup --cluster=<example_cluster> --spot --instance-types m5.xlarge,m4.xlarge,m5a.xlarge,m5d.xlarge,m5n.xlarge,m5ad.xlarge --region <example_region>
- 语言
- 中文 (简体)

相关内容
AWS 官方已更新 8 个月前