ํ•ด๋‹น ๋ฌธ์„œ์˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ฒ„์ „: v1.32

Kubernetes v1.32 ๋ฌธ์„œ๋Š” ๋” ์ด์ƒ ์ ๊ทน์ ์œผ๋กœ ๊ด€๋ฆฌ๋˜์ง€ ์•Š์Œ. ํ˜„์žฌ ๋ณด๊ณ ์žˆ๋Š” ๋ฌธ์„œ๋Š” ์ •์  ์Šค๋ƒ…์ƒท์ž„. ์ตœ์‹  ๋ฌธ์„œ๋ฅผ ์œ„ํ•ด์„œ๋Š”, ๋‹ค์Œ์„ ์ฐธ๊ณ . ์ตœ์‹  ๋ฒ„์ „.

๋ช…๋ นํ˜• ์ปค๋งจ๋“œ๋ฅผ ์ด์šฉํ•œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์˜ค๋ธŒ์ ํŠธ ๊ด€๋ฆฌํ•˜๊ธฐ

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

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

kubectl์„ ์„ค์น˜ํ•œ๋‹ค.

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

๋ฒ„์ „ ํ™•์ธ์„ ์œ„ํ•ด์„œ, ๋‹ค์Œ ์ปค๋งจ๋“œ๋ฅผ ์‹คํ–‰ kubectl version.

ํŠธ๋ ˆ์ด๋“œ ์˜คํ”„

kubectlํˆด์€ 3๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ์˜ค๋ธŒ์ ํŠธ ๊ด€๋ฆฌ๋ฅผ ์ง€์›ํ•œ๋‹ค.

  • ๋ช…๋ นํ˜• ์ปค๋งจ๋“œ
  • ๋ช…๋ นํ˜• ์˜ค๋ธŒ์ ํŠธ ๊ตฌ์„ฑ
  • ์„ ์–ธํ˜• ์˜ค๋ธŒ์ ํŠธ ๊ตฌ์„ฑ

๊ฐ ์ข…๋ฅ˜๋ณ„ ์˜ค๋ธŒ์ ํŠธ ๊ด€๋ฆฌ์˜ ์žฅ์ ๊ณผ ๋‹จ์ ์— ๋Œ€ํ•œ ๋…ผ์˜๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์˜ค๋ธŒ์ ํŠธ ๊ด€๋ฆฌ ๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค.

์˜ค๋ธŒ์ ํŠธ ์ƒ์„ฑ ๋ฐฉ๋ฒ•

kubectl ํˆด์€ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์˜ค๋ธŒ์ ํŠธ ํƒ€์ž…์„ ์ƒ์„ฑํ•˜๋Š”๋ฐ ๋™์‚ฌ ํ˜•ํƒœ ๊ธฐ๋ฐ˜์˜ ์ปค๋งจ๋“œ๋ฅผ ์ง€์›ํ•œ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์˜ค๋ธŒ์ ํŠธ ํƒ€์ž…์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ธ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ปค๋งจ๋“œ ์ด๋ฆ„์ด ์ง€์–ด์กŒ๋‹ค.

  • run: ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•  ์ƒˆ๋กœ์šด ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • expose: ํŒŒ๋“œ์— ๊ฑธ์ณ ํŠธ๋ž˜ํ”ฝ์„ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์Šคํ•˜๋„๋ก ์ƒˆ๋กœ์šด ์„œ๋น„์Šค ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • autoscale: ๋””ํ”Œ๋กœ์ด๋จผํŠธ์™€ ๊ฐ™์ด, ํ•˜๋‚˜์˜ ์ปจํŠธ๋กค๋Ÿฌ์— ๋Œ€ํ•ด ์ž๋™์œผ๋กœ ์ˆ˜ํ‰์  ์Šค์ผ€์ผ์ด ์ด๋ฃจ์–ด ์ง€๋„๋ก ์ƒˆ๋กœ์šด Autoscaler ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

