一、创建新的名称空间

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

在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