打分也是基于可调度节点进行打分资源情况.
指定多个节点,会进行覆盖其之前节点名称
---
kind: Pod
apiVersion: v1
metadata:
name: myhttp
spec:
nodeName: node-0001 # 基于节点名称进行调度
containers:
- name: apache
image: myos:httpd
基于节点名称的调度策略
标签与调度
在k8s中万物都可以打标签
标签管理:
管理一个以上都是使用标签 kubernetes.io就是系统标签:实现某些功能
kubectl describe pods | grep node
该命令可以查询详细信息
kubectl label nodes node-0002 node-0003 disktype=ssd #给node-0002和node-0003打标签进行
for i in web{1..5}; do sed "s,myhttp,${i}," myhttp.yaml | kubectl apply -f -; done
执行for循环命令可以做:修改内容
资源管理
限额: 限制的额度,不能超出限制的额度,限定一个最大值
配额: 给你的低保,配的最低额度不能被别人抢占,保留一个最小值,没有限定最大值
靠分配内存和CPU进行限额和配额
内存配额:
---
kind: Pod
apiVersion: v1
metadata:
name: minpod
spec:
terminationGracePeriodSeconds: 0
nodeSelector: # 配置 Pod 调度节点
kubernetes.io/hostname: node-0003 # 在 node-0003 节点创建
containers:
- name: linux
image: myos:8.5
command: ["awk", "BEGIN{while(1){}}"]
resources: # 资源策略
requests: # 配额策略
memory: 1100Mi # 内存配额
cpu: 200m #数字随便更改.毫核为单位
命令是resources下面的request: memory进行配额
大量容器可以用namespace进行限制和配额其操作如下:
resourcequota
ResourceQuota
全局配额策略
---
apiVersion: v1
kind: ResourceQuota
metadata:
name: myquota
namespace: work
spec:
hard:
requests.cpu: 1000m
requests.memory: 2000Mi
limits.cpu: 5000m
limits.memory: 8Gi
pods: 3