首页 置换 选车 估价 问答 生活 经销商 车管所 汽车资讯 汽车销量 车牌查询 今日油价 天气预报
您的位置: 首页 > 生活 > 科技 > kubeadm组件作用(如何生成一个kubeconfig文件)
kubeadm组件作用(如何生成一个kubeconfig文件)
更新时间:2024-07-02 06:28:11

我们通过 client go 连接k8s apiserver的时候需要借助kubeconfig 文件,kubeconfig 文件通常包含了 context(上下文)列表,每个context 又会引用 cluster 和 user。然后通过 current-context 指定当前kubeconfig 使用哪个context。

kubeadm组件作用(如何生成一个kubeconfig文件)1

如果我们需要生成一个kubeconfig。可以通过下面的命令,

首先创建一个serviceaccount

kubectl -n kube-system create serviceaccount kommander-cluster-admin

然后通过RBAC 为 serviceaccount 绑定权限,在这里我直接绑定了 cluster-admin ,如果你需要指定特定的角色,自行修改。

cat << EOF | kubectl apply -f - apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: kommander-cluster-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: kommander-cluster-admin namespace: kube-system EOF

k8s 会默认为每个seviceaccount 创建一个default的secret 。我们先获取第一个USER_TOKEN_NAME,然后获取token 的值 USER_TOKEN_VALUE。如下:

export USER_TOKEN_NAME=$(kubectl -n kube-system get serviceaccount kommander-cluster-admin -o=jsonpath='{.secrets[0].name}') export USER_TOKEN_VALUE=$(kubectl -n kube-system get secret/${USER_TOKEN_NAME} -o=go-template='{{.data.token}}' | base64 --decode) export CURRENT_CONTEXT=$(kubectl config current-context) export CURRENT_CLUSTER=$(kubectl config view --raw -o=go-template='{{range .contexts}}{{if eq .name "'''${CURRENT_CONTEXT}'''"}}{{ index .context "cluster" }}{{end}}{{end}}') export CLUSTER_CA=$(kubectl config view --raw -o=go-template='{{range .clusters}}{{if eq .name "'''${CURRENT_CLUSTER}'''"}}"{{with index .cluster "certificate-authority-data" }}{{.}}{{end}}"{{ end }}{{ end }}') export CLUSTER_SERVER=$(kubectl config view --raw -o=go-template='{{range .clusters}}{{if eq .name "'''${CURRENT_CLUSTER}'''"}}{{ .cluster.server }}{{end}}{{ end }}')

最后生成kubeconfig文件

cat << EOF > kommander-cluster-admin-config apiVersion: v1 kind: Config current-context: ${CURRENT_CONTEXT} contexts: - name: ${CURRENT_CONTEXT} context: cluster: ${CURRENT_CONTEXT} user: kommander-cluster-admin namespace: kube-system clusters: - name: ${CURRENT_CONTEXT} cluster: certificate-authority-data: ${CLUSTER_CA} server: ${CLUSTER_SERVER} users: - name: kommander-cluster-admin user: token: ${USER_TOKEN_VALUE} EOF

,
相关推荐RECOMMEND
常州专业高温离心风机厂家供应(高温离心风机的规格型号如何选-郑通型号齐全出厂报价)
相信大家对高温离心风机已经是不陌生了,但对于想进一步了解本产品的相关知识的客户来说这些内容还是不够的。今天郑通小编就将关于高温离心风机方面的知识与大家分享一下,希望引起大家的重视,让大家对高温离心风机...
25个常见的ppt模板优品(干货一个免费的PPT模板资源网站)
以往在网上找PPT模板资源,要么是付费资源,几块钱一份PPT,要么免费的但排版设计又超级拉胯。这就很容易造成我们印象中百度搜出来的PPT好像都不那么靠谱,每次一提到做PPT就觉得是一件痛苦的事。其实有...
手机解除root后还能root吗(为什么手机ROOT后不安全)
资料图手机root后会被各种病毒软件入侵,比如朋友给你发送一个不知名链接你点击后可能就会被植入病毒,而这些病毒会在后台你不知情的情况下悄悄上传你的个人照片以及资料,还会记录你所输入的个人密码以及远程操...
钓鱼绑子线全套方法(绑子线的技巧和一些需要的工具)
作为一个钓鱼人,就得具备各种技能,常常野钓的钓友,自然是要应付各种情况的,而绑钩,就是其中之一,自己学会手工绑钩是必修课,熟练之后就会发觉,手工绑钩其实也是很快的。也会比外面绑好的要好(渔具店老板绑的...
马拉松手环可以连接手机的吗(一年刷出2个马拉松)
天暖和了,有天天坚持跑步的朋友没?一天能跑多少公里啊?有些人说跑步可不是一个容易坚持的事儿!一想要跑步热血沸腾,一真要去跑步,浑身哪都疼!朋友,不用太懊恼,虽然坚持跑步不容易,但马拉松很容易!都懵了吧...
长期玩手机对身体有什么危害(对身体的危害远不止这5点)
随着手机的智能发展,我们可以手机来看新闻、看电视剧,看微信。可以说手机里面的各种信息让人一头扎进去根本就不知疲倦。可这时候,你的筋骨却早就累坏了。预防手机危害,减少使用时间就够了吗?骨科医生说“NO”...