k8s go client 클러스터 커넥션

# 처음 kubectl 로 kubernetes(k8s) 클러스터에 접속하려면 다음의 과정이 필요하다.
# 사용자인 설정
kubectl config set-credentials ysoftman --token=abc123

# ysoftman1-cluster 라는 클러스터 설정
kubectl config set-cluster ysoftman1-cluster --insecure-skip-tls-verify=true --server https://ysoftman1:6443

# ysoftman2-cluster 라는 클러스터 설정
kubectl config set-cluster ysoftman2-cluster --insecure-skip-tls-verify=true --server https://ysoftman2:6443

# 컨텍스트는 cluster + user 를 조합해서 접속 정보를 나타낸다.
# ysoftman1-context 컨텍스트 설정
kubectl config set-context ysoftman1-context --cluster=ysoftman1-cluster --user=ysoftman

# ysoftman2-context 컨텍스트 설정
kubectl config set-context ysoftman2-context --cluster=ysoftman2-cluster --user=ysoftman

# 위 2개의 클러스터 중 ysoftman1-context 를 사용
# ysoftman 계정을 이용해 ysoftman1-cluster 에 접속(요청)하게 된다.
kubectl config use-context ysoftman1-context

# 위와 같이 설정하면 ${HOME}/.kube/config 파일이 다음과 같이 생성된다.
apiVersion: v1
clusters:
- cluster:
    insecure-skip-tls-verify: true
    server: https://ysoftman1:6443
  name: ysoftman1-cluster
- cluster:
    insecure-skip-tls-verify: true
    server: https://ysoftman2:6443
  name: ysoftman2-cluster
contexts:
- context:
    cluster: ysoftman1-cluster
    user: ysoftman
  name: ysoftman1-context
- context:
    cluster: ysoftman2-cluster
    user: ysoftman
  name: ysoftman2-context
current-context: ysoftman1-context
kind: Config
preferences: {}
users:
- name: ysoftman
  user:
    token:
    abc123

# 설정된 클러스터 확인
kubectl config get-contexts

# 현재 사용중인 클러스터 확인
kubectl config current-context

# 클러스터를 변경해서 작업(요청)하려면 컨텍스트를 바꿔야 한다.
kubectl config use-context 사용할_컨텍스트

# golang 등의 client 에서는 kubectl config 파일을 그대로 사용할 수 있다.
https://kubernetes.io/docs/tasks/administer-cluster/access-cluster-api/#go-client

# 참고로 golang client 로 N 개의 클러스터에 동시 접속이 필요한 경우
# current-context 로 구분된 N 개의 config(.yaml) 파일을 만들어
# N 개의 커넥터를 만들어 사용했다.

comments:

댓글 쓰기