首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nodeSelector不可靠地将吊舱放置在正确的EKS工作节点上。

nodeSelector不可靠地将吊舱放置在正确的EKS工作节点上。
EN

Stack Overflow用户
提问于 2020-03-10 21:25:42
回答 1查看 801关注 0票数 0

我正在EKS中运行一个Kubernetes集群,但出于某种原因,部署中的nodeSelector属性并不总是被遵循。

三个部署:1-卡桑德拉:

代码语言:javascript
复制
kind: StatefulSet
metadata:
  name: cassandra
  labels:
    app: cassandra
spec:
  serviceName: cassandra
  replicas: 3
...
    spec:
      terminationGracePeriodSeconds: 1800
      containers:
      - name: cassandra
        image: gcr.io/google-samples/cassandra:v13
...
      nodeSelector:
        layer: "backend"

2-卡夫卡

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    service: kafka
...
    spec:
      containers:
        image: strimzi/kafka:0.11.3-kafka-2.1.0
...
      nodeSelector:
        layer: "backend"
...

3-动物园管理员

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    service: zookeeper
...
    spec:
      containers:
        image: strimzi/kafka:0.11.3-kafka-2.1.0
...
      nodeSelector:
        layer: "backend"
...

注意-这三个都有容器规范上的nodeSelector "layer=backend“。不过,我只有两个“后端”吊舱,当我看到吊舱时:

代码语言:javascript
复制
% kubectl get all -o wide
NAME                             READY   STATUS    RESTARTS   AGE     IP             NODE                                         NOMINATED NODE   READINESS GATES
pod/cassandra-0                  1/1     Running   0          9m32s   10.1.150.39    ip-...-27.us-west-2.compute.internal    <none>           <none>
pod/cassandra-1                  1/1     Running   0          7m56s   10.1.100.7     ip-...-252.us-west-2.compute.internal   <none>           <none>
pod/cassandra-2                  1/1     Running   0          6m46s   10.1.150.254   ip-...-27.us-west-2.compute.internal    <none>           <none>
pod/kafka-56dcd8665d-hfvz4       1/1     Running   0          9m32s   10.1.100.247   ip-...-252.us-west-2.compute.internal   <none>           <none>
pod/zookeeper-7f74f96f56-xwjjt   1/1     Running   0          9m32s   10.1.100.128   ip-...-154.us-west-2.compute.internal   <none>           <none>

它们被放置在三个不同的节点上-- 27,252和154。看看每一个标签上的“图层”:

代码语言:javascript
复制
> kubectl describe node ip-...-27.us-west-2.compute.internal | grep layer
                    layer=backend
> kubectl describe node ip-...-252.us-west-2.compute.internal | grep layer
                    layer=backend
> kubectl describe node ip-...-154.us-west-2.compute.internal | grep layer
                    layer=perf

154节点的标签是"perf",而不是“后端”。因此,根据我对nodeSelector的理解,动物园管理员舱不应该放在那里。我删除了所有内容(包括节点本身),并尝试了几次--有时是kafka被放置在那里,有时是动物园管理员,但可靠的是,有些东西会被放置在不应该放置的地方。

据我所知,我确实想要的节点有足够的容量,即使它们没有,我也会期望一个错误,即不能调度吊舱,而不是忽略nodeSelector。

我遗漏了什么?nodeSelector不是100%可靠吗?还有另一种方法,我可以强迫吊舱只放在具有特定标签的节点上吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-11 12:31:18

关闭为用户错误。

一个单独的过程已经恢复了我的git更改,我在IDE中看到的部署已经过时了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60626166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档