|NO.Z.00382|——————————|CloudNative|——|KuberNetes&CI/CD.V20|-----------------------------------------------------------|Jenkins.v08|kubeconfig多叢集配置.v02|
阿新 • • 發佈:2022-04-01
[CloudNative:KuberNetes&CI/CD.V20] [Applications.KuberNetes] [|Jenkins|kubeconfig多叢集配置|]
一、檢視k8s叢集配置
二、新新增k8s叢集:test### --- 檢視kubeconfig檔案配置資訊 [root@k8s-master01 ~]# cat ~/.kube/config apiVersion: v1 clusters: - cluster: certificate-authority-data: LS0tLS1CRUd**************** server: https://192.168.1.11:6443 name: kubernetes # 儲存了一個叢集,名稱就是kubernetes contexts: - context: cluster: kubernetes user: kubernetes-admin name: kubernetes-admin@kubernetes current-context: kubernetes-admin@kubernetes kind: Config preferences: {} users: - name: kubernetes-admin user: client-certificate-data: LS0tLS1CRUdJ**************** client-key-data: LS0tLS1CRUdJTiBSU0Eg****************
### --- 新新增一個k8s叢集:test ~~~ # 檢視叢集地址 [root@k8s-master01 pki]# pwd /etc/kubernetes/pki [root@k8s-master01 pki]# kubectl cluster-info Kubernetes control plane is running at https://192.168.1.11:6443 CoreDNS is running at https://192.168.1.11:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
~~~ # 拷貝kubeconfig檔案到當前目錄下
[root@k8s-master01 pki]# cp ~/.kube/config ./multi-cluster.yaml
~~~ # 建立一個k8s叢集test自定義一個kubeconfig檔案,建立多個叢集 [root@k8s-master01 pki]# kubectl config set-cluster test --certificate-authority=ca.pem --embed-certs=true --server=https://192.168.1.11:6443 --kubeconfig=multi-cluster.yaml Cluster "test" set.
### --- 為test叢集配置使用者
~~~ # 為k8s-test叢集設定使用者
~~~ 叢集、使用者的名稱不可以設定為一樣的,設定為一樣的,會把之前的覆蓋掉
[root@k8s-master01 pki]# kubectl config set-credentials test-admin --client-certificate=admin.pem --client-key=admin-key.pem --embed-certs=true --kubeconfig=multi-cluster.yaml
User "test-admin" set.
### --- 為test叢集設定上下文
~~~ # 為k8s-test叢集設定上下文
[root@k8s-master01 pki]# kubectl config set-context test --cluster=test --user=test-admin --kubeconfig=multi-cluster.yaml
Context "test" created.
### --- 檢視test叢集建立結果
[root@k8s-master01 pki]# cat multi-cluster.yaml
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZ
server: https://192.168.1.11:6443
name: kubernetes # 第一次建立的k8s叢集:kubernetes
- cluster:
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJ
server: https://192.168.1.11:6443
name: test # 新建立的k8s叢集
contexts:
- context:
cluster: kubernetes
user: kubernetes-admin
name: kubernetes-admin@kubernetes
- context:
cluster: test
user: test-admin
name: test
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
user:
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ
client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLR
- name: test-admin
user:
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ
client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLR
### --- kubernetes和test這2個叢集之間切換
~~~ # 切換到test叢集下
[root@k8s-master01 pki]# kubectl --kubeconfig=multi-cluster.yaml config use-context test
Switched to context "test".
~~~ # 檢視當前叢集下的pod狀態
~~~ --kubeconfig=multi-cluster.yaml若是不新增這個引數的話,預設讀的是 ~/.kube/config這個檔案
[root@k8s-master01 pki]# kubectl get po --kubeconfig=multi-cluster.yaml
~~~ # 切換到預設kubernetes叢集下
~~~ 預設叢集沒有設定Context;所以不能切換
[root@k8s-master01 pki]# kubectl --kubeconfig=multi-cluster.yaml config use-context kubernetes
error: no context exists with the name: "kubernetes"
三、新新增k8s叢集:uat
### --- 新新增一個叢集為uat
~~~ # 建立一個k8s叢集test自定義一個kubeconfig檔案,建立多個叢集
[root@k8s-master01 pki]# kubectl config set-cluster uat --certificate-authority=ca.pem --embed-certs=true --server=https://192.168.1.11:6443 --kubeconfig=multi-cluster.yaml
Cluster "uat" set.
### --- 為uat叢集配置使用者
~~~ # 為k8s-test叢集設定使用者
~~~ 叢集、使用者的名稱不可以設定為一樣的,設定為一樣的,會把之前的覆蓋掉
[root@k8s-master01 pki]# kubectl config set-credentials uat-admin --client-certificate=admin.pem --client-key=admin-key.pem --embed-certs=true --kubeconfig=multi-cluster.yaml
User "uat-admin" set.
### --- 為uat叢集設定上下文
~~~ # 為k8s-test叢集設定上下文
[root@k8s-master01 pki]# [root@k8s-master01 pki]# kubectl config set-context uat --cluster=uat --user=uat-admin --kubeconfig=multi-cluster.yaml
Context "uat" created.
四、叢集之間切換:kubernetes、test、uat、### --- 叢集之間切換
~~~ # 切換到uat叢集下
[root@k8s-master01 pki]# kubectl --kubeconfig=multi-cluster.yaml config use-context uat
Switched to context "uat".
~~~ # 切換到test叢集下
[root@k8s-master01 pki]# kubectl --kubeconfig=multi-cluster.yaml config use-context test
Switched to context "test".
五、建立叢集管理:secrets
### --- 建立叢集管理:secrets
~~~ # 切換到test叢集下
[root@k8s-master01 pki]# kubectl --kubeconfig=multi-cluster.yaml config use-context test
Switched to context "test".
~~~ # 建立secret
~~~ 這個secret會掛載到kubectl下的root下的kubeconfig目錄下,用於管理多叢集
[root@k8s-master01 pki]# kubectl create secret generic multi-kube-config --from-file=multi-cluster.yaml
secret/multi-kube-config created
===============================END===============================
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor
來自為知筆記(Wiz)