EKS:在特定的AWS自动扩展组上运行特定的服务(荚)

时间:2018-12-13 05:25:42

标签: amazon-web-services kubernetes autoscaling amazon-eks

我有一个EKS集群,并且我有多个针对在EKS主服务器上注册的工作程序节点的AWS自动扩展组。现在,我有一个场景,我想在一个特定的AWS自动扩展组上运行一个特定的服务(部署容器)。

要在节点上运行特定的部署Pod,可以使用nodeSelector和节点标签来实现,但是在AWS自动伸缩组的情况下,该自动伸缩组将按比例缩放,因此节点标签和nodeselector的概念在这里不合适。我该如何实现这种情况?

1 个答案:

答案 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的更多信息。