1. 程式人生 > >kebernetes dashboard使用config和Token

kebernetes dashboard使用config和Token

安裝yaml:

kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

刪除yaml:

kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

kubectl get pods -n kube-system

檢視使用已經安裝
[
[email protected]
~]# kubectl get pods -n kube-system NAME READY STATUS RESTARTS AGE coredns-78fcdf6894-27npt 1/1 Running 1 9d coredns-78fcdf6894-mbg8n 1/1 Running 1 9d etcd-master 1/1 Running 1 9d kube-apiserver-master 1/1 Running 1 9d kube-controller-manager-master 1/1 Running 1 9d kube-flannel-ds-amd64-qdmsx 1/1 Running 0 9d kube-flannel-ds-amd64-rhb49 1/1 Running 6 9d kube-flannel-ds-amd64-sd6mr 1/1 Running 1 9d kube-proxy-g9n4d 1/1 Running 1 9d kube-proxy-wrqt8 1/1 Running 2 9d kube-proxy-x7vc2 1/1 Running 0 9d kube-scheduler-master 1/1 Running 1 9d kubernetes-dashboard-767dc7d4d-k4dbh 1/1 Running 0 2m 安裝成功
[[email protected] ~]# kubectl get svc -n kube-system
NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
kube-dns               ClusterIP   10.96.0.10      <none>        53/UDP,53/TCP   9d
kubernetes-dashboard   ClusterIP   10.97.213.220   <none>        443/TCP         1m

使用打補丁的方式,給定一個埠

kubectl patch svc kubernetes-dashboard -p '{"spec":{"type":"NodePort"}}' -n kube-system

[[email protected] ~]# kubectl patch svc kubernetes-dashboard -p '{"spec":{"type":"NodePort"}}' -n kube-system
service/kubernetes-dashboard patched

然後再次檢視:
[[email protected] ~]# kubectl get svc -n kube-system
NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
kube-dns               ClusterIP   10.96.0.10      <none>        53/UDP,53/TCP   9d
kubernetes-dashboard   NodePort    10.97.213.220   <none>        443:31198/TCP   7m

然後可以在節點的任何ip都可以訪問web介面
https://192.168.68.10:31198
注意:認證的主使用者上有什麼許可權,這裡就有什麼許可權

[[email protected] ~]# cd .kube/
[[email protected] .kube]# ls
cache  config  http-cache
[[email protected] .kube]# cp config kubernetes-admin.conf
拷貝出來,直接上傳,發現無法登入

刪除dashboard
kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

[[email protected] .kube]# kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
secret "kubernetes-dashboard-certs" deleted
serviceaccount "kubernetes-dashboard" deleted
role.rbac.authorization.k8s.io "kubernetes-dashboard-minimal" deleted
rolebinding.rbac.authorization.k8s.io "kubernetes-dashboard-minimal" deleted
deployment.apps "kubernetes-dashboard" deleted
service "kubernetes-dashboard" deleted

######################################################
我們給dashboard單獨建立一個證書

[[email protected] .kube]# cd /etc/kubernetes/pki/
[[email protected] pki]# ls
apiserver.crt              apiserver.key                 ca.crt  front-proxy-ca.crt      front-proxy-client.key  jesse.key
apiserver-etcd-client.crt  apiserver-kubelet-client.crt  ca.key  front-proxy-ca.key      jesse.crt               sa.key
apiserver-etcd-client.key  apiserver-kubelet-client.key  etcd    front-proxy-client.crt  jesse.csr               sa.pub

生成證書:

[[email protected] pki]# (umask 077; openssl genrsa -out dashboard.key 2048)
Generating RSA private key, 2048 bit long modulus
.................................................................................+++
..............+++
e is 65537 (0x10001)


建立證書籤署請求:
openssl req -new -key dashboard.key -out dashboard.csr -subj "/O=jesse/CN=dashboard"
dashboard如果有域名的話,一定寫域名

利用ca.crt和ca.key給剛剛建立的簽證
openssl x509 -req -in dashboard.csr -CA ca.crt  -CAkey ca.key -CAcreateserial -out dashboard.crt -days 365

[[email protected] pki]# openssl x509 -req -in dashboard.csr -CA ca.crt  -CAkey ca.key -CAcreateserial -out dashboard.crt -days 365
Signature ok
subject=/O=jesse/CN=dashboard
Getting CA Private Key
簽署完成


