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

kubernetes控制器到API的通信

祁承望
2023-03-14

我有一个需求,我需要创建/编写ConfigMap,这段代码将是kube-controller-manager的一部分。我使用“k8s.io/client-go/rest”来获得与API通信客户端

import "k8s.io/client-go/rest"
.
.
.
rest.InClusterConfig()

根据代码,InClusterConfig检查kubernetes服务环境变量,即“Kubernetes_Service_Host”“Kubernetes_Service_Port”。甚至它也会检查服务令牌(/var/run/secrets/kubernetes.io/serviceaccount/token)。

我面临的问题是,当控制器管理器启动时,环境变量(“kubernetes_service_host”“kubernetes_service_port”)不存在,服务令牌(/var/run/secrets/kubernetes.io/serviceaccount/token)也没有挂载。

“k8s.io/client-go/rest”不应在控制器-管理器中使用?如果不应该使用它,那么从控制器管理器传达API以创建/编写ConfigMaps的最佳方式是什么?

共有1个答案

苏嘉歆
2023-03-14

为了创建k8s资源(pods、configmaps、部署等),您的集群必须处于稳定状态,这意味着kube-apiserver、kube-controller-manager和kube-scheduler必须处于就绪状态。根据我对您描述的理解,您正在使用静态清单将kubernetes组件部署为pods,在本例中,这些pods并不纯粹由kubernetes管理,它们是docker(rkt)容器,一旦处于运行状态,它们就会连接到kubernetes。因此,它们没有任何kubernetes特定的pod环境配置(正如您注意到的,它们缺少kubernetes机密和环境),这就是为什么不能使用inclusterconfig()方法的原因。另一件事是,从kube-controller-manager中创建任何kubernetes资源看起来不是一个好主意。但是如果您真的想这样做,那么使用buildconfigfromflags()fromk8s.io/client-go/tools/clientcmd,在这个函数中,您可以手动指定kube-apiserver url和kubeconfig文件位置,并重用kube-controller-manager标志。

 类似资料:
  • 那么-有什么不同,我应该在什么时候使用它们?

  • 问题内容: 我正在尝试使用AJAX将javascript对象(键值对)传递给MVC Controller操作。 控制器操作具有接收对象的Dictionary参数。 当有问题的对象为 空时 (意味着它在javascript中的值为{}),我在调试器中看到以下内容。 为什么控制器和动作名称会自动添加到Dictionary参数中? 使用提琴手,我能够看到正在传递到我的控制器,并且看不到这两个值正在传递.

  • 插件API控制器写法: 1.建议所有 API控制器增加Api前缀 2.所有 API控制器都继承cmf\controller\PluginRestBaseController基类 3.确保ThinkCMF API已经安装 在插件controller目录下创建ApiIndexController.php文件,内容如下: <?php // +-------------------------------

  • ThinkCMF Api有几个基类控制器,cmf\controller\RestBaseController,cmf\controller\RestUserBaseController,cmf\controller\RestAdminBaseController,基类增加一些统一的方法,和登录认证相关的基础操作。 api 基类控制器 RestBaseController RestBaseContr

  • 我正在云中的AWS EKS服务上运行我的工作负载。我可以看到没有默认的入口控制器可用(因为它可用于GKE),我们必须选择第三方。 我决定使用Traefik。在跟踪文档和其他资源(像这样)之后,我觉得使用Traefik作为IngresController不会自动在云中创建LoadBalancer。我们必须手动完成它来设置所有内容。 如何使用Traefik作为Kubernetes入口,就像其他入口控制

  • 是否可以在没有负载均衡器的情况下在库伯内特斯中使用入口控制器功能(在数字海洋中)。 是否有其他机制允许域名映射到Kubernetes服务;例如,如果我在Kubernetes集群上托管两个WordPress站点: == 域名如何在不显式输入端口号的情况下映射到容器端口8080。 感谢任何帮助。