Information in this document may be out of date

This document has an older update date than the original, so the information it contains may be out of date. If you're able to read English, see the English version for the most up-to-date information: Configure Access to Multiple Clusters

๋‹ค์ค‘ ํด๋Ÿฌ์Šคํ„ฐ ์ ‘๊ทผ ๊ตฌ์„ฑ

์ด ํŽ˜์ด์ง€์—์„œ๋Š” ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์ˆ˜์˜ ํด๋Ÿฌ์Šคํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•˜๋Š” ๋ฐฉ์‹์„ ๋ณด์—ฌ์ค€๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ, ์‚ฌ์šฉ์ž, ์ปจํ…์ŠคํŠธ๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ตฌ์„ฑ ํŒŒ์ผ์— ์ •์˜๋œ ๋‹ค์Œ kubectl config use-context ์ปค๋งจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ํ•„์š”ํ•˜๊ณ , kubectl ์ปค๋งจ๋“œ-๋ผ์ธ ํˆด์ด ํด๋Ÿฌ์Šคํ„ฐ์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ด ํŠœํ† ๋ฆฌ์–ผ์€ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ํ˜ธ์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ๋…ธ๋“œ๊ฐ€ ์ ์–ด๋„ 2๊ฐœ ํฌํ•จ๋œ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. ๋งŒ์•ฝ, ์•„์ง ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‹ค๋ฉด, minikube๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋‹ค์Œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ”Œ๋ ˆ์ด๊ทธ๋ผ์šด๋“œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

kubectl์ด ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด, kubectl version --client์„ ์‹คํ–‰ํ•œ๋‹ค. kubectl ๋ฒ„์ „์€ ํด๋Ÿฌ์Šคํ„ฐ์˜ API ์„œ๋ฒ„ ๋ฒ„์ „๊ณผ ๋งˆ์ด๋„ˆ ๋ฒ„์ „ ํ•˜๋‚˜ ์ฐจ์ด ์ด๋‚ด์—ฌ์•ผ ํ•œ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ, ์‚ฌ์šฉ์ž, ์ปจํ…์ŠคํŠธ ์ •์˜

๋‹น์‹ ์ด ๊ฐœ๋ฐœ ์ž‘์—…์„ ์œ„ํ•œ ํด๋Ÿฌ์Šคํ„ฐ์™€ ํ…Œ์ŠคํŠธ ์ž‘์—…์„ ์œ„ํ•œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. development ํด๋Ÿฌ์Šคํ„ฐ์—์„œ๋Š” ํ”„๋ŸฐํŠธ ์—”๋“œ ๊ฐœ๋ฐœ์ž๋“ค์ด frontend๋ผ๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ๊ณ , ์Šคํ† ๋ฆฌ์ง€ ๊ฐœ๋ฐœ์ž๋“ค์€ storage๋ผ๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ๋‹ค. test ํด๋Ÿฌ์Šคํ„ฐ์—์„œ๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด default ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ๊ฐœ๋ฐœํ•˜๊ฑฐ๋‚˜ ํ•„์š”์— ๋”ฐ๋ผ ๋ณด์กฐ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋“ค์„ ์ƒ์„ฑํ•˜๊ณ  ์žˆ๋‹ค. development ํด๋Ÿฌ์Šคํ„ฐ์— ์ ‘๊ทผํ•˜๋ ค๋ฉด ์ธ์ฆ์„œ๋กœ ์ธ์ฆ์„ ํ•ด์•ผ ํ•˜๊ณ , test ํด๋Ÿฌ์Šคํ„ฐ์— ์ ‘๊ทผํ•˜๋ ค๋ฉด ์‚ฌ์šฉ์ž๋„ค์ž„๊ณผ ํŒจ์Šค์›Œ๋“œ๋กœ ์ธ์ฆ์„ ํ•ด์•ผ ํ•œ๋‹ค.