我們現在將剛剛建立的私鑰和證書建立一個secret
kubectl create secret generic dashboard-cert -n kube-system --from-file=dashboard.crt=./dashboard.crt --from-file=dashboard.key=./dashboard.key

[[email protected] pki]# kubectl create secret generic dashboard-cert -n kube-system --from-file=dashboard.crt=./dashboard.crt --from-file=dashboard.key=./dashboard.key
secret/dashboard-cert created

檢視是否在系統中新增:
kubectl get secret -n kube-system

[[email protected] pki]# kubectl get secret -n kube-system
NAME                                             TYPE                                  DATA      AGE
attachdetach-controller-token-9dtnk              kubernetes.io/service-account-token   3         9d
bootstrap-signer-token-rcd26                     kubernetes.io/service-account-token   3         9d
certificate-controller-token-6kxxj               kubernetes.io/service-account-token   3         9d
clusterrole-aggregation-controller-token-6czpt   kubernetes.io/service-account-token   3         9d
coredns-token-shzjx                              kubernetes.io/service-account-token   3         9d
cronjob-controller-token-d6rv2                   kubernetes.io/service-account-token   3         9d
daemon-set-controller-token-vm2zh                kubernetes.io/service-account-token   3         9d
dashboard-cert                                   Opaque                                2         1m  #已經生效
default-token-svvdz                              kubernetes.io/service-account-token   3         9d
deployment-controller-token-tjkk6                kubernetes.io/service-account-token   3         9d
disruption-controller-token-k95r5                kubernetes.io/service-account-token   3         9d
endpoint-controller-token-t92ng                  kubernetes.io/service-account-token   3         9d
expand-controller-token-zhv94                    kubernetes.io/service-account-token   3         9d
flannel-token-4m6lp                              kubernetes.io/service-account-token   3         9d
generic-garbage-collector-token-q44gt            kubernetes.io/service-account-token   3         9d
horizontal-pod-autoscaler-token-7lr9r            kubernetes.io/service-account-token   3         9d
job-controller-token-m2wtt                       kubernetes.io/service-account-token   3         9d
kube-proxy-token-t57kk                           kubernetes.io/service-account-token   3         9d
kubernetes-dashboard-key-holder                  Opaque                                2         38m
namespace-controller-token-q52hc                 kubernetes.io/service-account-token   3         9d
node-controller-token-t4rhn                      kubernetes.io/service-account-token   3         9d
persistent-volume-binder-token-4wjnc             kubernetes.io/service-account-token   3         9d
pod-garbage-collector-token-p9csq                kubernetes.io/service-account-token   3         9d
pv-protection-controller-token-9xz9s             kubernetes.io/service-account-token   3         9d
pvc-protection-controller-token-ptq5x            kubernetes.io/service-account-token   3         9d
replicaset-controller-token-k9bnc                kubernetes.io/service-account-token   3         9d
replication-controller-token-4v225               kubernetes.io/service-account-token   3         9d
resourcequota-controller-token-g4k4r             kubernetes.io/service-account-token   3         9d
service-account-controller-token-s99cb           kubernetes.io/service-account-token   3         9d
service-controller-token-ljtdf                   kubernetes.io/service-account-token   3         9d
statefulset-controller-token-zb4rp               kubernetes.io/service-account-token   3         9d
token-cleaner-token-x8vd6                        kubernetes.io/service-account-token   3         9d
ttl-controller-token-tvdfx                       kubernetes.io/service-account-token   3         9d
繼續建立:
[[email protected] pki]# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
secret/kubernetes-dashboard-certs created
serviceaccount/kubernetes-dashboard created
role.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
deployment.apps/kubernetes-dashboard created
service/kubernetes-dashboard created
使用Token認證的方式
[[email protected] pki]# kubectl create serviceaccount dashboard-admin -n kube-system
serviceaccount/dashboard-admin created
[[email protected] pki]# kubectl get sa -n kube-system
NAME                                 SECRETS   AGE
attachdetach-controller              1         9d
bootstrap-signer                     1         9d
certificate-controller               1         9d
clusterrole-aggregation-controller   1         9d
coredns                              1         9d
cronjob-controller                   1         9d
daemon-set-controller                1         9d
dashboard-admin                      1         49s  #成功
default                              1         9d
deployment-controller                1         9d
disruption-controller                1         9d
endpoint-controller                  1         9d
expand-controller                    1         9d
flannel                              1         9d
generic-garbage-collector            1         9d
horizontal-pod-autoscaler            1         9d
job-controller                       1         9d
kube-proxy                           1         9d
kubernetes-dashboard                 1         16m
namespace-controller                 1         9d
node-controller                      1         9d
persistent-volume-binder             1         9d
pod-garbage-collector                1         9d
pv-protection-controller             1         9d
pvc-protection-controller            1         9d
replicaset-controller                1         9d
replication-controller               1         9d
resourcequota-controller             1         9d
service-account-controller           1         9d
service-controller                   1         9d
statefulset-controller               1         9d
token-cleaner                        1         9d
ttl-controller                       1         9d


kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin

[[email protected] pki]# kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
clusterrolebinding.rbac.authorization.k8s.io/dashboard-cluster-admin created


[[email protected] pki]# kubectl get secret -n kube-system
NAME                                             TYPE                                  DATA      AGE
attachdetach-controller-token-9dtnk              kubernetes.io/service-account-token   3         10d
bootstrap-signer-token-rcd26                     kubernetes.io/service-account-token   3         10d
certificate-controller-token-6kxxj               kubernetes.io/service-account-token   3         10d
clusterrole-aggregation-controller-token-6czpt   kubernetes.io/service-account-token   3         10d
coredns-token-shzjx                              kubernetes.io/service-account-token   3         10d
cronjob-controller-token-d6rv2                   kubernetes.io/service-account-token   3         10d
daemon-set-controller-token-vm2zh                kubernetes.io/service-account-token   3         10d
dashboard-admin-token-8bnk8                      kubernetes.io/service-account-token   3         8m   #建立成功
dashboard-cert                                   Opaque                                2         30m
default-token-svvdz                              kubernetes.io/service-account-token   3         10d
deployment-controller-token-tjkk6                kubernetes.io/service-account-token   3         10d
disruption-controller-token-k95r5                kubernetes.io/service-account-token   3         10d
endpoint-controller-token-t92ng                  kubernetes.io/service-account-token   3         10d
expand-controller-token-zhv94                    kubernetes.io/service-account-token   3         10d
flannel-token-4m6lp                              kubernetes.io/service-account-token   3         9d
generic-garbage-collector-token-q44gt            kubernetes.io/service-account-token   3         10d
horizontal-pod-autoscaler-token-7lr9r            kubernetes.io/service-account-token   3         10d
job-controller-token-m2wtt                       kubernetes.io/service-account-token   3         10d
kube-proxy-token-t57kk                           kubernetes.io/service-account-token   3         10d
kubernetes-dashboard-certs                       Opaque                                0         24m
kubernetes-dashboard-key-holder                  Opaque                                2         1h
kubernetes-dashboard-token-qf87c                 kubernetes.io/service-account-token   3         24m
namespace-controller-token-q52hc                 kubernetes.io/service-account-token   3         10d
node-controller-token-t4rhn                      kubernetes.io/service-account-token   3         10d
persistent-volume-binder-token-4wjnc             kubernetes.io/service-account-token   3         10d
pod-garbage-collector-token-p9csq                kubernetes.io/service-account-token   3         10d
pv-protection-controller-token-9xz9s             kubernetes.io/service-account-token   3         10d
pvc-protection-controller-token-ptq5x            kubernetes.io/service-account-token   3         10d
replicaset-controller-token-k9bnc                kubernetes.io/service-account-token   3         10d
replication-controller-token-4v225               kubernetes.io/service-account-token   3         10d
resourcequota-controller-token-g4k4r             kubernetes.io/service-account-token   3         10d
service-account-controller-token-s99cb           kubernetes.io/service-account-token   3         10d
service-controller-token-ljtdf                   kubernetes.io/service-account-token   3         10d
statefulset-controller-token-zb4rp               kubernetes.io/service-account-token   3         10d
token-cleaner-token-x8vd6                        kubernetes.io/service-account-token   3         10d
ttl-controller-token-tvdfx                       kubernetes.io/service-account-token   3         10d

檢視一下Token資訊:

kubectl describe secret dashboard-admin-token-8bnk8 -n kube-system

