context 란?
쿠버네티스 클러스터를 관리하는 CLI 도구인 kubectl에는 환경을 바꿔가며 Config 파일을 이용하여 클러스터를 관리할 수 있는 context 라는 기능이 존재한다. CLI를 활용하여 어느 쿠버네티스 클러스터를 컨트롤할지 결정할 수 있다.
kubectl config
k8s설정은 다음과 같다.
- kubeconfig 내용 확인 : kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://xxx.xxx.xxx:6443
name: 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: DATA+OMITTED
client-key-data: DATA+OMITTED
해당 파일은 kubectl명령어가 api-server에 접근할 때 사용할 인증 정보를 가지고 있다.
이 쿠버네티스 설정(이하 kubeconfig)은 크게 3가지 부분으로 구성되어 있다.
clusters
생성한 클러스터 목록과 각 클러스터의 이름, 서버 주소 등
우리가 접속할 서버 정보와 관련된 것이며 서버는 여러개 있을 수 있다. 원한다면 쿠버네티스 클러스터를 여러개 설정할 수 있다.
- cluster.local : 설정하지 않아도 기본적으로 구성되는 클러스터 이름
- client-authority-data : kubectl이 어떤 서버에 요청할 것인지에 대한 정보와 CA 인증서를 base64로 인코딩한 것이다.
- server : 실제 api-server의 주소
users
인증받을 사용자 정보
- name : 사용자의 계정명
- client-certificate-data, client-key-data : 사용자가 사용할 클라이언트의 인증서(공개키)와 개인키
context
쿠버네티스 API 서버 정보(IP 또는 도메인)
- clusters 항목과 users 항목을 조합해서 만들어지므로 여러 context가 나올 수 있다.
Context 확인
# 컨텍스트 리스트 조회
$ kubectl config get-contexts
# 클러스터 목록 조회
$ kubectl config get-clusters
# 현재 컨텍스트 조회
$ kubectl config current-context
# 새로운 컨텍스트 생성
$ kubectl config set-context [컨텍스트]
# 특정 컨텍스트 사용 (전환)
$ kubectl config use-context [컨텍스트]
# 특정 컨텍스트 삭제
$ kubectl config unset contexts.[컨텍스트]
'STUDY > Data Engineering' 카테고리의 다른 글
01장 신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 애플리케이션 (1) | 2024.01.07 |
---|---|
[k8s] The connection to the server localhost:8080 was refused 해결방법 (0) | 2023.09.09 |
[kodekloud] 05 Practice Test Cluster Upgrade Process 풀이 (0) | 2023.08.24 |
[인프런] 왕초보도 따라하는 도커 기초 (2) (0) | 2023.03.30 |
[인프런] 왕초보도 따라하는 도커 기초 (1) (0) | 2023.03.30 |