打分也是基于可调度节点进行打分资源情况.
指定多个节点,会进行覆盖其之前节点名称
---
kind: Pod
apiVersion: v1
metadata:name: myhttp
spec:nodeName: node-0001 # 基于节点名称进行调度containers:- name: apacheimage: 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: 0nodeSelector: # 配置 Pod 调度节点kubernetes.io/hostname: node-0003 # 在 node-0003 节点创建containers:- name: linuximage: myos:8.5command: ["awk", "BEGIN{while(1){}}"]resources: # 资源策略requests: # 配额策略memory: 1100Mi # 内存配额cpu: 200m #数字随便更改.毫核为单位
命令是resources下面的request: memory进行配额
大量容器可以用namespace进行限制和配额其操作如下:
resourcequota
ResourceQuota
全局配额策略
---
apiVersion: v1
kind: ResourceQuota
metadata:name: myquotanamespace: work
spec:hard:requests.cpu: 1000mrequests.memory: 2000Milimits.cpu: 5000mlimits.memory: 8Gipods: 3