欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > k8s特殊节点,特殊应用,节点只部署该应用,应用只部署在该节点。

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

2024/11/30 1:15:01 来源:https://blog.csdn.net/qq_32310175/article/details/140081147  浏览:    关键词:k8s特殊节点,特殊应用,节点只部署该应用,应用只部署在该节点。

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

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

    kubectl label nodes <your-node-name> role=dev-node
    
  2. 使用 nodeSelector 绑定 Deployment 到特定节点
    在你的 Deployment 配置文件中,使用 nodeSelector 将该 Deployment 绑定到带有特定标签的节点上。以下是一个示例配置:

    apiVersion: apps/v1
    kind: Deployment
    metadata:name: dev-deployment
    spec:replicas: 1selector:matchLabels:app: dev-apptemplate:metadata:labels:app: dev-appspec:containers:- name: dev-containerimage: your-image:latestnodeSelector:role: dev-node
    
  3. 给节点添加 taint
    为确保该节点只运行此 deployment,你可以给该节点添加一个 taint,使得其他 deployment 无法调度到该节点。比如:

    kubectl taint nodes <your-node-name> dedicated=dev:NoSchedule
    
  4. 在 Deployment 中添加 tolerations
    在 Deployment 配置文件中添加 tolerations,允许其调度到有 taint 的节点上:

    apiVersion: apps/v1
    kind: Deployment
    metadata:name: dev-deployment
    spec:replicas: 1selector:matchLabels:app: dev-apptemplate:metadata:labels:app: dev-appspec:containers:- name: dev-containerimage: your-image:latestnodeSelector:role: dev-nodetolerations:- key: "dedicated"operator: "Equal"value: "dev"effect: "NoSchedule"
    

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com