k3s pod 未部署在正确的节点上

k3s pod 未部署在正确的节点上

我有一个包含多个节点(假设为 3 个节点)的 k3s 集群。在每个节点上,我有几个 pod 需要部署。这是一个“静态部署”,这意味着我想将每个 pod 部署到特定节点上。我不想让 k3s 自动执行此操作。

例如:

Node_1:
    pod_a
    pod_b
    pod_c
Node_2:
    pod_d
    pod_e
    pod_f
Node_3:
    pod_h
    pod_i
    pod_g

为了实现这一点,我使用了标签。我用特定的标签标记每个节点,然后在部署文件中指定标签yaml

例如这样的:

apiVersion: v1
kind: Node
metadata:
  name: node3
  labels:
    db: 'true'

以及yaml部署文件,例如数据库:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: db
  namespace: default
spec:
    spec:
      nodeSelector:
        db: 'true'

因此,通常情况下,poddb应该部署在 上Node3。但有时情况并非如此。当我重新部署时,pod 会重新部署到另一个节点上,我不明白为什么,也不知道如何将其移回正确的节点。

这非常烦人,因为对于某些关键的 pod,我在主机上安装了数据,如果 pod 没有正确部署,我的应用程序就会失败。

如何确保我的 pod总是部署正确吗?为什么有时部署不正确?谢谢

相关内容