我有一个EKS集群,并且我有多个针对在EKS主服务器上注册的工作程序节点的AWS自动扩展组。现在,我有一个场景,我想在一个特定的AWS自动扩展组上运行一个特定的服务(部署容器)。
要在节点上运行特定的部署Pod,可以使用nodeSelector和节点标签来实现,但是在AWS自动伸缩组的情况下,该自动伸缩组将按比例缩放,因此节点标签和nodeselector的概念在这里不合适。我该如何实现这种情况?
答案 0 :(得分:0)
我认为使用Kops工具将适合您的情况。 Kops提供了许多管理AWS Kubernetes集群功能的方法,基本上,它还可以用于维护AWS中的AutoScalingGroup (ASG)
。 Kops最初以与ASG等效的方式为Instance组提供服务,因此可以使用集群中的实际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的更多信息。