kubernetes 集群的访问-Token方式
一、创建新的名称空间kubectlcreatensk8s-token二、查看新名称空间的secrets 与serviceaccountkubectl get serviceaccounts -n k8s-token && \kubectldescribeserviceaccounts-n k8s-token && \kubectlget secrets-n k8s-
·
一、创建新的名称空间
kubectl create ns k8s-token
二、查看新名称空间的secrets 与serviceaccount
kubectl get serviceaccounts -n k8s-token && \
kubectl describe serviceaccounts -n k8s-token && \
kubectl get secrets -n k8s-token && \
kubectl describe secrets -n k8s-token
三、提取名称空间对应的 token 值
kubectl -n k8s-token get secret $(kubectl -n k8s-token get sa/default -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"
四、配置集群访问文件
1、设置 kubeconfig 文件中的集群条目
export KUBECONFIG_SAVED=192.168.11.128
kubectl config --kubeconfig=/root/kubernetes/k8sconfig/token/kubeconfig \
set-cluster k8s-token \
--server=https://$KUBECONFIG_SAVED:6443 \
--certificate-authority=/etc/kubernetes/pki/ca.crt \
--embed-certs=true
2、设置 kubeconfig 文件中的用户条目
kubectl config --kubeconfig=/root/kubernetes/k8sconfig/token/kubeconfig \
set-credentials k8s-token \
--token=`kubectl -n k8s-token get secret $(kubectl -n k8s-token get sa/default -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"`
3、设置 kubeconfig 文件中的条目
kubectl config --kubeconfig=/root/kubernetes/k8sconfig/token/kubeconfig \
set-context k8s-token@kubernetes \
--cluster=k8s-token \
--user=k8s-token
五、将配置文件替换
1、备份原文件
mv ~/.kube/config{,.bak}
2、复制集群访问文件进行替换
cp /root/kubernetes/k8sconfig/token/kubeconfig /root/.kube/config
3、切换上下文
kubectl config use-context k8s-token@kubernetes && kubectl get po
提示使用tls 方式
六、重新替换原配置,对Token进行授权
1、还原原配置文件
cd ~/.kube && cat config.bak > config
2、定义角色权限
vim role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: role-Pod
namespace: jenkins
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- list
- watch
kubectl apply -f role.yaml
3、定义角色绑定
vim rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: rolebing-readPod
namespace: k8s-token
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: role-Pod
subjects:
- kind: ServiceAccount
name: default
namespace: k8s-token
kubectl apply -f rolebinding.yaml
4、再次更换配置文件
cp /root/kubernetes/k8sconfig/token/kubeconfig /root/.kube/config
更多推荐
已为社区贡献3条内容
所有评论(0)