amazon-web-services - EKS:在特定 AWS 自动缩放组上运行特定服务(pod)
问题描述
我有一个 EKS 集群,并且我有多个 AWS 自动缩放组,用于向 EKS 主节点注册的工作节点。现在我有一个场景,我想在特定的 AWS 自动缩放组上运行特定的服务(部署 pod)。
为了在节点上运行特定的部署 pod,可以使用 nodeSelector 和节点标签来实现,但在 AWS 自动缩放组的情况下,自动缩放组将向上和向下扩展,因此节点标签和节点选择器的概念在这里并不适用。我怎样才能实现这种情况?
解决方案
我认为使用Kops工具将适合您的情况。Kops 提供了很多管理 AWS Kubernetes 集群的功能,基本上也可以用于AutoScalingGroup (ASG)
AWS 中的维护。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
并在先前创建的 Pod 上安排InstanceGroup
:
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
env: test
spec:
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
nodeSelector:
type: p2-ig
您可以在此处找到有关使用 Kops 实例组的更多信息。
推荐阅读
- android - 以编程方式在android中进行通话录音
- r - 在 R 中使用 arima 循环
- asp.net - 带有域发布的 Asp.net Core Mvc Jquery 客户端信号器和 web api 核心 3.1 信号器
- javascript - 测试非无效性的惯用方法
- swift - 如何让scrollview在swift中分别滚动到它的内容高度
- reactjs - 登录的路由没有改变:firebase.auth().onAuthStateChanged
- angular - Angular 11 单元测试的 JEST 设置问题
- python - 我们可以在 django 框架上存储文件吗?
- c# - UWP获取Datagrid的ScrollViewer的垂直偏移量
- c++ - 跨不同名称空间的朋友类不起作用并且名称空间无法识别