[[email protected] pki]# kubectl describe secret dashboard-admin-token-8bnk8 -n kube-system
Name:         dashboard-admin-token-8bnk8
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name=dashboard-admin
              kubernetes.io/service-account.uid=1fe0b1f6-b830-11e8-9195-000c29f33006

Type:  kubernetes.io/service-account-token

Data
====
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tOGJuazgiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiMWZlMGIxZjYtYjgzMC0xMWU4LTkxOTUtMDAwYzI5ZjMzMDA2Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.eqXuTpMrkGj88HoxH4P5Ou0sponWDIE6Sw3c_zpJpcpCji54Vo3YHSQaspX2GoYX9t-WIMtGMXdqX4KE7AjKHqTwf3SDBvt9PZUOpH98QMnmg9q_9Bnd9sPpq5OOWAEXZpwWJYi_hK6gd61H1r2T5uau_TyDelsmZ0WP0AjSGVR39xuIcMzUIj4BONgyVBcU2cI0tR4svTJoICPWTO7pxGblZgON0iDISiXRua2kOeVymuOM7e5HpUutltn704AELjBLJck-zFjSGwz4WcnGBAa8H2-akNkjzl-vjog7mLef1He7AOCzUR49tUwPBYV5eeuCTAk3vSH-W7CCDORNoA
ca.crt:     1025 bytes
namespace:  11 bytes


[[email protected] pki]# kubectl get svc -n kube-system
NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
kube-dns               ClusterIP   10.96.0.10      <none>        53/UDP,53/TCP   10d
kubernetes-dashboard   ClusterIP   10.108.38.237   <none>        443/TCP         28m


重新生成埠:
kubectl patch svc kubernetes-dashboard -p '{"spec":{"type":"NodePort"}}' -n kube-system

[[email protected] pki]# kubectl get svc -n kube-system
NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
kube-dns               ClusterIP   10.96.0.10      <none>        53/UDP,53/TCP   10d
kubernetes-dashboard   NodePort    10.108.38.237   <none>        443:31619/TCP   30m


kubeconfig登入

建立證書流程:
設定個許可權小一些的,只能對名稱空間有管理許可權
在def-ns-admin中建立
kubectl create serviceaccount def-ns-admin -n default

[[email protected] pki]# kubectl create serviceaccount def-ns-admin -n default
serviceaccount/def-ns-admin created

kubectl create rolebinding def-ns-admin --clusterrole=admin --serviceaccount=default:def-ns-admin

[[email protected] pki]# kubectl create rolebinding def-ns-admin --clusterrole=admin --serviceaccount=default:def-ns-admin
rolebinding.rbac.authorization.k8s.io/def-ns-admin created

獲取secret:
[[email protected] pki]# kubectl get secret
NAME                       TYPE                                  DATA      AGE
def-ns-admin-token-87t8n   kubernetes.io/service-account-token   3         4m
default-token-2xnhm        kubernetes.io/service-account-token   3         7d


[[email protected] pki]# kubectl describe secret def-ns-admin-token-87t8n
Name:         def-ns-admin-token-87t8n
Namespace:    default
Labels:       <none>
Annotations:  kubernetes.io/service-account.name=def-ns-admin
              kubernetes.io/service-account.uid=6445ddc0-b837-11e8-bcca-000c291251da

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1025 bytes
namespace:  7 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImRlZi1ucy1hZG1pbi10b2tlbi04N3Q4biIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJkZWYtbnMtYWRtaW4iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI2NDQ1ZGRjMC1iODM3LTExZTgtYmNjYS0wMDBjMjkxMjUxZGEiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpkZWYtbnMtYWRtaW4ifQ.ab1Vi0RK304mWbHNUwUIK9K0vbWYcq8TTbwAp29wCqkPv5qf54A-ghJvG0VO3ezbDPAMoLE48HQ2ExyUHT0G3j8G7gd5854u4Wq0ceJEUuPaJGo1e3OikcMxAfigSfDeEYOPHyUY7my3Yqwg1gC90kiMIIvUA1jN51lbpWkRiiQ3lnYBLE_QfR36SettzKuljtveBLBpJz6eZJG1S4Pgqn_xaOny9UVButgjIivXB2Eh2g0bQQU2uuoZn_YzKQ-7Zjo4tazDxv0d1uiYtkttArJyHkXQ5_ODUXAtKEcEVfSo1XSw8eNHQe5V0WLBisMmenSRLz_Aoe1ZaYO0Y6BbAA

