当前位置: 首页 > 知识库问答 >
问题:

如何在kubernetes集群上访问kube-scheduler?

尚嘉庆
2023-03-14

我正在尝试弄清楚如何使用自定义配置配置 kubernetes 调度程序,但我在准确理解调度程序的可访问方式时遇到了一些麻烦。

调度器作为 pod 在名为 kube-scheduler-it-k8s-masterkube-system 命名空间下运行。文档说你可以通过创建一个配置文件并调用 kube-scheduler --config 来配置调度器

OCI runtime exec failed: exec failed: container_linux.go:370: starting container process caused: exec: "/bin/bash": stat /bin/bash: no such file or directory: unknown
command terminated with exit code 126

我尝试修改 /etc/kubernetes/manifests/kube-scheduler 以在 pod 中挂载我的自定义配置文件,并使用 --config 选项集显式调用 kube-scheduler,但似乎我的更改被还原并且调度程序使用默认设置运行。

我觉得我从根本上误解了kubernetes调度程序。我应该从调度器pod本身传递自定义调度器配置吗?还是应该以某种方式远程完成?

谢谢!


共有1个答案

林星华
2023-03-14
匿名用户

由于您的X问题是“如何修改调度程序配置”,您可以尝试以下操作。

如果使用< code>kubeadm来引导集群,则可以在运行< code>kubeadm init时使用< code> - config标志来传递< code > cluster configuration 类型的自定义配置对象,以将额外的参数传递给控制平面组件。

调度程序的配置示例:

$ cat sched.conf
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.16.0
scheduler:
  extraArgs:
    address: 0.0.0.0
    config: /home/johndoe/schedconfig.yaml
    kubeconfig: /home/johndoe/kubeconfig.yaml
$ kubeadm init --config sched.conf

您也可以尝试< code>kubeadm升级应用-配置sched.conf

参考文献:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/control-plane-flags/

您还可以编辑< code >/etc/kubernetes/manifests/kube-scheduler . YAML ,修改标志以传递配置。确保通过更新< code>volumes和< code>volumeMounts部分将文件装入pod。

spec:
  containers:
  - command:
    - kube-scheduler
    - --authentication-kubeconfig=/etc/kubernetes/scheduler.conf
    - --authorization-kubeconfig=/etc/kubernetes/scheduler.conf
    - --bind-address=127.0.0.1
    - --kubeconfig=/etc/kubernetes/scheduler.conf
    - --leader-elect=true
    - --config=/etc/kubernetes/mycustomconfig.conf
    volumeMounts:
    - mountPath: /etc/kubernetes/scheduler.conf
      name: kubeconfig
      readOnly: true
    - mountPath: /etc/kubernetes/mycustomconfig.conf
      name: customconfig
      readOnly: true
  volumes:
  - hostPath:
      path: /etc/kubernetes/scheduler.conf
      type: FileOrCreate
    name: kubeconfig
  - hostPath:
      path: /etc/kubernetes/mycustomconfig.conf
      type: FileOrCreate
    name: customconfig

 类似资料:
  • 根据用户部署和暴露服务的方式不同,有很多种方式可以用来访问 kubernetes 集群。 最简单也是最直接的方式是使用 kubectl 命令。 其次可以使用 kubeconfig 文件来认证授权访问 API server。 通过各种 proxy 经过端口转发访问 kubernetes 集群中的服务 使用 Ingress,在集群外访问 kubernetes 集群内的 service

  • 在 Kubernetes 集群内访问 TiDB 时,使用 TiDB service 域名 ${cluster_name}-tidb.${namespace} 即可。 若需要在集群外访问,则需将 TiDB 服务端口暴露出去。在 TidbCluster CR 中,通过 spec.tidb.service 字段进行配置: spec: ... tidb: service: ty

  • 我目前正在使用bitnami/kafka image(https://hub.docker.com/r/bitnami/kafka)并将其部署在kubernetes上。 kubernetes大师:1 库伯内特斯工人:3人 在群集中,其他应用程序能够找到 kafka。尝试从群集外部访问 kafka 容器时出现问题。在阅读时,我读到我们需要为外部 kafka 客户端设置属性“广告.监听器=纯文本://

  • 我假设上述证书的路径是主机上的路径,python脚本将从中获取文件,然后进行YAML构建? 测试呼叫3: 测试呼叫4:

  • 实际is-错误测试连接Https://35.193.108.106:java.security.cert.CertificateException:无法解析证书:java.io.ioException:空输入(禁用Https) 和 测试连接https://35.193.108.106时出错(启用了禁用https证书检查):执行失败:GET at:https://35.193.108.106/api

  • 第一次使用 kubectl 访问 如果您是第一次访问 Kubernetes API 的话,我们建议您使用 Kubernetes 命令行工具:kubectl。 为了访问集群,您需要知道集群的地址,并且需要有访问它的凭证。通常,如果您完成了入门指南那么这些将会自动设置,或者其他人为您部署的集群提供并给您凭证和集群地址。 使用下面的命令检查 kubectl 已知的集群的地址和凭证: $ kubectl

  • 我试图在CentOS上使用kubernetes创建redis集群。我的kubernetes主服务器运行在一台主机上,而kubernetes从服务器运行在两台不同的主机上。 kubectl create-f RC.Yaml 使用的Redis-config文件 我使用以下命令创建kubernetes服务。 ./redis-trib.rb创建-副本1 172.30.79.2:6379 172.30.79

  • 当我执行时 kubectl代理 它为我提供了o/p:开始在虚拟机上的127.0.0.1:8001上提供服务 我想在主机上看到仪表板,这给我带来了问题。 192 168 113 8001 api命名空间库贝系统服务https kubernetes仪表板代理 有什么问题,我没明白。我是库伯内特斯的新手。谢谢