config-exercise๋ผ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. config-exercise ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋‹ค์Œ ๋‚ด์šฉ์„ ๊ฐ€์ง„ config-demo๋ผ๋Š” ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค.

apiVersion: v1
kind: Config
preferences: {}

clusters:
- cluster:
  name: development
- cluster:
  name: test

users:
- name: developer
- name: experimenter

contexts:
- context:
  name: dev-frontend
- context:
  name: dev-storage
- context:
  name: exp-test

๊ตฌ์„ฑ ํŒŒ์ผ์€ ํด๋Ÿฌ์Šคํ„ฐ๋“ค, ์‚ฌ์šฉ์ž๋“ค, ์ปจํ…์ŠคํŠธ๋“ค์„ ๊ธฐ์ˆ ํ•œ๋‹ค. config-demo ํŒŒ์ผ์€ ๋‘ ํด๋Ÿฌ์Šคํ„ฐ๋“ค๊ณผ ๋‘ ์‚ฌ์šฉ์ž๋“ค, ์„ธ ์ปจํ…์ŠคํŠธ๋“ค์„ ๊ธฐ์ˆ ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ฐ€์ง„๋‹ค.

config-exercise ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ ์ปค๋งจ๋“œ๋“ค์„ ์‹คํ–‰ํ•˜์—ฌ ๊ตฌ์„ฑ ํŒŒ์ผ์— ํด๋Ÿฌ์Šคํ„ฐ์˜ ์„ธ๋ถ€์‚ฌํ•ญ๋“ค์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

kubectl config --kubeconfig=config-demo set-cluster development --server=https://1.2.3.4 --certificate-authority=fake-ca-file
kubectl config --kubeconfig=config-demo set-cluster test --server=https://5.6.7.8 --insecure-skip-tls-verify

์‚ฌ์šฉ์ž์˜ ์„ธ๋ถ€์‚ฌํ•ญ๋“ค์„ ๊ตฌ์„ฑ ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•œ๋‹ค.

kubectl config --kubeconfig=config-demo set-credentials developer --client-certificate=fake-cert-file --client-key=fake-key-seefile
kubectl config --kubeconfig=config-demo set-credentials experimenter --username=exp --password=some-password

์ปจํ…์ŠคํŠธ ์„ธ๋ถ€์‚ฌํ•ญ๋“ค์„ ๊ตฌ์„ฑ ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•œ๋‹ค.

kubectl config --kubeconfig=config-demo set-context dev-frontend --cluster=development --namespace=frontend --user=developer
kubectl config --kubeconfig=config-demo set-context dev-storage --cluster=development --namespace=storage --user=developer
kubectl config --kubeconfig=config-demo set-context exp-test --cluster=test --namespace=default --user=experimenter

config-demo ํŒŒ์ผ์„ ์—ด์–ด์„œ ์„ธ๋ถ€์‚ฌํ•ญ๋“ค์ด ์ถ”๊ฐ€๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. config-demo ํŒŒ์ผ์„ ์—ด์–ด๋ณด๋Š” ๊ฒƒ ๋Œ€์‹ ์— config view ์ปค๋งจ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

kubectl config --kubeconfig=config-demo view

๋‘ ํด๋Ÿฌ์Šคํ„ฐ, ๋‘ ์‚ฌ์šฉ์ž, ์„ธ ์ปจํ…์ŠคํŠธ๋“ค์ด ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋กœ ๋‚˜์˜จ๋‹ค.

apiVersion: v1
clusters:
- cluster:
    certificate-authority: fake-ca-file
    server: https://1.2.3.4
  name: development
- cluster:
    insecure-skip-tls-verify: true
    server: https://5.6.7.8
  name: test
contexts:
- context:
    cluster: development
    namespace: frontend
    user: developer
  name: dev-frontend
- context:
    cluster: development
    namespace: storage
    user: developer
  name: dev-storage
- context:
    cluster: test
    namespace: default
    user: experimenter
  name: exp-test
