- N +

k8s扩容指定pod? k8s修改pod配置?

k8s扩容指定pod? k8s修改pod配置?原标题:k8s扩容指定pod? k8s修改pod配置?

导读:

k8s一个pod加载多个containers,指定pod运行的node1、- containerPort: 80 nodeSelector Pod.spec.nodeSele...

k8s一个Pod加载多个containers,指定pod运行Node

1、- containerport: 80 nodeSelector POD.spec.nodeSelector通过Kubernetes的label-selector机制选择节点,由调度器调度策略匹配label,而后调度Pod到目标节点,该匹配规则属于强制约束。

2、nodeSelector配置相对简单,k8s提供了另外一个pod调度配置: nodeAffinity(节点亲和) ,相对于nodeSelector的简单匹配他拥有更多更加个性化的配置。这段配置表示:该pod可以被调度到标签key为 deploy.type ,值为 yztssjdxt-test 或 yztssjdxt 的节点。

k8s扩容指定pod? k8s修改pod配置?

3、在Pod定义添加nodeSelector。创建Pod并检查状态验证其被调度至指定节点。方式二:通过指定NodeName。在Pod中配置nodeName字段,直接指派对应节点。示例如下:查看node名称。列出节点名称,例如k8s-master。在Pod中使用nodeName指定此节点。通过kubectl APPly创建Pod后,检查Pod是否调度至指定节点。

4、PodAffinit是根据通过已运行在节点上的pod的标签而不是node的标签来决定被调度pod的运行节点,因为pod运行在指定的namespace所以需要自己指定运行pod的naMESapce 上面这个例子中的 POD 需要调度到某个指定的主机上,至少有一个节点上运行了这样的 POD:这个 POD 有一个app=busybox-pod的 label。

K8S学习指南(22)-k8s核心对象Endpoint

在Kubernetes(K8s)中,Endpoint是连接Service和后端Pod的关键核心对象。它提供服务的抽象,动态管理集群中服务的网络终端。本文将深入探讨Endpoint概念、作用及使用方法,并通过实例帮助读者理解。

K8s核心对象Endpoint学习指南:Endpoint概念 定义:Endpoint是Kubernetes中连接Service和后端Pod的关键核心对象,它提供服务的抽象,并动态管理集群中服务的网络终端。 作用:Endpoint集合了服务后端真实运行Pod的地址端口,是Service的实现。K8s通过Endpoint实现服务的动态发现负载均衡

K8s核心对象Service的学习指南如下:Service的概念:定义:Service在K8s中是一种抽象概念,它定义了一个Pod群体的逻辑集合,并为这组Pod提供了一个稳定且可访问的端点。功能:提供服务发现与负载均衡的功能,使得其他应用或服务能方便地访问这组Pod。

如何指定pod的运行节点?

1、方式二:通过指定NodeName。在Pod中配置nodeName字段,直接指派对应节点。示例如下:查看node名称。列出节点名称,例如k8s-master。在Pod中使用nodeName指定此节点。通过kubectl Apply创建Pod后,检查Pod是否调度至指定节点。使用nodeName选择节点方式存在局限性。方式三:亲和性和反亲和性。

2、假设以下场景:有三个Node,分别为1010109,创建Deployments来部署tomcat应用,指定在107节点上创建Pod。解决方案 nodeName Pod.spec.nodeName将Pod直接调度到指定的Node节点上,会跳过Scheduler的调度策略,该匹配规则是强制匹配。

3、nodeAffinity中nodeSelector字段下,节点满足任何一个条件即可;但更下一级matchExpressions,节点必须同时满足所有条件才能运行pod 。

4、ReplicaSet确保指定数量的Pod副本在运行,如果Pod数量少于预期,RepliCASet会自动创建新的Pod。StatefulSet:用于有状态应用的部署,支持稳定的网络标识、持久化存储等特性。DaemonSet:确保每个节点上运行一个Pod副本,常用日志收集、监控系统任务

k8s将pod调度到指定节点的几种方式

1、方式二:通过指定NodeName。在Pod中配置nodeName字段,直接指派对应节点。示例如下:查看node名称。列出节点名称,例如k8s-master。在Pod中使用nodeName指定此节点。通过kubectl apply创建Pod后,检查Pod是否调度至指定节点。使用nodeName选择节点方式存在局限性。方式三:亲和性和反亲和性。

2、在集群中为节点添加标签。例如,设置app: goweb-node。 编写goweb应用的Deployment文件。设置Pod的定义,确保与应用需求相匹配。 为Deployment添加nodeSelector字段,指定Pod应部署在具有特定标签的节点上,如app=goweb-node。 验证Pod是否成功调度到具有所需标签的节点。

3、nodeSelector配置相对简单,k8s提供了另外一个pod调度配置: nodeAffinity(节点亲和) ,相对于nodeSelector的简单匹配他拥有更多更加个性化的配置。这段配置表示:该pod可以被调度到标签key为 deploy.type ,值为 yztssjdxt-test 或 yztssjdxt 的节点。

4、Pod.spec.nodeName将Pod直接调度到指定的Node节点上,会跳过Scheduler的调度策略,该匹配规则是强制匹配。

5、在实际操作中,假设集群中有两个节点:k8s-0001和k8s-0002。已有工作负载nginx调度至节点k8s-0002,而用户希望工作负载test也调度至k8s-0002。通过调整插件权重,可以实现这一目标。具体步骤包括查看调度日志以了解权重调整后的评分结果,以及通过调整权重实现Pod调度至预期节点。

6、调度流程包括过滤和打分两个步骤。过滤阶段,调度器筛选出满足条件的节点;打分阶段,对筛选出的节点进行评分,最终选择得分最高的节点部署 Pod。节点选择器(nodeSelector)允许用户基于特定标签选择节点。例如,确保某些 Pod 落实在具有特定属性(如 SSD 硬盘)的节点上。

返回列表
上一篇:
下一篇: