问题标签 [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.

0 投票
2 回答
171 浏览

deployment - 将数据存储在文件中并获取它的引用路径

我希望创建一个不是“变量”的环境文件,并在 TravisCI 管道中获取它的路径。

附上我们在gitlab gitlab环境文件中如何做同样的 图片

我需要通过 travisci 管道中的路径将机密存储在文件中。例如:这就是我们如何在 Jenkins 中做同样的事情: "KUBECONFIG=/var/lib/jenkins/.kube/filename"

我不会将我的秘密文件上传到 github 私人仓库。

0 投票
1 回答
384 浏览

kubernetes - 在 kubernetes kubeconfig yaml 文件中渲染 env-var

我需要在我的 kubeconfig 文件中使用环境变量来指向NODE_IPKubernetes API 服务器。

我的配置是:

但是当我运行命令时,似乎 kubeconfig 文件没有得到渲染变量:

它抱怨如下:

无法连接到服务器:dial tcp:lookup $NODE_IP: no such host

有没有人尝试做这样的事情或者有可能让它工作?

提前致谢

0 投票
1 回答
1068 浏览

python - 如何在 kubernetes-client-python 中减少 kubernetes 集群的重试次数

我需要使用 kubernetes-client-python 减少不可用/已删除的 kubernetes 集群的重试次数,目前默认为 3。

重试 3 次后,它会引发异常。

有什么办法可以减少计数。

示例代码

0 投票
1 回答
2349 浏览

kubernetes - gcloud 不添加访问令牌以连接到 GKE 集群

kubectl我创建了一个 GKE 集群并通过运行在我的集群上单击“连接”按钮时出现的命令连接到它。

$HOME/.kube/config我看到以下条目:

为了添加一个新的命名空间,我做了以下事情:

这会导致错误:

我重复了在 Google Cloud shell 中添加凭据的步骤。在那里,我能够成功创建一个新的命名空间。我注意到,access-tokenandexpiry字段是可见的。

因此,如何获得正确gcloud containers cluster get-credentials更新我的命令kubeconfig

0 投票
1 回答
1437 浏览

kubernetes - 从主机系统恢复 kubeconfig

我建立了一个 k8s 集群并设法杀死了我的 kubeconfig 显然无法恢复:( 我确实可以访问节点,但分别可以访问在 controlplance 和 etcd 上运行的容器。有没有办法从集群中检索工作的 kubeconfig?

我用 Rancher 建立了这个集群,不幸的是,当主机系统的 ip 改变并且letsencrypt 证书用完时,rancher 坏得很厉害。

所有部署实际上都运行得很好,我只是不再访问集群了:(

这是我的 kube 配置:

如果我再次访问该集群,我可以简单地设置一个新的牧场主实例并导入该集群,但为此我需要先访问它。

任何提示都非常感谢,因为我现在几乎没有想法了。

0 投票
1 回答
375 浏览

kubectl - 如何在不同 kubeconfig yaml 文件中描述的不同 Kubernetes 上下文之间快速切换?

我需要访问几个 Kubernetes 集群。对于他们每个人,我都有一个 kubeconfig yaml 文件,例如kubeconfig-cluster1.yamlkubeconfig-cluster2.yaml.

如何在这些配置之间轻松切换?我的意思是,没有KUBECONFIG手动将环境变量设置为这些文件之一?

0 投票
3 回答
1763 浏览

kubernetes - 新的 Kubernetes 服务帐户似乎具有集群管理员权限

我遇到了新创建的 Kubernetes 服务帐户的奇怪行为。看来他们的令牌在我们的集群中提供了无限的访问权限。

如果我创建一个新的命名空间,在该命名空间内创建一个新的服务帐户,然后在新的 kube 配置中使用服务帐户的令牌,我就可以在集群中执行所有操作。

将该 ^ 作为 shell 脚本运行会config在当前目录中生成 a 。问题是,使用该文件,我能够读取和编辑集群中的所有资源。我希望新创建的服务帐户没有权限,除非我通过 RBAC 明确授予它们。

我没有向新创建的服务帐户添加任何角色绑定,因此我希望它kubectl使用新生成的配置接收所有查询的拒绝访问响应。

下面是一个 test-sa 服务帐户的 JWT 示例,它嵌入在config

要考虑的事情...

  • rbac.authorization.k8s.io/v1正如我所看到的以及 在这篇文章中建议rbac.authorization.k8s.io/v1beta1的输出中,似乎在集群中启用了 RBAC 。值得注意的是,正如同一问题的另一个答案中所建议的那样,不显示输出。这是否表明实际上并未启用 RBAC?kubectl api-versions | grep rbackubectl cluster-info dump | grep authorization-mode
  • 我的用户具有cluster-admin角色权限,但我不希望这些权限转移到使用它创建的服务帐户中。
  • 我们在 GKE 上运行我们的集群。
  • 据我所知,我们在集群中没有任何非正统的 RBAC 角色或绑定会导致这种情况。我可能遗漏了一些东西,或者我通常不知道会导致这种情况的 K8s RBAC 配置。

我的假设是否正确,即新创建的服务帐户应该具有极其有限的集群访问权限,并且如果没有将许可的角色绑定附加到新的服务帐户,上述场景不应该是可能的?对这里发生的事情有什么想法,或者我可以限制 test-sa 的访问吗?

0 投票
0 回答
234 浏览

go - 连接以在 GKE 上动态创建新集群

我正在使用cloud.google.com/go SDK 以编程方式为 GKE 集群提供所需的配置。

我设置了 ClientCertificateConfig.IssueClientCertificate = true (参见https://pkg.go.dev/google.golang.org/genproto/googleapis/container/v1?tab=doc#ClientCertificateConfig)。配置集群后,我使用为同一集群返回的 ca_certificate、client_key、c​​lient_secret(请参阅https://pkg.go.dev/google.golang.org/genproto/googleapis/container/v1?tab=doc#MasterAuth)。现在我有了上面的3个属性,我尝试为这个集群生成kubeconfig(后面被helm使用)

粗略地说,我的 kubeconfig 看起来像这样:

在使用上述配置运行 kubectl get 节点时,我收到错误:来自服务器的错误(禁止):服务帐户被禁止:用户“客户端”无法在集群范围内的 API 组“”中列出资源“服务帐户”

有趣的是,如果我使用 gcloud 生成的配置,唯一的变化是在用户部分:用户:

这种配置似乎工作得很好。但是,一旦我向其中添加客户端证书和客户端密钥数据,它就会中断:用户:

我相信我遗漏了一些与 RBAC 相关的细节,但我不确定是什么。你能在这里向我提供一些信息吗?

同样参考这个问题,我尝试首先仅依赖用户名 - 密码组合,使用它在集群中应用新的集群角色绑定。但我不能只使用用户名密码方法。我收到以下错误:

0 投票
1 回答
115 浏览

kubernetes - 移除基于 jsonnet 文件的 kubernetes 部署

我正在使用 jsonnet 来描述 Kubernetes 的部署配置。

使用 kubecfg 创建部署:

一切都很顺利,但是有什么好方法可以使用kubecfgjsonnet文件删除部署。

0 投票
1 回答
1901 浏览

kubernetes - 我可以在我的 kubernetes 集群上找到 kubeadm-config.yaml

有一个 k8s 单主节点,我需要备份它并恢复它我用谷歌搜索了这个主题并找到了解决方案 - https://elastisys.com/2018/12/10/backup-kubernetes-how-and-why/

一切看起来都很简单;所以,我按照说明获得了证书的副本和 etcd 数据库的快照。

但最后,我无法在我的主服务器上找到 kubeadm-config.yaml。

在哪里可以找到这个文件?