k8s特殊节点,特殊应用,节点只部署该应用,应用只部署在该节点。

在 Kubernetes 集群中,你可以通过使用 nodeSelectornodeAffinitytaintstolerations 来将一个 deployment 部署到指定的节点上,并确保该节点上只运行此 deployment。以下是具体步骤:

  1. 给目标节点打标签

    选择一个节点,并给它打上一个唯一的标签。比如你可以将节点打上 role=dev-node 标签:

    bash 复制代码
    kubectl label nodes <your-node-name> role=dev-node
  2. 使用 nodeSelector 绑定 Deployment 到特定节点

    在你的 Deployment 配置文件中,使用 nodeSelector 将该 Deployment 绑定到带有特定标签的节点上。以下是一个示例配置:

    yaml 复制代码
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: dev-deployment
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: dev-app
      template:
        metadata:
          labels:
            app: dev-app
        spec:
          containers:
          - name: dev-container
            image: your-image:latest
          nodeSelector:
            role: dev-node
  3. 给节点添加 taint

    为确保该节点只运行此 deployment,你可以给该节点添加一个 taint,使得其他 deployment 无法调度到该节点。比如:

    bash 复制代码
    kubectl taint nodes <your-node-name> dedicated=dev:NoSchedule
  4. 在 Deployment 中添加 tolerations

    在 Deployment 配置文件中添加 tolerations,允许其调度到有 taint 的节点上:

    yaml 复制代码
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: dev-deployment
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: dev-app
      template:
        metadata:
          labels:
            app: dev-app
        spec:
          containers:
          - name: dev-container
            image: your-image:latest
          nodeSelector:
            role: dev-node
          tolerations:
          - key: "dedicated"
            operator: "Equal"
            value: "dev"
            effect: "NoSchedule"

通过以上步骤,你可以确保你的 dev-deployment 只部署在指定节点上,并且该节点上只能部署这个 dev-deployment

相关推荐
Plastic garden3 小时前
Docker(1)
运维·docker·容器
gs801404 小时前
网络隐形杀手:从 Could not connect to SMTP host 报错深度剖析 Docker MTU 黑洞理论与实战
网络·docker·容器
程序猿阿伟5 小时前
《一套完整方法论:搞定图形应用的Docker镜像优化》
数据库·docker·容器
java_logo5 小时前
2026 Docker 国内镜像加速配置教程
运维·docker·容器·docker镜像·docker镜像源·docker镜像加速·docker镜像国内库
IT策士6 小时前
Docker从0到1再到 Kubernetes 实战:第15篇Compose 中的服务依赖、健康检查与启动顺序
docker·容器·kubernetes
Waay6 小时前
K8s Deployment 滚动更新与回滚深度详解(含踩坑实录+生产选型原理)
云原生·容器·kubernetes
顾默@6 小时前
双系统Ubuntu18.04升级22.04,安装docker进行openclaw安装
运维·docker·容器
蜀道山老天师7 小时前
Docker Compose 多容器编排实战:LNMP、Tomcat 集群、云桌面、Portainer、Zabbix 一键部署
运维·docker·容器·tomcat·zabbix
见牛羊9 小时前
docker理解
java·docker·容器
ん贤9 小时前
Higress 详细笔记
笔记·云原生·higress