๋˜ํ•œ kubectl ํˆด์€ ์˜ค๋ธŒ์ ํŠธ ํƒ€์ž…์— ์˜ํ•ด ๊ตฌ๋™๋˜๋Š” ์ƒ์„ฑ ์ปค๋งจ๋“œ๋ฅผ ์ง€์›ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ปค๋งจ๋“œ๋Š” ๋” ๋งŽ์€ ์˜ค๋ธŒ์ ํŠธ ํƒ€์ž…์„ ์ง€์›ํ•ด์ฃผ๋ฉฐ ๊ทธ ์˜๋„ํ•˜๋Š” ๋ฐ”์— ๋Œ€ํ•ด ๋ณด๋‹ค ๋ช…ํ™•ํ•˜๊ฒŒ ํ•ด์ฃผ์ง€๋งŒ, ์‚ฌ์šฉ์ž๊ฐ€ ์ƒ์„ฑํ•˜๊ณ ์ž ํ•˜๋Š” ์˜ค๋ธŒ์ ํŠธ ํƒ€์ž…์— ๋Œ€ํ•ด ์•Œ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค.

  • create <์˜ค๋ธŒ์ ํŠธ ํƒ€์ž…> [<์„œ๋ธŒ ํƒ€์ž…>] <์ธ์Šคํ„ด์Šค๋ช…>

์ผ๋ถ€ ์˜ค๋ธŒ์ ํŠธ ํƒ€์ž…์€ create ์ปค๋งจ๋“œ ๋‚ด ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ธŒ ํƒ€์ž…์„ ๊ฐ€์ง„๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์„œ๋น„์Šค ์˜ค๋ธŒ์ ํŠธ๋Š” ClusterIP, LoadBalancer ๋ฐ NodePort ๋“ฑ์„ ํฌํ•จํ•˜๋Š” ์—ฌ๋Ÿฌ ์„œ๋ธŒ ํƒ€์ž…์„ ๊ฐ€์ง„๋‹ค, ๋‹ค์Œ์€ NodePort ์„œ๋ธŒ ํƒ€์ž…์„ ํ†ตํ•ด ์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์˜ˆ์ œ์ด๋‹ค.

kubectl create service nodeport <์‚ฌ์šฉ์ž ์„œ๋น„์Šค ๋ช…์นญ>

์ด์ „ ์˜ˆ์ œ์—์„œ, create service nodeport ์ปค๋งจ๋“œ๋Š” create service ์ปค๋งจ๋“œ์˜ ์„œ๋ธŒ ์ปค๋งจ๋“œ๋ผ๊ณ  ์นญํ•œ๋‹ค.

-h ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ธŒ ์ปค๋งจ๋“œ์— ์˜ํ•ด ์ง€์›๋˜๋Š” ์ธ์ˆ˜ ๋ฐ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ฐพ์•„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

kubectl create service nodeport -h

์˜ค๋ธŒ์ ํŠธ ์—…๋ฐ์ดํŠธ ๋ฐฉ๋ฒ•

kubectl ์ปค๋งจ๋“œ๋Š” ์ผ๋ฐ˜์ ์ธ ๋ช‡๋ช‡์˜ ์—…๋ฐ์ดํŠธ ์ž‘์—…์„ ์œ„ํ•ด ๋™์‚ฌ ํ˜•ํƒœ ๊ธฐ๋ฐ˜์˜ ์ปค๋งจ๋“œ๋ฅผ ์ง€์›ํ•œ๋‹ค. ์ด ์ปค๋งจ๋“œ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์˜ค๋ธŒ์ ํŠธ์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์ •๋˜์–ด์•ผ ํ•˜๋Š” ํŠน์ • ํ•„๋“œ๋ฅผ ๋ชจ๋ฅด๋Š” ์ƒํƒœ์—์„œ๋„ ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด๋ฆ„ ์ง€์–ด์กŒ๋‹ค.

  • scale: ์ปจํŠธ๋กค๋Ÿฌ์˜ ๋ ˆํ”Œ๋ฆฌ์นด ์ˆ˜๋ฅผ ์—…๋ฐ์ดํŠธ ํ•จ์œผ๋กœ์จ ํŒŒ๋“œ๋ฅผ ์ถ”๊ฐ€ ๋˜๋Š” ์ œ๊ฑฐํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ˆ˜ํ‰์ ์œผ๋กœ ์Šค์ผ€์ผํ•œ๋‹ค.
  • annotate: ์˜ค๋ธŒ์ ํŠธ๋กœ๋ถ€ํ„ฐ ์–ด๋…ธํ…Œ์ด์…˜์„ ์ถ”๊ฐ€ ๋˜๋Š” ์ œ๊ฑฐํ•œ๋‹ค.
  • label: ์˜ค๋ธŒ์ ํŠธ์—์„œ ๋ ˆ์ด๋ธ”์„ ์ถ”๊ฐ€ ๋˜๋Š” ์ œ๊ฑฐํ•œ๋‹ค.

