[Kubernetes] Cluster 접근 구성
Updated:
개요
- kubeconfig를 이용하여 접근 구성
- kubeconfig는 클러스터에 대한 접근을 구성하는 데 사용되는 파일(
$HOME/.kube/config
) - context(cluster, user, namespace) 및 authentication mechanisms로 구성
- context name으로 구분
apiVersion: v1 clusters: - cluster: certificate-authority-data: ... server: https://127.0.0.1:6443 name: cluster-a contexts: - context: cluster: cluster-a user: kubernetes-admin-cluster-a name: kubernetes-admin@cluster-a current-context: kubernetes-admin@cluster-a kind: Config preferences: {} users: - name: kubernetes-admin user: client-certificate-data: ... client-key-data: ...
single cluster 접근 구성
- cluster 이름 설정
inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml
파일의cluster_name
필드를 수정하여 최초 설치 시 적용 가능- 설치 이후에는 kubeconfig 파일 수정
- 조회
- contexts list
kubectl config get-contexts
- 설정
kubectl config view
- contexts list
- 변경
kubectl config use-context ${context}
- 기본 네임스페이스가 ${context}로 변경
- 삭제
- context
kubectl config unset contexts.${name}
- cluster
kubectl config unset clusters.${name}
- user
kubectl config unset users.${name}
- context
- 등록
kubectl config set-context context-test-0 --cluster=cluster-0 --user=kubernetes-admin --namespace=namespace-test-0
$HOME/.kube/config
파일의 contexts 필드에 추가됨
multi cluster 접근 구성
- A cluster에서 B 클러스터 접근 가능
- B cluster의
$HOME/.kube/config
파일을 이름을 변경(ex : b-config)하고 server 필드의 IP 수정 후 A 클러스터의$HOME/.kube/
에 복사- A cluster의 user 이름과 같으면 인증 에러가 발생하므로 같다면 변경 필요
- context 등록
export KUBECONFIG=$KUBECONFIG:$HOME/.kube/b-cluster
- config에 병합되는 방식
- 확인
kubectl config view
- 접근 방법 1
kubectl xxx --kubeconfig $HOME/.kube/b-config
- 접근 방법 2
kubectl xxx --context=${context}
- 접근 방법 3
kubectl config use-context ${context}
kubectl xxx