kubeconfig ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ ์ ‘๊ทผ ๊ตฌ์„ฑํ•˜๊ธฐ

kubeconfig ํŒŒ์ผ๋“ค์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ, ์‚ฌ์šฉ์ž, ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ฐ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜์ž. kubectl ์ปค๋งจ๋“œ๋ผ์ธ ํˆด์€ kubeconfig ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์„ ํƒ๊ณผ ํด๋Ÿฌ์Šคํ„ฐ์˜ API ์„œ๋ฒ„์™€์˜ ํ†ต์‹ ์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ฐพ๋Š”๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ kubectl์€ $HOME/.kube ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ config๋ผ๋Š” ์ด๋ฆ„์˜ ํŒŒ์ผ์„ ์ฐพ๋Š”๋‹ค. KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ --kubeconfig ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์ •ํ•ด์„œ ๋‹ค๋ฅธ kubeconfig ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

kubeconfig ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์ง€์ •ํ•˜๋Š” ๋‹จ๊ณ„๋ณ„ ์ง€์‹œ์‚ฌํ•ญ์€ ๋‹ค์ค‘ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์ ‘๊ทผ ๊ตฌ์„ฑํ•˜๊ธฐ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.

๋‹ค์ค‘ ํด๋Ÿฌ์Šคํ„ฐ, ์‚ฌ์šฉ์ž์™€ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์ง€์›

์—ฌ๋Ÿฌ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์žˆ๊ณ , ์‚ฌ์šฉ์ž์™€ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ์ธ์ฆํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ์‹คํ–‰ ์ค‘์ธ kubelet์€ ์ธ์ฆ์„œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ธ์ฆํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์‚ฌ์šฉ์ž๋Š” ํ† ํฐ์œผ๋กœ ์ธ์ฆํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ด€๋ฆฌ์ž๋Š” ๊ฐœ๋ณ„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ์ธ์ฆ์„œ ์ง‘ํ•ฉ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

kubeconfig ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋ฉด ํด๋Ÿฌ์Šคํ„ฐ์™€ ์‚ฌ์šฉ์ž์™€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ์ปจํ…์ŠคํŠธ๋ฅผ ์ •์˜ํ•˜์—ฌ ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ํด๋Ÿฌ์Šคํ„ฐ์™€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๊ฐ„์— ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ปจํ…์ŠคํŠธ

kubeconfig์—์„œ ์ปจํ…์ŠคํŠธ ์š”์†Œ๋Š” ํŽธ๋ฆฌํ•œ ์ด๋ฆ„์œผ๋กœ ์ ‘์† ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋ฌถ๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค. ๊ฐ ์ปจํ…์ŠคํŠธ๋Š” ํด๋Ÿฌ์Šคํ„ฐ, ๋„ค์ž„์ŠคํŽ˜์ด์Šค์™€ ์‚ฌ์šฉ์ž๋ผ๋Š” ์„ธ ๊ฐ€์ง€ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง„๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ kubectl ์ปค๋งจ๋“œ๋ผ์ธ ํˆด์€ ํ˜„์žฌ ์ปจํ…์ŠคํŠธ ์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ์™€ ํ†ต์‹ ํ•œ๋‹ค.

ํ˜„์žฌ ์ปจํƒ์ŠคํŠธ๋ฅผ ์„ ํƒํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‹คํ–‰ํ•œ๋‹ค.

kubectl config use-context

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

KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” kubeconfig ํŒŒ์ผ ๋ชฉ๋ก์„ ๋ณด์œ ํ•œ๋‹ค. ๋ฆฌ๋ˆ…์Šค ๋ฐ Mac์˜ ๊ฒฝ์šฐ ์ด๋Š” ์ฝœ๋ก (:)์œผ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์ด๋‹ค. ์œˆ๋„์šฐ๋Š” ์„ธ๋ฏธ์ฝœ๋ก (;)์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค. KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ํ•„์ˆ˜๋Š” ์•„๋‹ˆ๋‹ค. KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์—†์œผ๋ฉด, kubectl์€ ๊ธฐ๋ณธ kubeconfig ํŒŒ์ผ์ธ $HOME/.kube/config๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์กด์žฌํ•˜๋ฉด, kubectl์€ KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋‚˜์—ด๋œ ํŒŒ์ผ์„ ๋ณ‘ํ•ฉํ•œ ๊ฒฐ๊ณผ ํ˜•ํƒœ์˜ ํšจ๊ณผ์  ๊ตฌ์„ฑ์„ ์ด์šฉํ•œ๋‹ค.

kubeconfig ํŒŒ์ผ ๋ณ‘ํ•ฉ

๊ตฌ์„ฑ์„ ๋ณด๋ ค๋ฉด, ๋‹ค์Œ ์ปค๋งจ๋“œ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

kubectl config view