current-context: ""
kind: Config
preferences: {}
users:
- name: developer
  user:
    client-certificate: fake-cert-file
    client-key: fake-key-file
- name: experimenter
  user:
    # ๋ฌธ์„œ ์ฐธ๊ณ  ์‚ฌํ•ญ (์ด ์„ค๋ช…์€ ๋ช…๋ น ์ถœ๋ ฅ์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹ˆ๋‹ค.)
    # ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋ผ์ด์–ธํŠธ ๊ตฌ์„ฑ์— ์•”ํ˜ธ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์€ ์œ„ํ—˜ํ•˜๋‹ค.
    # ์ž๊ฒฉ ์ฆ๋ช… ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ
    # ์ž๊ฒฉ ์ฆ๋ช…์„ ๋ณ„๋„๋กœ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์€ ๋Œ€์•ˆ์ด๋‹ค.
    # ๋‹ค์Œ์„ ์ฐธ๊ณ ํ•˜์ž. https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins
    password: some-password
    username: exp

์œ„ fake-ca-file, fake-cert-file, fake-key-file์€ ์ธ์ฆ์„œ ํŒŒ์ผ๋“ค์˜ ์‹ค์ œ ๊ฒฝ๋กœ ์ด๋ฆ„์„ ์œ„ํ•œ ํ”Œ๋ ˆ์ด์Šคํ™€๋”(placeholder)์ด๋‹ค. ๋‹น์‹ ์˜ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์ด๋“ค์„ ์‹ค์ œ ์ธ์ฆ์„œ ๊ฒฝ๋กœ๋กœ ๋ณ€๊ฒฝํ•ด์ค˜์•ผ ํ•œ๋‹ค.

๋งŒ์•ฝ ๋‹น์‹ ์ด ์ธ์ฆ์„œ ํŒŒ์ผ๋“ค์˜ ๊ฒฝ๋กœ ๋Œ€์‹ ์— ์—ฌ๊ธฐ์— ํฌํ•จ๋œ base64๋กœ ์ธ์ฝ”๋”ฉ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋ฉด ์ด ๊ฒฝ์šฐ ํ‚ค์— -data ์ ‘๋ฏธ์‚ฌ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด certificate-authority-data, client-certificate-data, client-key-data ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ปจํ…์ŠคํŠธ๋Š” ์„ธ ๊ฐ€์ง€(ํด๋Ÿฌ์Šคํ„ฐ, ์‚ฌ์šฉ์ž, ๋„ค์ž„์ŠคํŽ˜์ด์Šค) ์š”์†Œ๋“ค๋กœ ์ด๋ค„์ง„๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด dev-frontend ์ปจํ…์ŠคํŠธ๋Š” "development ํด๋Ÿฌ์Šคํ„ฐ์˜ frontend ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์ ‘๊ทผํ•˜๋Š”๋ฐ developer ์‚ฌ์šฉ์ž ์ž๊ฒฉ์ฆ๋ช…์„ ์‚ฌ์šฉํ•˜๋ผ๊ณ  ์•Œ๋ ค์ค€๋‹ค."

ํ˜„์žฌ ์ปจํ…์ŠคํŠธ๋ฅผ ์„ค์ •ํ•œ๋‹ค.

kubectl config --kubeconfig=config-demo use-context dev-frontend

์ด์ œ ๋‹น์‹ ์ด kubectl ์ปค๋งจ๋“œ๋ฅผ ์ž…๋ ฅํ•  ๋•Œ๋งˆ๋‹ค dev-frontend ์ปจํ…์ŠคํŠธ์— ๋ช…์‹œ๋œ ํด๋Ÿฌ์Šคํ„ฐ์™€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ƒ์—์„œ ๋™์ž‘ํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ปค๋งจ๋“œ๋Š” dev-frontend ์ปจํ…์ŠคํŠธ ๋‚ด์— ๋ช…์‹œ๋œ ์‚ฌ์šฉ์ž ์ž๊ฒฉ์ฆ๋ช…์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค.

