Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
kubernetes中的自定义计划程序名称是什么_Kubernetes - Fatal编程技术网

kubernetes中的自定义计划程序名称是什么

kubernetes中的自定义计划程序名称是什么,kubernetes,Kubernetes,我已经为自定义计划程序运行了服务帐户和pod。那么我的自定义计划程序名称是什么?它将是pod名称、服务名称或其他任何名称。通常,您在编写计划程序本身时定义计划程序名称。然后为调度器创建一个docker容器,并在kubernetes中作为部署运行该调度器 现在,调度器将调度您的POD(基于您编写调度的方式) 您应该观看以下Kelsey Hightower关于如何编写和使用自定义调度程序的谈话 这是玩具调度器的源代码,你可以参考 希望这能给你一个简单的想法 编辑: kelsey hightowe

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

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

现在,调度器将调度您的POD(基于您编写调度的方式)

您应该观看以下Kelsey Hightower关于如何编写和使用自定义调度程序的谈话

这是玩具调度器的源代码,你可以参考

希望这能给你一个简单的想法

编辑:

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
应该是在您的代码中定义的调度程序的名称。

我得到了它,但其他部署将使用该调度程序,在yaml文件中有什么是schedulerName字段。是自定义调度程序pod的depoyment名称还是其他名称?您需要在调度程序中编写函数来执行此操作。但是现在您可以有多个调度器,这样您就可以使用您的特定需求进行调度,也可以使用默认调度器进行标准调整,如nodeSelector等。是的,我检查了这一点。如果我对默认调度器使用node_selector,则在nodeSelector匹配时分配节点,但在这种情况下,自定义计划程序节点名未分配与nodeselctor匹配的节点名。仅当计划程序更改节点名时,才会发生这种情况。