K8S context의 개념과 사용에 대해 간단히 정리한 포스트입니다. 🔥
Config 파일을 이용하여 여러 개의 클러스터에 쉽게 접근할 수 있도록 하는 것이 context입니다. kubectl을 이용하여 CLI로 쿠버네티스 작업을 할 때, 어느 클러스터 혹은 네임스페이스에 작업을 할지를 결정할 수 있습니다.
kubectl config
먼저, kubectl config view
를 이용해 현재 K8S 설정이 어떻게 되어있는지 알아봅시다!
» kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://kubernetes.docker.internal:6443
name: docker-desktop
- cluster:
insecure-skip-tls-verify: true
server: https://xxx.xxx.xxx:6443
name: flask-test-cluster-cluster
contexts:
- context:
cluster: docker-desktop
user: docker-desktop
name: docker-desktop
- context:
cluster: flask-test-cluster-cluster
user: dave.rhee_flask-test-cluster
name: flask-test-cluster-context
current-context: flask-test-cluster-context
kind: Config
preferences: {}
users:
- name: dave.rhee_flask-test-cluster
user:
token: REDACTED
- name: docker-desktop
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
kubectl config에는 몇 가지 살펴볼 영역들이 있습니다.
여러 개의 클러스터와 컨텍스트가 존재하는 경우, kubectl
명령어를 통해 어떤 컨텍스트에서 작업할 것인지를 명시해야 합니다.
전체 컨텍스트 목록과 현재 어떤 컨텍스트로 설정되어있는지는 아래 명령어를 통해 확인할 수 있습니다.
» kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
docker-desktop docker-desktop docker-desktop
* flask-test-cluster-context flask-test-cluster-cluster dave.rhee_flask-test-cluster
kubectl config use-context
명령어를 통해 컨텍스트를 스위치할 수 있습니다.
» kubectl config use-context docker-desktop
Switched to context "docker-desktop".
------------------------------------------------------------------------------------------------
» kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* docker-desktop docker-desktop docker-desktop
flask-test-cluster-context flask-test-cluster-cluster dave.rhee_flask-test-cluster
위에서 소개한대로 kubectl config use-context
를 통해 작업할 컨텍스트를 바꿀 수도 있지만, kubectx
라는 툴을 통해 더욱 쉽게 컨텍스트 스위치 작업을 할 수 있습니다.
kubectx GitHub
krew 설치 https://krew.sigs.k8s.io/docs/user-guide/setup/install/
Krew는 kubectl 플러그인을 쉽게 사용할 수 있도록 해주는 툴입니다.
kubectx 설치
# Homebrew로 설치하기
brew install kubectx
# Krew로 설치하기
kubectl krew install ctx
kubectx로 컨텍스트 확인 및 변경
현재 사용하고 있는 컨텍스트는 하이라이트되어 표시됩니다.
» kubectx flask-test-cluster-context
Switched to context "flask-test-cluster-context".
------------------------------------------------------------------------------------------------
~ » kubectx
docker-desktop
flask-test-cluster-context # 하이라이트
------------------------------------------------------------------------------------------------
~ » kubectx - # 이전 컨텍스트로 돌아가기
Switched to context "docker-desktop".
------------------------------------------------------------------------------------------------
~ » kubectx
docker-desktop # 하이라이트
flask-test-cluster-context
kubectl config view
명령어를 통해 현재 kubectl 설정 정보를 확인할 수 있습니다. 작업할 수 있는 클러스터, 컨텍스트, 사용자 목록 등을 볼 수 있는데, 컨텍스트를 스위치함으로써 작업 환경을 바꿀 수 있습니다. 쉽게 말해 현재 터미널에서 여러 개의 컨텍스트(그리고 클러스터)를 오가며 작업할 수 있는 것이죠!
kubectl config use-context
대신kubectx
를 사용하면, 컨텍스트에 관한 정보만을 빠르게 확인할 수 있고 컨텍스트 스위치도 간편하게 할 수 있습니다. 🎧