์•ž์„œ ์„ค๋ช…ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ, ์ด ์ถœ๋ ฅ ๋‚ด์šฉ์€ ๋‹จ์ผ kubeconfig ํŒŒ์ผ์ด๋‚˜ ์—ฌ๋Ÿฌ kubeconfig ํŒŒ์ผ์„ ๋ณ‘ํ•ฉํ•œ ๊ฒฐ๊ณผ ์ผ ์ˆ˜ ์žˆ๋‹ค.

๋‹ค์Œ์€ kubeconfig ํŒŒ์ผ์„ ๋ณ‘ํ•ฉํ•  ๋•Œ์— kubectl์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ทœ์น™์ด๋‹ค.

  1. --kubeconfig ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ–ˆ์œผ๋ฉด, ์ง€์ •ํ•œ ํŒŒ์ผ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค. ๋ณ‘ํ•ฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ์˜ค์ง ํ•œ ๊ฐœ ์ธ์Šคํ„ด์Šค๋งŒ ํ—ˆ์šฉํ•œ๋‹ค.

    ๊ทธ๋ ‡์ง€ ์•Š๊ณ , KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜์˜€๋‹ค๋ฉด ๋ณ‘ํ•ฉํ•ด์•ผ ํ•˜๋Š” ํŒŒ์ผ์˜ ๋ชฉ๋ก์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ ๋‚˜์—ด๋œ ํŒŒ์ผ์€ ๋‹ค์Œ ๊ทœ์น™์— ๋”ฐ๋ผ ๋ณ‘ํ•ฉํ•œ๋‹ค.

    • ๋นˆ ํŒŒ์ผ๋ช…์€ ๋ฌด์‹œํ•œ๋‹ค.
    • ์—ญ ์ง๋ ฌํ™” ๋ถˆ๊ฐ€ํ•œ ํŒŒ์ผ ๋‚ด์šฉ์— ๋Œ€ํ•ด์„œ ์˜ค๋ฅ˜๋ฅผ ์ผ์œผํ‚จ๋‹ค.
    • ํŠน์ • ๊ฐ’์ด๋‚˜ ๋งต ํ‚ค๋ฅผ ์„ค์ •ํ•œ ์ฒซ ๋ฒˆ์งธ ํŒŒ์ผ์„ ์šฐ์„ ํ•œ๋‹ค.
    • ๊ฐ’์ด๋‚˜ ๋งต ํ‚ค๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค. ์˜ˆ: ํ˜„์žฌ ์ปจํ…์ŠคํŠธ๋ฅผ ์„ค์ •ํ•  ์ฒซ ๋ฒˆ์งธ ํŒŒ์ผ์˜ ์ปจํƒ์ŠคํŠธ๋ฅผ ์œ ์ง€ํ•œ๋‹ค. ์˜ˆ: ๋‘ ํŒŒ์ผ์ด red-user๋ฅผ ์ง€์ •ํ–ˆ๋‹ค๋ฉด, ์ฒซ ๋ฒˆ์งธ ํŒŒ์ผ์˜ red-user ๊ฐ’๋งŒ์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋‘ ๋ฒˆ์งธ ํŒŒ์ผ์˜ red-user ํ•˜์œ„์— ์ถฉ๋Œํ•˜์ง€ ์•Š๋Š” ํ•ญ๋ชฉ์ด ์žˆ์–ด๋„ ๋ฒ„๋ฆฐ๋‹ค.

    KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •์˜ ์˜ˆ๋กœ, KUBECONFIG ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.

    ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด, ๋ณ‘ํ•ฉํ•˜์ง€ ์•Š๊ณ  ๊ธฐ๋ณธ kubeconfig ํŒŒ์ผ์ธ $HOME/.kube/config๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  2. ์ด ์ฒด์ธ์—์„œ ์ฒซ ๋ฒˆ์งธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉํ•  ์ปจํ…์ŠคํŠธ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.

    1. ์ปค๋งจ๋“œ๋ผ์ธ ํ”Œ๋ž˜๊ทธ์˜ --context๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    2. ๋ณ‘ํ•ฉ๋œ kubeconfig ํŒŒ์ผ์—์„œ current-context๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

    ์ด ์‹œ์ ์—์„œ๋Š” ๋นˆ ์ปจํ…์ŠคํŠธ๋„ ํ—ˆ์šฉํ•œ๋‹ค.

  3. ํด๋Ÿฌ์Šคํ„ฐ์™€ ์‚ฌ์šฉ์ž๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. ์ด ์‹œ์ ์—์„œ๋Š” ์ปจํ…์ŠคํŠธ๊ฐ€ ์žˆ์„ ์ˆ˜๋„ ์žˆ๊ณ  ์—†์„ ์ˆ˜๋„ ์žˆ๋‹ค. ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด ํ•œ ๋ฒˆ, ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•ด ํ•œ ๋ฒˆ ์ด ๋‘ ๋ฒˆ์— ๊ฑธ์นœ ์ด ์ฒด์ธ์—์„œ ์ฒซ ๋ฒˆ์งธ ๊ฒƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํด๋Ÿฌ์Šคํ„ฐ์™€ ์‚ฌ์šฉ์ž๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.

    1. ์ปค๋งจ๋“œ๋ผ์ธ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์กด์žฌํ•˜๋ฉด, --user ๋˜๋Š” --cluster๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    2. ์ปจํ…์ŠคํŠธ๊ฐ€ ๋น„์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด, ์ปจํ…์ŠคํŠธ์—์„œ ์‚ฌ์šฉ์ž ๋˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.

    ์ด ์‹œ์ ์—์„œ๋Š” ์‚ฌ์šฉ์ž์™€ ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๋น„์›Œ๋‘˜ ์ˆ˜ ์žˆ๋‹ค.

  4. ์‚ฌ์šฉํ•  ์‹ค์ œ ํด๋Ÿฌ์Šคํ„ฐ ์ •๋ณด๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. ์ด ์‹œ์ ์—์„œ ํด๋Ÿฌ์Šคํ„ฐ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๊ณ  ์—†์„ ์ˆ˜๋„ ์žˆ๋‹ค. ์ด ์ฒด์ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํด๋Ÿฌ์Šคํ„ฐ ์ •๋ณด๋ฅผ ๊ตฌ์ถ•ํ•œ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๊ฒƒ์„ ์‚ฌ์šฉํ•œ๋‹ค.

    1. ์ปค๋งจ๋“œ๋ผ์ธ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์กด์žฌํ•˜๋ฉด, --server, --certificate-authority, --insecure-skip-tls-verify๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    2. ๋ณ‘ํ•ฉ๋œ kubeconfig ํŒŒ์ผ์—์„œ ํด๋Ÿฌ์Šคํ„ฐ ์ •๋ณด ์†์„ฑ์ด ์žˆ๋‹ค๋ฉด ์‚ฌ์šฉํ•œ๋‹ค.
    3. ์„œ๋ฒ„ ์œ„์น˜๊ฐ€ ์—†๋‹ค๋ฉด ์‹คํŒจํ•œ๋‹ค.
  5. ์‚ฌ์šฉํ•  ์‹ค์ œ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. ์‚ฌ์šฉ์ž ๋‹น ํ•˜๋‚˜์˜ ์ธ์ฆ ๊ธฐ๋ฒ•๋งŒ ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ํด๋Ÿฌ์Šคํ„ฐ ์ •๋ณด์™€ ๋™์ผํ•œ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

    1. ์ปค๋งจ๋“œ๋ผ์ธ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์กด์žฌํ•˜๋ฉด, --client-certificate, --client-key, --username, --password, --token์„ ์‚ฌ์šฉํ•œ๋‹ค.
    2. ๋ณ‘ํ•ฉ๋œ kubeconfig ํŒŒ์ผ์—์„œ user ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    3. ์ถฉ๋Œํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๊ธฐ๋ฒ•์ด ์žˆ๋‹ค๋ฉด ์‹คํŒจํ•œ๋‹ค.
  6. ์—ฌ์ „ํžˆ ๋ˆ„๋ฝ๋œ ์ •๋ณด๋Š” ๊ธฐ๋ณธ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ณ  ์ธ์ฆ ์ •๋ณด๋ฅผ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ๋‹ค.

