์—ฌ๋Ÿฌ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด ์ ‘์†ํ•  ํด๋Ÿฌ์Šคํ„ฐ ์ •๋ณด๋ฅผ KubeConfig์—์„œ ๊ด€๋ฆฌํ•œ๋‹ค. Cluster์™€ User๋ฅผ ์ •์˜ํ•˜๊ณ , ๋‘˜์˜ ์กฐํ•ฉ์ธ Context๋ฅผ ๋งŒ๋“ ๋‹ค.

1 minute read

์—ฌ๋Ÿฌ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด ์ ‘์†ํ•  ํด๋Ÿฌ์Šคํ„ฐ ์ •๋ณด๋ฅผ KubeConfig์—์„œ ๊ด€๋ฆฌํ•œ๋‹ค. Cluster์™€ User๋ฅผ ์ •์˜ํ•˜๊ณ , ๋‘˜์˜ ์กฐํ•ฉ์ธ Context๋ฅผ ๋งŒ๋“ ๋‹ค.

KubeConfig ์ƒ์„ฑ

KubeConfig ํŒŒ์ผ์„ ๊ตฌ์„ฑํ•œ๋‹ค. clusters, users, contexts๋ฅผ ์ฐจ๋ก€๋กœ ์ •์˜ํ•˜๋ฉด ๋œ๋‹ค.

apiVersion: v1
kind: Config

clusters:
  - name: development
    cluster:
      certificate-authority: fake-ca-file
      server: https://1.2.3.4
  - name: production
    cluster:
      certificate-authority: fake-ca-file
      server: https://5.6.7.8

users:
  - name: developer
    user:
      client-certificate: fake-cert-file
      client-key: fake-key-file
  - name: guest
    user:
      username: guest
      password: password123

contexts:
  - name: dev-frontend
    context:
      cluster: development
      user: deveoper
      namespace: frontend
  - name: prod-guest
    context:
      cluster: production
      user: guest
      namespace: default

current-context: dev-frontend



kubectl config

ํ„ฐ๋ฏธ๋„์— ์„ค์น˜๋œ kubectl์€ .kube/config๋ฅผ ๊ธฐ๋ณธ KubeConfig ํŒŒ์ผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ์ฃผ์š”ํ•œ ๋ช…๋ น์–ด๋ฅผ ๋ช‡๊ฐœ ์‚ดํŽด๋ณด์ž.

KubeConfig ํ™•์ธํ•˜๊ธฐ

# ์ „์ฒด Config ํ™•์ธ
$ kubectl config view

# ํ˜„์žฌ Config๋งŒ ํ™•์ธ
$ kubectl config view --minify

Context ๋ฐ”๊พธ๊ธฐ

$ kubectl config use-context [context-name]

Context ๋‚ด์šฉ ๋ณ€๊ฒฝ

์‚ฌ์šฉํ•  Namespace๋ฅผ ๋ฐ”๊ฟ€ ๋•Œ ์ฃผ๋กœ ์“ด๋‹ค.

# ํ˜„์žฌ Context์˜ Namespace ๋ณ€๊ฒฝ
$ kubectl config set-context --current --namespace=[NAMESPACE_NAME]

# ํŠน์ • Context์˜ Namespace ๋ณ€๊ฒฝ
$ kubectl config set-context [CONTEXT_NAME] --namespace=[NAMESPACE_NAME]

# Full Format
$ kubectl config set-context CONTEXT_NAME \
  [--cluster=cluster_name] \
  [--user=user_name] \
  [--namespace=namespace_name]

Referecnes