kubectl ์ปค๋งจ๋“œ๋Š” ๋˜ํ•œ ์˜ค๋ธŒ์ ํŠธ ์ธก๋ฉด์—์„œ ๊ตฌ๋™๋˜๋Š” ์—…๋ฐ์ดํŠธ ์ปค๋งจ๋“œ๋ฅผ ์ง€์›ํ•œ๋‹ค. ์ด ์ธก๋ฉด์˜ ์„ค์ •์€ ๋‹ค๋ฅธ ์˜ค๋ธŒ์ ํŠธ ํƒ€์ž…์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ํ•„๋“œ๋ฅผ ์„ค์ • ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

  • set <field>: ์˜ค๋ธŒ์ ํŠธ์˜ ์ธก๋ฉด์„ ์„ค์ •ํ•œ๋‹ค.

kubectl ํˆด์€ ํ™œ์„ฑ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ง์ ‘ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€์ ์ธ ๋ฐฉ๋ฒ•์„ ์ง€์›ํ•˜์ง€๋งŒ, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์˜ค๋ธŒ์ ํŠธ ์Šคํ‚ค๋งˆ์— ๋Œ€ํ•œ ์ถ”๊ฐ€์ ์ธ ์ดํ•ด๋ฅผ ์š”๊ตฌํ•œ๋‹ค.

  • edit: ํŽธ์ง‘๊ธฐ์—์„œ ๊ตฌ์„ฑ์„ ์—ด์–ด ํ™œ์„ฑ ์˜ค๋ธŒ์ ํŠธ์— ๋Œ€ํ•œ ์›๋ž˜ ๊ทธ๋Œ€๋กœ์˜ ๊ตฌ์„ฑ์„ ๋ฐ”๋กœ ํŽธ์ง‘ํ•œ๋‹ค.
  • patch: ํŒจ์น˜ ๋ฌธ์ž์—ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™œ์„ฑ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ฐ”๋กœ ํŽธ์ง‘ํ•œ๋‹ค. ํŒจ์น˜ ๋ฌธ์ž์—ด์— ๋Œ€ํ•œ ๋ณด๋‹ค ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ๋ณด๋ ค๋ฉด API ๊ทœ์ •์—์„œ ํŒจ์น˜ ์„น์…˜์„ ์ฐธ๊ณ ํ•œ๋‹ค.

์˜ค๋ธŒ์ ํŠธ ์‚ญ์ œ ๋ฐฉ๋ฒ•

ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด delete ์ปค๋งจ๋“œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • delete <ํƒ€์ž…>/<์ด๋ฆ„>
kubectl delete deployment/nginx

์˜ค๋ธŒ์ ํŠธ ํ™•์ธ ๋ฐฉ๋ฒ•

