玩k8s?----Pod 的调度策略

文章目录

      • 一: 调度策略
      • 1.1、nodeName
      • 1.2、nodeSelector
      • 1.3: 故障排除

一: 调度策略

先看下创建一个Pod的工作流程:

  1. kubectl–>create pod–>apiserver–>etcd

  2. apiserver—>schedule (bind pod to node) 请求绑定调度资源绑定pod —> etcd(绑定的资源pod网段写到etcd)

  3. apiserver—>kubelete (bound self pod) —>docker run —>apiserver (update pod status) --> etcd

玩k8s?----Pod 的调度策略_第1张图片

Pod根据调度器默认算法将Pod分配到合适的节点上,一般是比较空闲的节点。但有些情况我们希望将Pod分配到指定节点,该怎么做呢?

这里给你介绍调度策略:nodeName、nodeSelector和污点

1.1、nodeName

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

例如:下面示例会绕过调度器,直接分配到k8s-node1节点。

apiVersion: v1
kind: Pod
metadata:
  name: pod-example
  labels:
    app: nginx
spec:
  nodeName: 192.168.100.180 "指定后端节点"
  containers:
  - name: nginx
    image: nginx:1.15

[root@master demo]# vim nodename.yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod-example
  labels:
    app: nginx
spec:
  nodeName: 192.168.100.180
  containers:
  - name: nginx
    image: nginx:1.15

[root@master demo]# kubectl create -f nodename.yaml 
pod/pod-example created
[root@master demo]# kubectl get pods
NAME          READY   STATUS              RESTARTS   AGE
pod-example   0/1     ContainerCreating   0          10

你可能感兴趣的:(Docker容器与K8s,docker,kubernetes)