kubernetes--调度约束

发布时间:2020-08-04 05:36:51 作者:caozhengtao1213
来源:网络 阅读:150

基本原理

kubernetes通过watch的机制进行每个组件的协作,每个组件之间的设计实现了解耦.

调度方式

nodeName用于将Pod调度到指定的Node名称上,跳过调度器直接分配.

nodeSelector用于将Pod调度到匹配Label的Node上,前提是node要有标签.

kubernetes--调度约束

原理详解

图中左上角的运维人员往节点中创建一个nginx资源.

API Server和etcd和Scheduler是master.

Kubelet和Docker是node节点.

API Server做为唯一入口,接受create创建资源的属性信息写入到etcd中(属性信息:名称,镜像名称,限制条件),
etcd完善发现机制(watch)给Scheduler调度器(查看那个节点适合),然后绑定相关pod的网络信息,
反馈给API Server,收到信息后api写入etcd中,此时etcd存储了pod的网络信息(IP),node1、中的kubelet会管理pod资源,
会触发容器的创建命令,安装完成后docker就会反馈状态信息给API Server,当API Server收到状态信息写入到etcd中.

API Server相当于是平台中的管理员,负责记录相关信息,

etcd相当于管理员的记事本,相关信息内容写在其中,

如果API Server挂了,那么k8s基本上就瘫痪了.

范例演示-nodeName

vim pod5.yaml

apiVersion: v1
kind: Pod
metadata:
  name: pod-example
  labels:
    app: nginx
spec:
  nodeName: 192.168.142.131
  #指定给node1节点
  containers:
  - name: nginx
    image: nginx:1.15
    #验证是否创建了nginx
kubectl create -f pod5.yaml

kubectl get pods
kubectl describe pod pod-example
kubectl delete -f .

kubectl get pods

范例演示-nodeSelector

kubectl label --help
kubectl get node
kubectl label nodes 192.168.142.130 kgc=a

kubectl label nodes 192.168.142.131 kgc=b
kubectl get nodes --show-labels

vim pod5.yaml

apiVersion: v1
kind: Pod
metadata:
  name: pod-example
  labels:
    app: nginx
spec:
  nodeSelector: 
    kgc: b
  containers:
  - name: nginx
    image: nginx:1.15

kubectl apply -f pod5.yaml
kubectl describe pod pod-example

故障排除

kubectl describe TYPE NAME_PREFIX
kubectl logs POD_NAME
kubectl exec –it POD_NAME bash

kubernetes--调度约束

谢谢阅读!

推荐阅读:
  1. Kubernetes--容器云平台管理(理论局!!!)
  2. Oracle 约束

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

kubernetes--调度约束 k8s--调度约束 uber

上一篇:com.android.ddmlib.AdbCommandRejectedException:device offline Error while Installing APK解决

下一篇:Ext JS 6开发实例(三) :主界面设计

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》