Untuk memange sebuah cluster diperlukan kubeconfig
file. Biasanya ini dapat ditemukan pada k3s cluster master node di /etc/rancher/k3s/k3s.yaml
.
Saya telah menyimpan k3s.yaml
pada ~/.kube/cofig masing masing master node. Dan memudahkan pemindahan kubeconfig
ke host dengan scp.
mkdir ~/.kube
scp user@cluster1-master:/etc/rancher/k3s/k3s.yaml ~/.kube/kubeconfig-cluster1.yaml
scp user@cluster2-master:/etc/rancher/k3s/k3s.yaml ~/.kube/kubeconfig-cluster2.yaml
ilyasa@testing:~$ mkdir ~/.kube
ilyasa@testing:~$ scp [email protected]:~/.kube/config.yaml ~/.kube/kubeconfig-cluster1.yaml
config.yaml
ilyasa@testing:~$ scp [email protected]:~/.kube/config.yaml ~/.kube/kubeconfig-cluster2.yaml
config.yaml 100% 2969 5.6KB/s 00:00
ilyasa@testing:~$ ls .kube/
kubeconfig-cluster1.yaml kubeconfig-cluster2.yaml
server: https://127.0.0.1:6443 --> https://10.10.10.52:6443
Setelahnya, untuk setiap kubeconfig harus mempunya name dan context yang berbeda.
Ubahlah konfig name dan context yang awalnya default
sesuai kebutuhan.
kubeconfig-cluster1.yaml
menjadi seperti iniapiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkekN>
server: https://10.10.10.52:6443
name: cluster-lxd
contexts:
- context:
cluster: cluster-lxd
user: ilyasa-a
name: cluster-lxd-context
current-context: cluster-lxd-context
kind: Config
preferences: {}
users:
- name: ilyasa-a
user:
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJrVENDQV>
client-key-data: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUtVRF>
kubeconfig-cluster2.yaml
menjadi seperti iniapiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkekN>
server: https://192.168.100.30:6443
name: cluster-pve
contexts:
- context:
cluster: cluster-pve
user: ilyasa-b
name: cluster-pve-context
current-context: cluster-pve-context
kind: Config
preferences: {}
users:
- name: ilyasa-b
user:
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJrakNDQV>
client-key-data: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUpvVF>
Untuk memange kedua clusters menggunakan kubectl , anda dapat memerge / menggabungkan dua kubeconfig menjadi 1 file:
export KUBECONFIG=~/.kube/kubeconfig-cluster1.yaml:~/.kube/kubeconfig-cluster2.yaml
kubectl config view --flatten > ~/.kube/config.yaml
sekarang gunakan kubeconfig yang telah di merge
export KUBECONFIG=~/.kube/config.yaml
Example :
ilyasa@testing:~$ export KUBECONFIG=~/.kube/kubeconfig-cluster1.yaml:~/.kube/kubeconfig-cluster2.yaml
ilyasa@testing:~$ kubectl config view --flatten > ~/.kube/config.yaml
ilyasa@testing:~$ export KUBECONFIG=~/.kube/config.yaml
ilyasa@testing:~$ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* cluster-lxd-context cluster-lxd ilyasa-a
cluster-pve-context cluster-pve ilyasa-b
ilyasa@testing:~$ kubectl config use-context cluster-pve-context
Switched to context "cluster-pve-context".
ilyasa@testing:~$ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
cluster-lxd-context cluster-lxd ilyasa-a
* cluster-pve-context cluster-pve ilyasa-b
ilyasa@testing:~$ kubectl get pods
NAME READY STATUS RESTARTS AGE
my-deployment-56957dc94c-5njsh 1/1 Terminating 0 47d
my-deployment-56957dc94c-d9jnt 1/1 Running 0 33m
my-deployment-56957dc94c-fz98b 1/1 Running 1 (42m ago) 47d
my-deployment-56957dc94c-nmzn9 1/1 Running 1 (39m ago) 47d
ilyasa@testing:~$