【问题标题】:EKS : Running a particular service (pods) on particular AWS autoscaling groupEKS:在特定 AWS 自动缩放组上运行特定服务(pod)
【发布时间】:2019-05-14 07:00:13
【问题描述】:
我有一个 EKS 集群,并且我有多个 AWS 自动缩放组,用于向 EKS 主节点注册的工作程序节点。现在我有一个场景,我想在特定的 AWS 自动缩放组上运行特定的服务(部署 pod)。
对于在节点上运行特定的部署 pod 可以使用 nodeSelector 和节点标签来实现,但是在 AWS 自动缩放组的情况下,自动缩放组将向上和向下缩放,因此节点标签和节点选择器的概念在这里并不合适。我怎样才能实现这种情况?
【问题讨论】:
标签:
amazon-web-services
kubernetes
autoscaling
amazon-eks
【解决方案1】:
我认为使用Kops 工具将适合您的情况。 Kops 提供了很多管理 AWS Kubernetes 集群的功能,基本上也可以用来维护 AWS 中的AutoScalingGroup (ASG)。 Kops 最初将 Instance group 作为 ASG 的等价物提供服务,因此可以处理集群中真正的 Autoscaling 组的所有操作。
您可以创建InstanceGroup并匹配nodeLabels:
apiVersion: kops/v1alpha2
kind: InstanceGroup
metadata:
creationTimestamp: 2017-11-12T07:25:23Z
labels:
kops.k8s.io/cluster: cluster.k8s.local
name: p2
spec:
image: kope.io/k8s-1.7-debian-jessie-amd64-hvm-ebs-2017-07-28
machineType: p2.xlarge
maxSize: 2
minSize: 2
nodeLabels:
type: p2-ig
role: Node
subnets:
- us-east-1d
- us-east-1e
并在之前创建的 InstanceGroup 上安排 Pod:
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
env: test
spec:
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
nodeSelector:
type: p2-ig
您可以找到有关使用 Kops 实例组 here 的更多信息。