Kubernetes kubectl add new cluster and configurate accessible context.

目录

1.create serviceaccount

2.get token and sa from secret

3.add cluster

4.check configuration

5.refer to


1.create serviceaccount

# 创建一个服务账号,serviceaccount的shortname就是这个sa.

kubectl create sa ${my-account}
kubectl create rolebinding ${my-rolebinding} --clusterrole=${my-clusterrole} --serviceaccount=${my-account} --namespace=${my-namespace}

事实上,对k8s资源的控制,如限定访问哪些namespace等资源,都通过这个sa所绑定的角色关联,关于角色的绑定,这边不赘述(点击传送)。总之,我们需要准备好一个serviceaccount(下文都使用serviceaccount的shortname sa指代)。

在k8s中创建sa成功(一般需要在k8s集群中提前建立好)后,k8s会同步创建出对应的secret,secret存储了token和证书信息。

2.get token and sa from secret

# 根据sa name找到对应的secret name

SECRET_NAME=$(kubectl get serviceaccount ${my-account} -n kube-system -o jsonpath='{.secrets[0].name}')
echo $SECRET_NAME

# 直接依据secret name 找到token和CA证书信息(后续创建user需要使用) 

# 找到TOKEN

TOKEN=$(kubectl get secret ${SECRET_NAME} -n kube-system -o jsonpath='{.data.token}'|base64 -d)
echo $TOKEN

# 找到CA

CA_CRT=$(kubectl get secret ${SECRET_NAME} -n kube-system -o jsonpath='{.data.ca\.crt }'|base64 -d)
echo $CA_CRT

3.add cluster

# create CA file

cat << EOF > k8s-ca.crt
${CA_CRT}
EOF

# config a new cluster

kubectl config set-cluster ${my-cluster} --server=${serverpath}  --certificate-authority=./k8s-ca.crt --embed-certs=true

serverpath需要在k8s集群上查看,格式是http://k8s-cluster-host:port

# add user

kubectl config set-credentials ${my-user} --token ${TOKEN}

这里实际上是一个绑定了Token的证书,为了方便理解,我称之为user

# add context

kubectl config set-context ${my-context} --user ${my-user} --cluster ${my-cluster}

context的字面意思是上下文,实际上就是一个将用户(证书)和集群(新添加的你需要访问的)绑定的快捷连接

4.check configuration

kubectl cluster-info --context ${my-context} && kubectl get ns --context ${my-context} && kubectl get pods --context ${my-context}

最后这一步是验证配置是否生效的操作,本质是一个查询操作。

当使用--context指定对应的context时,kubectl命令执行从context—>user—>token—>cluster的访问。其中token代表了sa,其中包含了可访问那些资源的权限。

5.refer to

k8s之serviceaccount,登录账号创建 - SZ_文彬 - 博客园
基于角色的访问控制(RBAC)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值