从命令行更新群集kubeconfig


Userlevel 1

只是想分享我们如何从命令行更新Kubeconfig。

背景:
在我们的组织中,从Karbon UI下载Kubeconfig被认为有些笨拙。我们喜欢命令行,并想要一种快速的方法来更新身份验证令牌。

解决方案:
我们创建了一个包含“ KarbonCtl”二进制文件和包装脚本的Docker映像。Dockerfile还包含在我们的CI/CD管道中以自动化图像创建。

包装脚本有两件事:

  • KarbonCtl登录-PC-IP Prism.Nightingale.nu-PC-username“ $ 1”
  • karbonctl群集kubeconfig-cluster-name“ $ 2”>“ $ 3”

最终用户运行的命令:

  • docker run -rm -rm -It -v“ $(pwd)”:/tmp docker.registry.local/karbonctl:最新 mycluster/tmp/karbon.cfg
  • 导出kubeconfig =“ $(pwd)/karbon.cfg”


该主题已关闭以供评论

14个答复

UserLevel 4
徽章 +5

嘿,

感谢分享。您有机会与社区共享Dockerfile或Docker图像吗?

UserLevel 7
徽章 +34

感谢分享 @clindevall- 好东西!

顺便说一句 - 爱化身!

Userlevel 1

你好,

这是当前的Dockerfile:

来自Centos:7

复制karbonctl/usr/local/bin

复制kubeconfig/usr/local/bin

入口处[/usr/local/bin/kubeconfig]

“ kubeconfig”外壳脚本看起来像这样:

#!/bin/sh

如果[$#-LT 2]

然后

回声“用法:kubeconfig

出口1

fi

KarbonCTL登录-PC-IP Prism-Central.Host.Local -pc-username“ $ 1”

如果 [ !-Z“ $ 3”]

然后

karbonctl群集kubeconfig-cluster-name“ $ 2”>“ $ 3”

别的

karbonctl群集kubeconfig-cluster-name“ $ 2”

fi

Userlevel 1

有改进的空间,但是现在我们使用这样的码头图像:

docker run -rm -rm -It -v“ $(pwd)”:/tmp docker.registry.local/karbon:最新john.doe@office365.com mycluster/tmp/tmp/mycluster.cfg

从哪里获得karbonctl二进制?

UserLevel 4
徽章 +5

它位于棱镜中心。使用Nutanix用户通过SSH登录/in home/home/nutanix/karbon

它位于棱镜中心。使用Nutanix用户通过SSH登录/in home/home/nutanix/karbon

可以在其他地方下载它吗?我正在尝试设置另一个VM或找到可扩展的方法来续订上下文,因为共享管理凭据并不理想

有没有密码的方法可以做到这一点?

帮助声称,生成了KarbonCTL配置,以允许使用KarbonCTL登录名来验证Karbon,但我每次都必须输入登录和密码。

这是我尝试过的示例命令:

karbonctl登录-config/root/.karbon/config/karbonctl.yaml -pc-username 

karbonctl登录-config/root/.karbon/config/karbonctl.yaml

KarbonCTL登录

karbonctl登录-PC-IP -pc-username -pc-password - 输出JSON

KarbonCTL登录-PC-IP -pc-username -pc-password - 输出'json'

最终,我试图抓住kubeconfig的詹金斯设置,我试图部署到集群。这应该是自动化的,并且不需要每次输入密码。

徽章 +4

为什么要为詹金斯密码?

我的建议是,您在K8S中为Jenkins创建一个服务帐户并使用它,而不是每24小时都需要检索的Kubeconfig。

我被误解了。我不想要詹金斯的密码。我想要一种无密码的方法来登录到集群,以便能够检索kubeconfig。

我被误解了。我不想要詹金斯的密码。

我想要一种无密码的方法来登录到集群,以便能够检索kubeconfig。

我相信实现此目的的唯一方法是通过登录prismentral并使用KarbonCTL远程获取上下文来使用密码。同样,在续订之前做出不定设置是确保在24小时过期后续签凭证的唯一方法。

徽章

它位于棱镜中心。使用Nutanix用户通过SSH登录/in home/home/nutanix/karbon

@Josenutanix- 我想回声 @richardcz请求另一种访问此二进制的方法(KarbonCTL)。

我是开发人员,只有SSH可以访问基础的Kubernetes群集节点(不是Prism)。

我可以从UI中获得Kubeconfig,但是每天这样做很乏味。有一种提供我的密码并使用新鲜配置启动并运行的方法将是很棒的。

它位于棱镜中心。使用Nutanix用户通过SSH登录/in home/home/nutanix/karbon

@Josenutanix- 我想回声 @richardcz请求另一种访问此二进制的方法(KarbonCTL)。

我是开发人员,只有SSH可以访问基础的Kubernetes群集节点(不是Prism)。

我可以从UI中获得Kubeconfig,但是每天这样做很乏味。有一种提供我的密码并使用新鲜配置启动并运行的方法将是很棒的。

您只需要使用Clusterrole创建一个服务帐户并生成kubeconfig文件

我在詹金斯(Jenkins

Learn more about our cookies.<\/a>","cookiepolicy.button":"Accept cookies","cookiepolicy.button.deny":"Deny all","cookiepolicy.link":"Cookie settings","cookiepolicy.modal.title":"Cookie settings","cookiepolicy.modal.content":"We use 3 different kinds of cookies. You can choose which cookies you want to accept. We need basic cookies to make this site work, therefore these are the minimum you can select. Learn more about our cookies.<\/a>","cookiepolicy.modal.level1":"Basic
Functional","cookiepolicy.modal.level2":"Normal
Functional + analytics","cookiepolicy.modal.level3":"Complete
Functional + analytics + social media + embedded videos"}}}">
Baidu