Trước đây mình cứ tạo cluster k8s xong là mình lại
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Xong là mình kubectl get node lên là xong hehe.
Giờ bài toán đặt ra chỉ cần 1 file config là mình cũng có thể quản lý nhiều cluster k8s
https://ahmet.im/blog/mastering-kubeconfig/
Hướng dẫn chi tiết ở link trên nhé. Mình chỉ tổng hợp nhanh thứ mình cần đã:
Giờ bạn đang chỉ quản lý 1 cluster k8s bạn gõ
root@spinnaker-ubuntu16:~/.kube# kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://192.168.101.41:6443
name: kubernetes1
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://192.168.101.42:6443
name: kubernetes2
contexts:
- context:
cluster: kubernetes1
user: kubernetes-admin
name: kubernetes-admin@kubernetes1
- context:
cluster: kubernetes2
user: kubernetes-admin
name: kubernetes-admin@kubernetes2
current-context: kubernetes-admin@kubernetes1
kind: Config
preferences: {}
users:
- name: kubernetes-admin
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
ở Phần context thì bạn thấy name: kubernetes-admin@kubernetes2 và current-context: kubernetes-admin@kubernetes2
Giờ gõ test với context nhé:
root@spinnaker-ubuntu16:~/.kube# kubectl get pods --context=kubernetes-admin@kubernetes2
No resources found in default namespace.
Giờ muốn add nhiều cluster và context thì khảo link ở trên
>>>> sau khi bạn đã có nhiều config của nhiều cluster k8s, gõ context dài quá giờ switch qua, switch lại cho tiện.
root@work-space-u20:~/argocd# kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
k0s-cluster2 k0s-cluster2 admin-cluster2 default
k8s-cicd-stag-sc k8s-cicd-stag-sc k8s-cicd-stag-sc
* local local local
root@work-space-u20:~/argocd# kubectl config use-context k8s-cicd-stag-sc
Switched to context "k8s-cicd-stag-sc".