永久的kubeconfig文件

  • 2021年6月25日
  • 4回复
  • 159的浏览量

如果你和我一样,对每24小时更新一次kubeconfig感到烦恼,我已经创建了一个简单的脚本,它生成一个永久的kubeconfig文件,没有过期。

显然,如果要管理多于1个碳簇,这个脚本是有意义的。

#!/bin/bash
如果[-n "$1"];然后
echo集群名称:$1。
其他的
echo "未指定集群名称。"
出口1
fi
Kubectl创建serviceaccount—namespace kube-system超级用户
Kubectl create clusterrolebinding superuser-rule——clusterrole=cluster-admin——serviceaccount=kube-system:superuser

A=$(kubectl -n kube-system describe secret/$(kubectl -n kube-system get sa/superuser -o jsonpath='{.secrets[0].name}')|awk '{for(i=1;i<=NF;i++)if($i=="token:")print $(i+1)}')
B = $ (kubectl配置视图——平贬低| awk的{(i = 1;我< = NF; + +)如果我= =“certificate-authority-data:“($)打印$ (i + 1)}”)
C = $ (kubectl配置视图——平贬低| awk的{(i = 1;我< = NF; + +)如果(我= =”服务器:“美元)打印$ (i + 1)}”)
D = $ (kubectl配置视图——平贬低| awk的{(i = 1;我< = NF; + +)如果(我= =”的名字:“美元)打印$ (i + 1)}’|头1)

猫< < EOF > kubeconfig。1美元
apiVersion: v1
:配置
用户:
——名称:超级用户
用户:
令牌:美元
集群:
——集群:
certificate-authority-data: $ B
服务器:$ C
名称:$ D
背景:
——背景:
集群:$ D
用户:超级用户
名称:D-context美元
当前上下文:$ D-context
EOF

脚本可以在许多方面进行改进,所以保持原样并做任何您想做的事情,不要寻求支持:)

希望它能帮助


这个话题已经停止评论

4回复

Userlevel 4
徽章 +4

你好艾伦·C

谢谢你的贡献。你可能想看一下这个回购,并给它一个尝试https://github.com/nutanix/kubectl-karbon

我明白了,但据我所知,它仍然需要认证。我们用karbonctl得到了类似的结果。配置仍然在24小时后过期吗?如果你想用k8slens这样的产品来管理你的所有集群,这不是很方便,例如,配置仍然过期。

Userlevel 4
徽章 +4

是的,它将过期。该插件简化了令牌刷新。这是一个安全问题,只要注意带有未过期令牌的服务帐户的风险即可。

看一看https://kubernetes.io/docs/reference/access-authn-authz/authentication/#configuration在这里你可以使用镜头和插件EXEC。我还没有测试。

是的,当然我知道,我已经和工程和pm讨论过很多次了,但是安全必须与可用性平衡,恕我直言。:)。

当您必须管理大量的集群时,这个“安全”特性是一场噩梦,就像在没有从PC获得令牌的情况下无法ssh到集群节点一样。

Baidu