ํŒŒ์ผ ์ฐธ์กฐ

kubeconfig ํŒŒ์ผ์—์„œ ํŒŒ์ผ๊ณผ ๊ฒฝ๋กœ ์ฐธ์กฐ๋Š” kubeconfig ํŒŒ์ผ์˜ ์œ„์น˜์™€ ๊ด€๋ จ ์žˆ๋‹ค. ์ปค๋งจ๋“œ๋ผ์ธ ์ƒ์— ํŒŒ์ผ ์ฐธ์กฐ๋Š” ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•œ๋‹ค. $HOME/.kube/config์—์„œ ์ƒ๋Œ€ ๊ฒฝ๋กœ๋Š” ์ƒ๋Œ€์ ์œผ๋กœ, ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋Š” ์ ˆ๋Œ€์ ์œผ๋กœ ์ €์žฅํ•œ๋‹ค.

ํ”„๋ก์‹œ

๋‹ค์Œ๊ณผ ๊ฐ™์ด kubeconfig ํŒŒ์ผ์—์„œ proxy-url๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ kubectl์ด ๊ฐ ํด๋Ÿฌ์Šคํ„ฐ๋งˆ๋‹ค ํ”„๋ก์‹œ๋ฅผ ๊ฑฐ์น˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

apiVersion: v1
kind: Config

clusters:
- cluster:
    proxy-url: http://proxy.example.org:3128
    server: https://k8s.example.org/k8s/clusters/c-xxyyzz
  name: development

users:
- name: developer

contexts:
- context:
  name: development

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

์ตœ์ข… ์ˆ˜์ • July 20, 2022 at 1:05 AM PST: Update outdated files dev-1.24-ko.2 (M11-M20) (4d92fef330)