您现在的位置是:首页 >学无止境 >Kubernetes---Pod调度、标签、配额、策略网站首页学无止境

Kubernetes---Pod调度、标签、配额、策略

云海0478 2023-06-10 16:00:03
简介Kubernetes---Pod调度、标签、配额、策略

静态pod

静态pod由user直接创建调用,不能迁移

由kebelet守护进程直接管理的pod,无需APIserver监管

kubelet监视每个静态pod

静态pod永远绑定到一个指定节点上的kubelet

静态pod spec不能引用其他API对象

静态pod配置路径/var/lib/kubelet/config.yaml里面定义

        staticPodPath: /etc/kubernetes/manifests

 将资源文件写在staticPodPath: /etc/kubernetes/manifests下面 不用创建,直接可以在master节点上看到,并且master删不掉,只有删除文件就没了

pod调度策略

将pod分配到合适的计算节点上,然后对应节点上的kubelet运行这些pod

kube-scheduler是默认调度器,是集群中核心组件,它依据调度策略分配到合适节点上运行

 调度流程

        筛选 :首先选出满足pod的所有node,包括计算资源、内存、存储、网络、端口

                如果没有能满足pod的node,pod将一直停在pending状态,直到找到合适的node运行它

        打分:(优选)调度器根据打分规则 为每一个可调度的节点进行打分。选出最高分来运行pod,如果多个一样就随机选择

                确定node运行pod后调度器决定通知给kube-apiserver,这个过程叫绑定

pod定向调度(nodeName)

        让pod运行在指定的node上

 即使失败也不会调度到其他结点,一直等下去

标签与pod调度(labels)   nodeSelector

标签是符加到k8s对象上的键值对

因为使用结点名称不灵活,所以出现打标签能够松散耦合,可以创建,修改删除,当然也可以在资源文件中直接定义

kubectl label 资源类型 【资源名称】 【选项/参数】

xxx代表pod名      key后面加一个 - 就是删除

kubectl get pods xxx --show-lables

kubectl lable pods xxx key=value

kubectl delete pods xxx key-

kubectl get pod -l key=value 指定标签查看同一个标签有哪些pod

打上标签后就可以通过pod标签调度

 资源配额(resources)

为了让资源合理分配,需要设定一些规则,所以用到配额

cpu资源类型

在k8s中cpu是以毫核(m)为单位,最小调度单元是1m cpu的一个核心看作1000m

若你有2颗cpu,且没cpu核心为4 ,那么你的资源总量就是8000m

内存资源类型

E        P        T        G        M        K      1k==1000

Ei        Pi        Ti        Gi        Mi        Ki    1ki==1024

配额 :保证程序的运行 可以超出不能低于         requests

限额 :保证不会占用他人资源         limits
 

[root@master ~]# vim minpod.yaml 
---
kind: Pod
apiVersion: v1
metadata:
  name: minpod
spec:
  terminationGracePeriodSeconds: 0
  restartPolicy: Always
  nodeSelector:
    kubernetes.io/hostname: node-0003
  containers:
  - name: linux
    image: myos:v2009
    command: ["awk", "BEGIN{while(1){}}"]
    resources:               # 设置配额
      requests:              # 最小配额
        memory: "1200Mi"     # 内存配额
[root@master ~]# vim minpod.yaml 
---
kind: Pod
apiVersion: v1
metadata:
  name: minpod
spec:
  terminationGracePeriodSeconds: 0
  restartPolicy: Always
  nodeSelector:
    kubernetes.io/hostname: node-0003
  containers:
  - name: linux
    image: myos:v2009
    command: ["awk", "BEGIN{while(1){}}"]
    resources:
      requests:
        cpu: "800m"          # 计算资源需求
        memory: "1200Mi"

添加资源配额

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。