安装Kubernetes嵌入式pod,仅运行特定节点

moiiocjp  于 2023-01-25  发布在  Kubernetes
关注(0)|答案(2)|浏览(106)

我有一个Kubernetes集群,运行3个节点,但我只想在两个节点上运行我的应用,所以我想问,我可以只在一个节点上运行Kubernetes集群中的其他pod(Kubernetes扩展)吗?
1.节点=仅Kubernetes pod
1.节点=我的应用程序
1.节点=我的应用程序

xdyibdwo

xdyibdwo1#

可以,您只能在两个节点上运行应用程序POD,而在一个节点上运行其他扩展Kubernetes POD。
当您提到Kubernetes扩展POD时,请考虑一些外部第三方POD(如Nginx入口控制器)和其他非默认系统POD(如kube-proxykubelet等),这些POD应要求运行每个可用节点。

    • 备选案文1**

您可以使用Node affinity在特定节点上调度POD。

apiVersion: v1
kind: Pod
metadata:
  name: with-node-affinity
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: topology.kubernetes.io/hostname
            operator: In
            values:
            - node-1
            - node-2
  containers:
  - name: with-node-affinity
    image: nginx
    • 备选案文2**

您可以使用taint & toleration在特定节点上调度POD。

cnwbcb6i

cnwbcb6i2#

某些kube-system pod(如kube-proxy、CNI pod(cilium/flannel))和其他daemonSet必须在每个工作节点上运行,您不能停止它们。如果不是这样,可以使用以下命令将节点更改为noSchedule。
kubectl损坏节点类型=<a_node_label>:NoSchedule
您可以进一步了解https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/的增强功能

相关问题