EKS:在特定 AWS 自动缩放组上运行特定服务(pod)
Posted
技术标签:
【中文标题】EKS:在特定 AWS 自动缩放组上运行特定服务(pod)【英文标题】:EKS : Running a particular service (pods) on particular AWS autoscaling group 【发布时间】:2019-05-14 07:00:13 【问题描述】:我有一个 EKS 集群,并且我有多个 AWS 自动缩放组,用于向 EKS 主节点注册的工作程序节点。现在我有一个场景,我想在特定的 AWS 自动缩放组上运行特定的服务(部署 pod)。
对于在节点上运行特定的部署 pod 可以使用 nodeSelector 和节点标签来实现,但是在 AWS 自动缩放组的情况下,自动缩放组将向上和向下缩放,因此节点标签和节点选择器的概念在这里并不合适。我怎样才能实现这种情况?
【问题讨论】:
请检查 statefullset kubernetes.io/docs/concepts/workloads/controllers/statefulset 这可以帮助你 【参考方案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 的更多信息。
【讨论】:
以上是关于EKS:在特定 AWS 自动缩放组上运行特定服务(pod)的主要内容,如果未能解决你的问题,请参考以下文章
Kubernetes AWS Cloudwatch 适配器未获取 EKS HPA 自动缩放的自定义指标值