์˜ค๋ธŒ์ ํŠธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์ปค๋งจ๋“œ๊ฐ€ ์žˆ๋‹ค.

  • get: ์ผ์น˜ํ•˜๋Š” ์˜ค๋ธŒ์ ํŠธ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์˜ต์…˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด get -h๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • describe: ์ผ์น˜ํ•˜๋Š” ์˜ค๋ธŒ์ ํŠธ์— ๋Œ€ํ•ด ์ˆ˜์ง‘ํ•œ ์ƒ์„ธํ•œ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
  • logs: ํŒŒ๋“œ์—์„œ ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•œ stdout๊ณผ stderr๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์ƒ์„ฑ ์ „ ์˜ค๋ธŒ์ ํŠธ ์ˆ˜์ •์„ ์œ„ํ•ด set ์ปค๋งจ๋“œ ์‚ฌ์šฉํ•˜๊ธฐ

create ์ปค๋งจ๋“œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋ž˜๊ทธ๊ฐ€ ์—†๋Š” ๋ช‡ ๊ฐ€์ง€ ์˜ค๋ธŒ์ ํŠธ ํ•„๋“œ๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ, ์˜ค๋ธŒ์ ํŠธ ์ƒ์„ฑ ์ „์— ํ•„๋“œ์— ๋Œ€ํ•œ ๊ฐ’์„ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด set๊ณผ create์„ ์กฐํ•ฉํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” set ์ปค๋งจ๋“œ์— create ์ปค๋งจ๋“œ์˜ ์ถœ๋ ฅ์„ ํŒŒ์ดํ”„ ํ•จ์œผ๋กœ์จ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ์€ ๊ด€๋ จ ์˜ˆ์ œ์ด๋‹ค.

kubectl create service clusterip my-svc --clusterip="None" -o yaml --dry-run=client | kubectl set selector --local -f - 'environment=qa' -o yaml | kubectl create -f -
  1. kubectl create service -o yaml --dry-run=client ์ปค๋งจ๋“œ๋Š” ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๊ตฌ์„ฑ์„ ์ƒ์„ฑํ•˜์ง€๋งŒ, ์ด๋ฅผ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค API ์„œ๋ฒ„์— ์ „์†กํ•˜๋Š” ๋Œ€์‹  YAML ํ˜•์‹์œผ๋กœ stdout์— ์ถœ๋ ฅํ•œ๋‹ค.
  2. kubectl set selector --local -f - -o yaml ์ปค๋งจ๋“œ๋Š” stdin์œผ๋กœ๋ถ€ํ„ฐ ๊ตฌ์„ฑ์„ ์ฝ์–ด, YAML ํ˜•์‹์œผ๋กœ stdout์— ์—…๋ฐ์ดํŠธ๋œ ๊ตฌ์„ฑ์„ ๊ธฐ๋กํ•œ๋‹ค.
  3. kubectl create -f - ์ปค๋งจ๋“œ๋Š” stdin์„ ํ†ตํ•ด ์ œ๊ณต๋œ ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

์ƒ์„ฑ ์ „ ์˜ค๋ธŒ์ ํŠธ ์ˆ˜์ •์„ ์œ„ํ•ด --edit ์‚ฌ์šฉํ•˜๊ธฐ

์ƒ์„ฑ ์ „์— ์˜ค๋ธŒ์ ํŠธ์— ์ž„์˜์˜ ๋ณ€๊ฒฝ์„ ๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด kubectl create --edit ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ์€ ๊ด€๋ จ ์˜ˆ์ œ์ด๋‹ค.

kubectl create service clusterip my-svc --clusterip="None" -o yaml --dry-run=client > /tmp/srv.yaml
kubectl create --edit -f /tmp/srv.yaml
  1. kubectl create service ์ปค๋งจ๋“œ๋Š” ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๊ตฌ์„ฑ์„ ์ƒ์„ฑํ•˜๊ณ  ์ด๋ฅผ /tmp/srv.yaml์— ์ €์žฅํ•œ๋‹ค.
  2. kubectl create --edit ์ปค๋งจ๋“œ๋Š” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์ „์— ํŽธ์ง‘์„ ์œ„ํ•ด ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์—ด์–ด์ค€๋‹ค.

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

์ตœ์ข… ์ˆ˜์ • August 25, 2022 at 1:12 AM PST: [ko] Update outdated files in dev-1.24-ko.3 (M53-M62) (#35876) (80b9ccd641)