问题标签 [kubeconfig]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kubernetes - 如何使用 kubectl 工具(以有状态/本地方式)同时管理来自不同目录的多个集群?
有没有办法可以在“会话”中运行 kubectl,以便它从本地目录而不是从本地目录获取 kubeconfig ~/.kubeconfig
?
示例用例
鉴于问题的抽象性质,值得描述为什么这在示例中可能很有价值。如果有人有一个应用程序,称之为“a”,并且他们有 4 个 kubernetes 集群,每个集群都运行 a,他们可能有一个简单的脚本,该脚本kubectl
在每个集群中执行一些操作来冒烟测试 A 的新部署,例如,他们可能想要部署该应用程序,并查看之后在每个集群中自动扩展了多少个它的副本。
示例解决方案
就像在 git 中一样,也许可以将“如果你能找到一个本地 kubeconfig 文件”作为 git 风格的全局设置:
然后,在一个终端中:
然后,在另一个终端:
因此,完全相同的 kubectl 命令(无需设置上下文)实际上针对新集群运行,具体取决于您所在的目录。
解决方案的一些想法
我对此的一个想法是编写一个 kubectl-context 插件,它以某种方式使 kubectl 总是检查本地 kubeconfig,如果可以的话,在运行之前将上下文设置为全局配置中与目录名称匹配的上下文。
我的另一个想法是创建不同的用户,每个用户都有不同的 kubeconfig 主文件。
当然,使用 virtualenv 之类的东西,你也许可以做一些 kubeconfig 文件有自己不同价值的事情。
最后的想法
最终,我认为这里的目标是颠覆 ~/.kubeconfig 文件具有任何特定含义的想法,而是着眼于在同一台机器上可以使用许多 kubeconfig 文件的方式,但是,不仅仅是使用--kubeconfig
选项,而是,这样状态仍然以目录本地方式维护。
kubernetes - 如何在不创建新配置文件的情况下快速将 --pod-manifest-path 传递给 kubelet?
运行kubelet --pod-manifest-path=/newdir
返回错误。
我不清楚在哪里可以将其添加到Ubuntu--pod-manifest-path
上的 systemd 文件中。我知道有 KubeletConfiguration 类型,但我正在使用.v1.12
v1.11
kubectl - 带有用于服务帐户的自定义 kubeconfig 文件的 kubectl 会出现未经授权的错误
我创建了一个 serviceaccount 并为该服务帐户创建了一个 kubeconfig,但是当我运行 kubectl --kubeconfig=sa.kubeconfig get nodes or get pods 我首先收到错误:> error:You must be logged in to the server (Unauthorized).
现在我收到了消息error: the server doesn't have a resource type "svc"
。
这是创建sa、role和rolebinding的yaml文件
然后,我为服务帐户创建了 kubeconfig 文件。
有人看到我做错了吗?
kubernetes - KubeConfig 文件是如何使用的?
当我们使用 kubeadm init 设置 kubernetes master 时。在该过程结束时,我们必须将 /etc/kubernetes/admin.conf 复制到 $home/.kube/config 。
当我打开文件时,我发现了以下详细信息。
- 证书颁发机构数据
- 客户证书数据
- 客户关键数据
我知道当我们尝试使用 kubectl 访问集群时,该文件用于身份验证。
我想了解的是这些细节是从哪里生成的?.
kubernetes - Kubernetes 资源在命名空间之间跳转
我有一个 Kubernetes 集群,它有 5 种不同的服务。集群部署后,我可以运行:
看看我所有的豆荚。但是几分钟后,当我再次运行相同的命令时,我看到:
而且我只能在运行后看到我的豆荚:
有人可以解释我的问题是什么吗?
kubernetes - 在自定义 helm 图表中禁用子图表
我创建了一个自定义舵图,其中elastic-stack
包含以下配置的子图。
我不明白为什么我必须在内部定义enabled
标签elasatic-stack:
和所有其他配置?
这是正常的掌舵行为还是弹性堆栈图表中的一些错误配置?
python - 如何在 python openshift rest 客户端中使用 load_incluster_config 时修复“没有这样的文件或目录:'/home/jenkins/.kube/config'”
我编写了一个脚本来检查 OpenShift 集群中的一些秘密。我为 Openshift 使用了 python rest-client 库,脚本在集群中执行。但我总是得到 IOError: [Errno 2] No such file or directory: '/home/jenkins/.kube/config'
我知道我在 pod 中没有 kube 配置,因此我尝试使用该kubernetes.config.load_incluster_config()
方法来启用集群配置。
我假设不再需要通过 load_incluster_config 调用提供 kube 配置。是否有人使用服务帐户解决了其余客户端和 openshift 在集群执行中的问题?
我感谢任何帮助,谢谢。
kubernetes - 如何安全地将 kubeconfig 提供给 kubectl
我们的用户只能从管理站访问 Kubernetes 集群,无法直接从他们的笔记本电脑/工作站访问 API。
每个用户都拥有属于该特定用户的相关秘密的 kubeconfig。由于 kubeconfig 还包含用于针对 Kubernetes API 进行身份验证的令牌,因此无法将 kubeconfig“按原样”存储在管理站文件系统上。
有什么方法可以通过 STDIN 向 kubectl 提供令牌/kubeconfig,而不是将其暴露给文件系统上的其他用户(例如管理站的管理员)?
kubernetes - 如何在 .kube/config 中使用生成的 kubeconfig 文件
我正在使用数字海洋来部署托管的 kubernetes 集群,它给了我一个配置文件供我下载。如何将下载的 .yaml 文件与 /.kube 目录中的默认配置文件一起使用?
我尝试合并配置文件,但没有成功。有什么简单的方法可以让它工作吗?