使用上面的Token登入的話只能管理namespace名稱空間
可以使用上面token 令牌登入,但是許可權不多。

##############################

##############################
使用配置檔案登入
cd /etc/kubernetes/pki
kubectl config set-cluster kubernetes --certificate-authority=./ca.crt --server="https://192.168.146.10:6443" --embed-certs=true --kubeconfig=/root/def-ns-admin.conf

建立一個叢集:
[[email protected] pki]# kubectl config set-cluster kubernetes --certificate-authority=./ca.crt --server="https://192.168.146.10:6443" --embed-certs=true --kubeconfig=/root/def-ns-admin.conf
Cluster "kubernetes" set.


檢視:
[[email protected] pki]# kubectl config view --kubeconfig=/root/def-ns-admin.conf 
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: REDACTED
    server: https://192.168.146.10:6443
  name: kubernetes
contexts: []
current-context: ""
kind: Config
preferences: {}
users: []


設定使用者賬戶:
kubectl get secret

[[email protected] pki]# kubectl get secret
NAME                       TYPE                                  DATA      AGE
def-ns-admin-token-87t8n   kubernetes.io/service-account-token   3         36m
default-token-2xnhm        kubernetes.io/service-account-token   3         7d
[[email protected] pki]# kubectl describe secret def-ns-admin-token-87t8n
Name:         def-ns-admin-token-87t8n
Namespace:    default
Labels:       <none>
Annotations:  kubernetes.io/service-account.name=def-ns-admin
              kubernetes.io/service-account.uid=6445ddc0-b837-11e8-bcca-000c291251da

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1025 bytes
namespace:  7 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImRlZi1ucy1hZG1pbi10b2tlbi04N3Q4biIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJkZWYtbnMtYWRtaW4iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI2NDQ1ZGRjMC1iODM3LTExZTgtYmNjYS0wMDBjMjkxMjUxZGEiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpkZWYtbnMtYWRtaW4ifQ.ab1Vi0RK304mWbHNUwUIK9K0vbWYcq8TTbwAp29wCqkPv5qf54A-ghJvG0VO3ezbDPAMoLE48HQ2ExyUHT0G3j8G7gd5854u4Wq0ceJEUuPaJGo1e3OikcMxAfigSfDeEYOPHyUY7my3Yqwg1gC90kiMIIvUA1jN51lbpWkRiiQ3lnYBLE_QfR36SettzKuljtveBLBpJz6eZJG1S4Pgqn_xaOny9UVButgjIivXB2Eh2g0bQQU2uuoZn_YzKQ-7Zjo4tazDxv0d1uiYtkttArJyHkXQ5_ODUXAtKEcEVfSo1XSw8eNHQe5V0WLBisMmenSRLz_Aoe1ZaYO0Y6BbAA


DEF_NS_ADMIN_TOKEN=$(kubectl get secret def-ns-admin-token-87t8n -o jsonpath={.data.token} | base64 -d)

[[email protected] pki]# DEF_NS_ADMIN_TOKEN=$(kubectl get secret def-ns-admin-token-87t8n -o jsonpath={.data.token} | base64 -d)
[[email protected] pki]# 


[[email protected] pki]# echo $DEF_NS_ADMIN_TOKEN
eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImRlZi1ucy1hZG1pbi10b2tlbi04N3Q4biIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJkZWYtbnMtYWRtaW4iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI2NDQ1ZGRjMC1iODM3LTExZTgtYmNjYS0wMDBjMjkxMjUxZGEiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpkZWYtbnMtYWRtaW4ifQ.ab1Vi0RK304mWbHNUwUIK9K0vbWYcq8TTbwAp29wCqkPv5qf54A-ghJvG0VO3ezbDPAMoLE48HQ2ExyUHT0G3j8G7gd5854u4Wq0ceJEUuPaJGo1e3OikcMxAfigSfDeEYOPHyUY7my3Yqwg1gC90kiMIIvUA1jN51lbpWkRiiQ3lnYBLE_QfR36SettzKuljtveBLBpJz6eZJG1S4Pgqn_xaOny9UVButgjIivXB2Eh2g0bQQU2uuoZn_YzKQ-7Zjo4tazDxv0d1uiYtkttArJyHkXQ5_ODUXAtKEcEVfSo1XSw8eNHQe5V0WLBisMmenSRLz_Aoe1ZaYO0Y6BbAA



