什么是kubernetes中的自定义调度程序名称

时间:2018-11-30 08:51:02

标签: kubernetes

我已经为自定义计划程序运行了服务帐户和pod。因此,我的自定义计划程序名称是什么?它将是pod名称或服务名称或其他任何名称。

1 个答案:

答案 0 :(得分:0)

通常,您在编写调度程序本身时定义调度程序名称。然后,为调度程序创建一个docker容器,并在kubernetes中将该调度程序作为部署运行。

现在,调度程序将调度您的Pod(基于您的调度方式)。

您应该观看以下有关如何编写和使用自定义计划程序的Kelsey Hightower演讲

  

https://www.youtube.com/watch?v=IYcL0Un1io0

这是玩具调度程序的源代码,可以参考

  

https://github.com/kelseyhightower/scheduler

希望这给您一个简短的想法。

编辑:

kelsey hightower的调度程序(上述链接)必须通过以下方式进行部署:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    app: scheduler
  name: scheduler
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: scheduler
      name: scheduler
    spec:
      containers:
        - name: scheduler
          image: kelseyhightower/scheduler:0.4.0
        - name: kubectl
          image: kelseyhightower/kubectl:1.3.4
          args:
            - "proxy"

然后,每当使用该调度程序部署新Pod时,都需要在yaml文件中提供“ schedulerName”:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    app: nginx
  name: nginx
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx
      name: nginx
    spec:
      schedulerName: hightower
      containers:
        - name: nginx
          image: "nginx:1.11.1-alpine"
          resources:
            requests:
              cpu: "500m"
              memory: "128M"

schedulerName应该是您的代码中定义的调度程序的名称。