ํ˜„์žฌ ์ปจํ…์ŠคํŠธ์— ๊ด€๋ จ๋œ ๊ตฌ์„ฑ ์ •๋ณด๋งŒ์„ ๋ณด๋ ค๋ฉด --minify ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

kubectl config --kubeconfig=config-demo view --minify

dev-frontend ์ปจํ…์ŠคํŠธ์— ๊ด€๋ จ๋œ ๊ตฌ์„ฑ ์ •๋ณด๊ฐ€ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋กœ ํ‘œ์‹œ๋  ๊ฒƒ์ด๋‹ค.

apiVersion: v1
clusters:
- cluster:
    certificate-authority: fake-ca-file
    server: https://1.2.3.4
  name: development
contexts:
- context:
    cluster: development
    namespace: frontend
    user: developer
  name: dev-frontend
current-context: dev-frontend
kind: Config
preferences: {}
users:
- name: developer
  user:
    client-certificate: fake-cert-file
    client-key: fake-key-file

์ด์ œ ๋‹น์‹ ์ด ์ž ์‹œ test ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ž‘์—…ํ•˜๋ ค๊ณ  ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.

ํ˜„์žฌ ์ปจํ…์ŠคํŠธ๋ฅผ exp-test๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.

kubectl config --kubeconfig=config-demo use-context exp-test

์ด์ œ ๋‹น์‹ ์ด ์‹คํ–‰ํ•˜๋Š” ๋ชจ๋“  kubectl ์ปค๋งจ๋“œ๋Š” test ํด๋Ÿฌ์Šคํ„ฐ์˜ default ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์ ์šฉ๋˜๋ฉฐ exp-test ์ปจํ…์ŠคํŠธ์— ๋‚˜์—ด๋œ ์‚ฌ์šฉ์ž์˜ ์ž๊ฒฉ์ฆ๋ช…์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค.

ํ˜„์žฌ์˜ ์ปจํ…์ŠคํŠธ์ธ exp-test์— ๊ด€๋ จ๋œ ์„ค์ •์„ ๋ณด์ž.

kubectl config --kubeconfig=config-demo view --minify

๋งˆ์ง€๋ง‰์œผ๋กœ ๋‹น์‹ ์ด development ํด๋Ÿฌ์Šคํ„ฐ์˜ storage ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์ž ์‹œ ์ž‘์—…์„ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.

ํ˜„์žฌ ์ปจํ…์ŠคํŠธ๋ฅผ dev-storage๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.

kubectl config --kubeconfig=config-demo use-context dev-storage

ํ˜„์žฌ ์ปจํ…์ŠคํŠธ์ธ dev-storage์— ๊ด€๋ จ๋œ ์„ค์ •์„ ๋ณด์ž.

kubectl config --kubeconfig=config-demo view --minify

๋‘ ๋ฒˆ์งธ ๊ตฌ์„ฑ ํŒŒ์ผ ์ƒ์„ฑ

config-exercise ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ๋‹ค์Œ ๋‚ด์šฉ์œผ๋กœ config-demo-2๋ผ๋Š” ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค.

apiVersion: v1
kind: Config
preferences: {}

contexts:
- context:
    cluster: development
    namespace: ramp
    user: developer
  name: dev-ramp-up

์œ„ ๊ตฌ์„ฑ ํŒŒ์ผ์€ dev-ramp-up์ด๋ผ๋Š” ์‹ ๊ทœ ์ปจํ…์ŠคํŠธ๋ฅผ ์ •์˜ํ•œ๋‹ค.

KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

KUBECONFIG๋ผ๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž. ๋งŒ์•ฝ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด, ์ดํ›„์— ๋ณต์›ํ•  ์ˆ˜ ์žˆ๋„๋ก KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ ํ˜„์žฌ ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค. ์˜ˆ:

๋ฆฌ๋ˆ…์Šค

export KUBECONFIG_SAVED="$KUBECONFIG"

์œˆ๋„์šฐ PowerShell

$Env:KUBECONFIG_SAVED=$ENV:KUBECONFIG

KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ๊ตฌ์„ฑ ํŒŒ์ผ๋“ค์˜ ๊ฒฝ๋กœ์˜ ๋ฆฌ์ŠคํŠธ์ด๋‹ค. ์ด ๋ฆฌ์ŠคํŠธ๋Š” ๋ฆฌ๋ˆ…์Šค์™€ Mac์—์„œ๋Š” ์ฝœ๋ก ์œผ๋กœ ๊ตฌ๋ถ„๋˜๋ฉฐ ์œˆ๋„์šฐ์—์„œ๋Š” ์„ธ๋ฏธ์ฝœ๋ก ์œผ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด, ๋ฆฌ์ŠคํŠธ์— ํฌํ•จ๋œ ๊ตฌ์„ฑ ํŒŒ์ผ๋“ค์— ์ต์ˆ™ํ•ด์ง€๊ธธ ๋ฐ”๋ž€๋‹ค.

๋‹ค์Œ ์˜ˆ์™€ ๊ฐ™์ด ์ž„์‹œ๋กœ KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋‘ ๊ฐœ์˜ ๊ฒฝ๋กœ๋“ค์„ ๋ง๋ถ™์—ฌ๋ณด์ž.

๋ฆฌ๋ˆ…์Šค

export KUBECONFIG="${KUBECONFIG}:config-demo:config-demo-2"

์œˆ๋„์šฐ PowerShell

$Env:KUBECONFIG=("config-demo;config-demo-2")

config-exercise ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ๋‹ค์Œ ์ปค๋งจ๋“œ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

kubectl config view

๋‹น์‹ ์˜ KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋‚˜์—ด๋œ ๋ชจ๋“  ํŒŒ์ผ๋“ค์ด ํ•ฉ์ณ์ง„ ์ •๋ณด๊ฐ€ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋กœ ํ‘œ์‹œ๋  ๊ฒƒ์ด๋‹ค. ํŠนํžˆ, ํ•ฉ์ณ์ง„ ์ •๋ณด๊ฐ€ config-demo-2 ํŒŒ์ผ์˜ dev-ramp-up ์ปจํ…์ŠคํŠธ์™€ config-demo ํŒŒ์ผ์˜ ์„ธ ๊ฐœ์˜ ์ปจํ…์ŠคํŠธ๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์— ์ฃผ๋ชฉํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค.

contexts:
- context:
    cluster: development
    namespace: frontend
    user: developer
  name: dev-frontend
- context:
    cluster: development
    namespace: ramp
    user: developer
  name: dev-ramp-up
- context:
    cluster: development
    namespace: storage
    user: developer
  name: dev-storage
- context:
    cluster: test
    namespace: default
    user: experimenter
  name: exp-test

kubeconfig ํŒŒ์ผ๋“ค์„ ์–ด๋–ป๊ฒŒ ๋ณ‘ํ•ฉํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์ƒ์„ธ์ •๋ณด๋Š” kubeconfig ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ ์ ‘๊ทผ ๊ตฌ์„ฑํ•˜๊ธฐ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.

$HOME/.kube ๋””๋ ‰ํ„ฐ๋ฆฌ ํƒ์ƒ‰

๋งŒ์•ฝ ๋‹น์‹ ์ด ์ด๋ฏธ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  kubectl์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ œ์–ดํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ์•„๋งˆ $HOME/.kube ๋””๋ ‰ํ„ฐ๋ฆฌ์— config๋ผ๋Š” ํŒŒ์ผ์„ ๊ฐ€์ง€๊ณ  ์žˆ์„ ๊ฒƒ์ด๋‹ค.