kubectl config set-credentials def-ns-admin --token=$DEF_NS_ADMIN_TOKEN  --kubeconfig=/root/def-ns-admin.conf

[[email protected] pki]# kubectl config set-credentials def-ns-admin --token=$DES_NS_ADMIN_TOKEN  --kubeconfig=/root/def-ns-admin.conf
User "def-ns-admin" set.


kubectl config view --kubeconfig=/root/def-ns-admin.conf 


kubectl config set-context [email protected] --cluster=kubernets --user=def-ns-admin --kubeconfig=/root/def-ns-admin.conf

[[email protected] pki]# kubectl config view --kubeconfig=/root/def-ns-admin.conf 
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: REDACTED
    server: https://192.168.146.10:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernets
    user: def-ns-admin
  name: [email protected]
current-context: ""
kind: Config
preferences: {}
users:
- name: def-ns-admin
  user:
    token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImRlZi1ucy1hZG1pbi10b2tlbi13c2NmNCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJkZWYtbnMtYWRtaW4iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJlZjBiOWRlYS1iMjNjLTExZTgtODI1Ny0wMDBjMjkxMjUxZGEiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpkZWYtbnMtYWRtaW4ifQ.sBkl_kKX_ILqVco_bRf5ceDDF-bxklnqDyVMj8gjXxD5LouEk2SjtP4IIKcRV7_c-smDH9Nc0OpZcQYtMR29fS3n1j2_UHTFMLc-uO8aSHKfI6EiM8wyaQQlz-5S5r2QLLSapMmlAE5ZIRpgPz1OAO59Cx15PeJOwckCSFQ3erEkDYUluXNv6KYpZfLsaOStxbxXOHG1oRdV1P1wcX0R0BxMqE658K7cbxv4x3LfOr2OH4kblfntugdw0z7Nkh9ClXmXbaKmOKSorat1mtnniW-Bb0w5HOPJbsKAhDXDlkMPIbwtE9XhNEd5Vl-omEKkQQtR--DJoblVvs34yA8XVA


[[email protected] pki]# kubectl config set-context [email protected] --cluster=kubernets --user=def-ns-admin --kubeconfig=/root/def-ns-admin.conf
Context "[email protected]" created.


切換使用者:
kubectl config use-context [email protected] --kubeconfig=/root/def-ns-admin.conf

[[email protected] pki]# kubectl config use-context [email protected] --kubeconfig=/root/def-ns-admin.conf
Switched to context "[email protected]".

檢視是否生效:
[[email protected] pki]# kubectl config view --kubeconfig=/root/def-ns-admin.conf 
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: REDACTED
    server: https://192.168.146.10:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernets
    user: def-ns-admin
  name: [email protected]
current-context: [email protected]
kind: Config
preferences: {}
users:
- name: def-ns-admin
  user:
    token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImRlZi1ucy1hZG1pbi10b2tlbi13c2NmNCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJkZWYtbnMtYWRtaW4iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJlZjBiOWRlYS1iMjNjLTExZTgtODI1Ny0wMDBjMjkxMjUxZGEiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpkZWYtbnMtYWRtaW4ifQ.sBkl_kKX_ILqVco_bRf5ceDDF-bxklnqDyVMj8gjXxD5LouEk2SjtP4IIKcRV7_c-smDH9Nc0OpZcQYtMR29fS3n1j2_UHTFMLc-uO8aSHKfI6EiM8wyaQQlz-5S5r2QLLSapMmlAE5ZIRpgPz1OAO59Cx15PeJOwckCSFQ3erEkDYUluXNv6KYpZfLsaOStxbxXOHG1oRdV1P1wcX0R0BxMqE658K7cbxv4x3LfOr2OH4kblfntugdw0z7Nkh9ClXmXbaKmOKSorat1mtnniW-Bb0w5HOPJbsKAhDXDlkMPIbwtE9XhNEd5Vl-omEKkQQtR--DJoblVvs34yA8XVA
已經生效

將上面的資訊儲存成.conf的檔案或者將/root/def-ns-admin.conf 檔案拷貝出來就可以直接使用配置檔案登入