部署在集群 Kubernetes 中的工作线程上

时间:2021-05-21 08:36:27

标签: kubernetes worker master

我是 kubernetes 的新手。为了进行测试,我在 Redhat 8 上的 VM 上安装了一个 master 和一个 worker 但我在问一个问题。当我尝试部署我的 pod 时:

apiVersion: v1
kind: Pod
metadata:
 name: simple-webapp-color
 labels:
  app: web
spec:
 containers:
  - name: web
    image: mmumshad/simple-webapp-color
    ports:
     - containerPort: 8080
    env:
     - name: APP_COLOR
       value: red

我在 master 上使用:

kubectl apply -f pod-test.yaml

然后它部署在我的主人上...这正常吗?我了解在我们的工作人员上进行主部署...:/

这是我的 kubectl get 节点:

[root@VLINRHELKUBE01 ~]# kubectl get nodes
NAME             STATUS   ROLES                  AGE   VERSION
vlinrhelkube01   Ready    control-plane,master   18h   v1.21.1
vlinrhelkube02   Ready    <none>                 18h   v1.21.1

2 个答案:

答案 0 :(得分:1)

这是一个社区 Wiki 答案,发布是为了更好的可见性,因此请随意编辑它并添加您认为重要的任何其他详细信息。

正如评论中提到的 OP,问题已经通过在主(控制平面)节点上设置适当的 taint 来解决,遵循 coderanger's 建议:< /p> <块引用>

您是否在控制平面节点上设置了污点? – coderanger 5 月 21 日在 9:14

没有并且带有 kubectl 污点节点 vlinrhelkube01 key1=value1:NoSchedule 我已经解决了我的问题!谢谢 ! – 巴蒂斯特 吉约 5 月 21 日 9:22

我们可以读到here

<块引用>

您使用 kubectl taint 向节点添加污点。 例如,

kubectl taint nodes node1 key1=value1:NoSchedule

在节点 node1 上放置污点。污点具有键 key1,值 value1 和污点效果 NoSchedule。这意味着没有 Pod 能够安排到 node1 上,除非它有一个匹配的 宽容。

答案 1 :(得分:0)

默认情况下,Kubernetes 不会将您的应用程序部署到主节点。

但这可以根据您的配置进行更改。

如果你例如使用 RKE2 作为分发工作默认安排在所有节点之间。