首页 > 其他分享 >k8s之 pod调度

k8s之 pod调度

时间:2022-08-29 12:46:14浏览次数:60  
标签:kubectl 调度 节点 污点 Pod k8s pod

案例:确保Pod分配到具有SSD硬盘的节点上 第一步:给节点添加标签 格式:kubectl label nodes <node-name> <label-key>=<label-value> 例如:kubectl label nodes k8s-node1 disktype=ssd 验证:kubectl get nodes --show-labels 第二步:写yaml 文件 vim pod-ssd.yaml

apiVersion: v1
kind: Pod
metadata:
  name: nginx-kusc00401
spec:
  containers:
  - name: nginx
    image: nginx
  nodeSelector:
    disk: ssd

第三步:利用yaml 部署pod

kubectl apply -f pod-ssd.yaml

验证:

kubectl get pods -o wide -------- 删除节点标签: kubectl label nodes node1.lab.example.com disktype- ************** nodeSelector & nodeAffinity的区别: nodeAffinity:节点亲和类似于nodeSelector,可以根据节点上 的标签来约束Pod可以调度到哪些节点。 相比nodeSelector: • 匹配有更多的逻辑组合,不只是字符串的完全相等,支持的操作 符有:In、NotIn、Exists、DoesNotExist、Gt、Lt • 调度分为软策略和硬策略,而不是硬性要求 • 硬(required):必须满足 • 软(preferred):尝试满足,但不保证 ******************** Taint(污点)与Tolerations(污点容忍) 基于节点标签分配是站在Pod的角度上,通过在Pod上添加属性,来确定Pod是否要调度到指定的Node上,其实我们也可以站在 Node的角度上,通过在Node上添加污点属性,来避免Pod被分配到不合适的节点上。 Taints:避免Pod调度到特定Node上 Tolerations:允许Pod调度到持有Taints的Node上 案例:pod调度之污点 第一步:给节点添加污点 格式:kubectl taint node [node] key=value:[effect] 例如:kubectl taint node k8s-node1 gpu=yes:NoSchedule 验证:kubectl describe node k8s-node1 |grep Taint 其中[effect] 可取值: • NoSchedule :一定不能被调度 • PreferNoSchedule:尽量不要调度,非必须配置容忍 • NoExecute:不仅不会调度,还会驱逐Node上已有的Pod 第二步: 编写yaml vim pod-taints.yaml apiVersion: v1 kind: Pod metadata:   name: my-pod spec:   containers:   - name: test     image: busybox   tolerations:   - key: "gpu"       operator: "Equal"       value: "yes"       effect: "NoSchedule" 注:如果希望Pod可以被分配到带有污点的节点上,要在Pod配置 中添加污点容忍(tolrations)字段 --- 删除污点:kubectl taint node [node] key:[effect]- ***** nodeName:指定节点名称,用于将Pod调度到指定的Node上,不经过调度器 vim pod-nodename.yaml apiVersion: v1 kind: Pod metadata:   name: my-pod spec:   nodeName: k8s-node2   containers:   - name: web     image: nginx    

标签:kubectl,调度,节点,污点,Pod,k8s,pod
From: https://www.cnblogs.com/cloud-yongqing/p/16635559.html

相关文章

  • 解析OCC几何体(TopoDS_Shape)生成自定义off文件(转)
    voidParseTopoDSShapeToOff(constTopoDS_Shape&aShape){//0计算顶点和顶点索引//std::vector<osg::Vec3d>vertexArray;BRepMesh_IncrementalMesh(aSh......
  • K8s 新增节点
    #新增nodekubeadmtokencreate--print-join-commandkubeadmjoin11.0.1.111:6443--token3g9iab.rwdnd8dikfujqmus--discovery-token-ca-cert-hashsha256:8d414b0c9......
  • k8s 网络之flannel
    为什么要学习k8s网络?k8s网络是k8s中比较复杂的知识,设计到的知识范围比较广,需要对网络有一定的知识积累才能更好的掌握,如果我们了解了k8s网络通信原理,我相信我们应用k8s的......
  • k8s(kubernetes)基于(NFS+PV+PVC)部署jenkins
    #部署流程:(系统:centos7.9)一、设置存储目录1、安装NFS服务端2、挂载NFS并设置存储文件夹二、创建PV&PVC1、准备PV&PVC部署文件2、创建PV&PVC......
  • Pod生命周期和重启策略
    Pod在整个生命周期过程中被系统定义为各种状态,具体如下*Pending:APIServer已经创建该pod,但pod中有一个或多个容器镜像没有创建,包括正在下载镜像的过程*Running:P......
  • K8S集群重新初始化
    K8S集群重新初始化在引导k8s集群的过程时可能因为这个或那个的原因导致需要重新引导集群,先假定以下的步骤在前面你已经做好了:系统内核设置k8s涉及的镜像已经拉取成功网......
  • K8s集群版本升级
    升级管理节点:1、查找最新版本号yumlist--showduplicateskubeadm2、升级kubeadmyuminstall-ykubeadm-1.23.0-03、驱逐node上的pod,且不可调度kubectldraink8s......
  • k8s问题解决
    问题1:问题描述:k8s中Terminating状态pod不能删除[root@master~]#kubectlgetpods-nmsNAMEREADYSTATUSRESTARTSAGEportal-78......
  • K8s集群中部署SpringCloud在线购物平台(三)
    五、SpringCloud概述springcloud架构图   5.1SpringCloud是什么?官网:https://spring.io/projects/spring-cloud    SpringCloud是一系列框架的有序集......
  • Kubernetes Container、Pod、Namespace内存及CPU限制
        如果运行的容器没有定义资源(memory、CPU)等限制,那么该容器可以使用宿主机的最大可用资源,直到无资源可用而触发宿主机(OOMKiller),为保证容器资源合理利用,需要在nam......