$HOME/.kube๋กœ ๊ฐ€์„œ ์–ด๋–ค ํŒŒ์ผ๋“ค์ด ์กด์žฌํ•˜๋Š”์ง€ ๋ณด์ž. ๋ณดํ†ต config๋ผ๋Š” ํŒŒ์ผ์ด ์กด์žฌํ•  ๊ฒƒ์ด๋‹ค. ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚ด์—๋Š” ๋‹ค๋ฅธ ๊ตฌ์„ฑ ํŒŒ์ผ๋“ค๋„ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜์ž๋ฉด ๋‹น์‹ ์€ ์ด ํŒŒ์ผ๋“ค์˜ ์ปจํ…์ธ ์— ์ต์ˆ™ํ•ด์ ธ์•ผ ํ•œ๋‹ค.

$HOME/.kube/config๋ฅผ KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ์ถ”๊ฐ€

๋‹น์‹ ์ด $HOME/.kube/config ํŒŒ์ผ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š”๋‹ค๋ฉด KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ์ถ”๊ฐ€ํ•ด๋ณด์ž. ์˜ˆ:

๋ฆฌ๋ˆ…์Šค

export KUBECONFIG="${KUBECONFIG}:${HOME}/.kube/config"

์œˆ๋„์šฐ Powershell

$Env:KUBECONFIG="$Env:KUBECONFIG;$HOME\.kube\config"

์ด์ œ KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋ฆฌ์ŠคํŠธ์— ํฌํ•จ๋œ ๋ชจ๋“  ํŒŒ์ผ๋“ค์ด ํ•ฉ์ณ์ง„ ๊ตฌ์„ฑ ์ •๋ณด๋ฅผ ๋ณด์ž. config-exercise ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ๋‹ค์Œ ์ปค๋งจ๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

kubectl config view

์ •๋ฆฌ

KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์›๋ž˜ ๊ฐ’์œผ๋กœ ๋˜๋Œ๋ ค ๋†“์ž. ์˜ˆ๋ฅผ ๋“ค๋ฉด:

๋ฆฌ๋ˆ…์Šค

export KUBECONFIG="$KUBECONFIG_SAVED"

์œˆ๋„์šฐ PowerShell

$Env:KUBECONFIG=$ENV:KUBECONFIG_SAVED

kubeconfig์— ์˜ํ•ด ํ‘œ์‹œ๋œ ์ œ๋ชฉ์„ ํ™•์ธํ•˜๊ธฐ

ํด๋Ÿฌ์Šคํ„ฐ ์ธ์ฆ ํ›„ ์–ด๋–ค ์†์„ฑ(์‚ฌ์šฉ์ž ์ด๋ฆ„, ๊ทธ๋ฃน)์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š”์ง€ ํ•ญ์ƒ ๋ช…ํ™•ํ•˜์ง€๋Š” ์•Š๋‹ค. ๋™์‹œ์— ๋‘ ๊ฐœ ์ด์ƒ์˜ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ ํ›จ์”ฌ ๋” ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๋‹ค.

์„ ํƒ๋˜์–ด ์žˆ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ปจํ…์ŠคํŠธ์˜ ์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋“ฑ์— ๋Œ€ํ•œ, ์ฃผ์ฒด ์†์„ฑ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ 'kubectl' ์•ŒํŒŒ ํ•˜์œ„ ๋ช…๋ น kubectl alpha auth whoami์ด ์žˆ๋‹ค.

๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํด๋ผ์ด์–ธํŠธ์˜ ์ธ์ฆ ์ •๋ณด์— ๋Œ€ํ•œ API ์•ก์„ธ์Šค ๋ฅผ ํ™•์ธํ•œ๋‹ค.

๋‹ค์Œ ๋‚ด์šฉ

์ตœ์ข… ์ˆ˜์ • March 26, 2023 at 1:12 AM PST: [ko] Update outdated files dev-1.26-ko.1 (M143 - M148) (eda4f1d533)