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: Kubelet authentication/authorization

Kubelet ์ธ์ฆ/์ธ๊ฐ€

๊ฐœ์š”

kubelet์˜ HTTPS ์—”๋“œํฌ์ธํŠธ๋Š” ๋‹ค์–‘ํ•œ ๋ฏผ๊ฐ๋„์˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ œ๊ณตํ•˜๋Š” API๋ฅผ ๋…ธ์ถœํ•˜๋ฉฐ, ๋…ธ๋“œ์™€ ์ปจํ…Œ์ด๋„ˆ ๋‚ด์—์„œ ๋‹ค์–‘ํ•œ ์ˆ˜์ค€์˜ ๊ถŒํ•œ์œผ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•œ๋‹ค.

์ด ๋ฌธ์„œ๋Š” kubelet์˜ HTTPS ์—”๋“œํฌ์ธํŠธ์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ธ์ฆํ•˜๊ณ  ์ธ๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ๋‹ค.

Kubelet ์ธ์ฆ

๊ธฐ๋ณธ์ ์œผ๋กœ, ๋‹ค๋ฅธ ๊ตฌ์„ฑ์˜ ์ธ์ฆ ๋ฐฉ๋ฒ•์— ์˜ํ•ด ๊ฑฐ๋ถ€๋˜์ง€ ์•Š์€ kubelet์˜ HTTPS ์—”๋“œํฌ์ธํŠธ์— ๋Œ€ํ•œ ์š”์ฒญ์€ ์ต๋ช…์˜ ์š”์ฒญ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋ฉฐ, system:anonymous์˜ ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ system:unauthenticated ์˜ ๊ทธ๋ฃน์ด ๋ถ€์—ฌ๋œ๋‹ค.

์ต๋ช…์˜ ์ ‘๊ทผ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ์ธ์ฆ๋˜์ง€ ์•Š์€ ์š”์ฒญ์— 401 Unauthorized ์‘๋‹ต์„ ๋ณด๋‚ด๋ ค๋ฉด ์•„๋ž˜๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค.

  • --anonymous-auth=false ํ”Œ๋ž˜๊ทธ๋กœ kubelet์„ ์‹œ์ž‘

kubelet์˜ HTTPS ์—”๋“œํฌ์ธํŠธ์— ๋Œ€ํ•œ X509 ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ ์ธ์ฆ์„ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ์•„๋ž˜๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค.

  • --client-ca-file ํ”Œ๋ž˜๊ทธ๋กœ kubelet์„ ์‹œ์ž‘ํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” CA ๋ฒˆ๋“ค์„ ์ œ๊ณต
  • --kubelet-client-certificate ๋ฐ --kubelet-client-key ํ”Œ๋ž˜๊ทธ๋กœ apiserver๋ฅผ ์‹œ์ž‘
  • ์ž์„ธํ•œ ๋‚ด์šฉ์€ apiserver ์ธ์ฆ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ 

API bearer ํ† ํฐ(์„œ๋น„์Šค ๊ณ„์ • ํ† ํฐ ํฌํ•จ)์„ kubelet์˜ HTTPS ์—”๋“œํฌ์ธํŠธ ์ธ์ฆ์— ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์•„๋ž˜๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค.

  • API ์„œ๋ฒ„์—์„œ authentication.k8s.io/v1beta1 API ๊ทธ๋ฃน์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธ
  • --authentication-token-webhook ๋ฐ --kubeconfig ํ”Œ๋ž˜๊ทธ๋กœ kubelet์„ ์‹œ์ž‘
  • kubelet์€ ๊ตฌ์„ฑ๋œ API ์„œ๋ฒ„์˜ TokenReview API๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ bearer ํ† ํฐ์—์„œ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๊ฒฐ์ •

Kubelet ์Šน์ธ

์„ฑ๊ณต์ ์œผ๋กœ ์ธ์ฆ๋œ ๋ชจ๋“  ์š”์ฒญ(์ต๋ช… ์š”์ฒญ ํฌํ•จ)์ด ์Šน์ธ๋œ๋‹ค. ๊ธฐ๋ณธ ์ธ๊ฐ€ ๋ชจ๋“œ๋Š” ๋ชจ๋“  ์š”์ฒญ์„ ํ—ˆ์šฉํ•˜๋Š” AlwaysAllow ์ด๋‹ค.

kubelet API์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์„ธ๋ถ„ํ™”ํ•˜๋Š” ๋ฐ๋Š” ๋‹ค์–‘ํ•œ ์ด์œ ๊ฐ€ ์žˆ๋‹ค.

  • ์ต๋ช… ์ธ์ฆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ต๋ช… ์‚ฌ์šฉ์ž์˜ kubelet API ํ˜ธ์ถœ ๊ธฐ๋Šฅ์€ ์ œํ•œ๋˜์–ด์•ผ ํ•จ
  • bearer ํ† ํฐ ์ธ์ฆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ž„์˜์˜ API ์‚ฌ์šฉ์ž(API ๊ณ„์ •)์˜ kubelet API ํ˜ธ์ถœ ๊ธฐ๋Šฅ์€ ์ œํ•œ๋˜์–ด์•ผ ํ•จ
  • ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ตฌ์„ฑ๋œ CA์—์„œ ์„œ๋ช…ํ•œ ์ผ๋ถ€ ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ๋งŒ kubelet API๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ—ˆ์šฉํ•ด์•ผ ํ•จ

kubelet API์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์„ธ๋ถ„ํ™”ํ•˜๋ ค๋ฉด API ์„œ๋ฒ„์— ๊ถŒํ•œ์„ ์œ„์ž„ํ•œ๋‹ค.

  • authorization.k8s.io/v1beta1 API ๊ทธ๋ฃน์ด API ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธ
  • --authorization-mode=Webhook ๋ฐ --kubeconfig ํ”Œ๋ž˜๊ทธ๋กœ kubelet์„ ์‹œ์ž‘
  • kubelet์€ ๊ตฌ์„ฑ๋œ API ์„œ๋ฒ„์˜ SubjectAccessReview API๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๊ฐ๊ฐ์˜ ์š”์ฒญ์ด ์Šน์ธ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธ

kubelet์€ API ์š”์ฒญ์„ apiserver์™€ ๋™์ผํ•œ ์š”์ฒญ ์†์„ฑ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šน์ธํ•œ๋‹ค.

๋™์‚ฌ๋Š” ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์˜ HTTP ๋™์‚ฌ๋กœ๋ถ€ํ„ฐ ๊ฒฐ์ •๋œ๋‹ค.

HTTP ๋™์‚ฌ์š”์ฒญ ๋™์‚ฌ
POSTcreate
GET, HEADget
PUTupdate
PATCHpatch
DELETEdelete

๋ฆฌ์†Œ์Šค ๋ฐ ํ•˜์œ„ ๋ฆฌ์†Œ์Šค๋Š” ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์˜ ๊ฒฝ๋กœ๋กœ๋ถ€ํ„ฐ ๊ฒฐ์ •๋œ๋‹ค.

Kubelet API๋ฆฌ์†Œ์Šคํ•˜์œ„ ๋ฆฌ์†Œ์Šค
/stats/*nodesstats
/metrics/*nodesmetrics
/logs/*nodeslog
/spec/*nodesspec
all othersnodesproxy

๋„ค์ž„์ŠคํŽ˜์ด์Šค์™€ API ๊ทธ๋ฃน ์†์„ฑ์€ ํ•ญ์ƒ ๋นˆ ๋ฌธ์ž์—ด์ด๋ฉฐ, ๋ฆฌ์†Œ์Šค ์ด๋ฆ„์€ ํ•ญ์ƒ kubelet์˜ Node API ์˜ค๋ธŒ์ ํŠธ ์ด๋ฆ„์ด๋‹ค.

์ด ๋ชจ๋“œ๋กœ ์‹คํ–‰ํ•  ๋•Œ, --kubelet-client-certificate ๋ฐ --kubelet-client-key ํ”Œ๋ž˜๊ทธ๋กœ ์‹๋ณ„๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‹ค์Œ ์†์„ฑ์— ๋Œ€ํ•œ ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

  • verb=*, resource=nodes, subresource=proxy
  • verb=*, resource=nodes, subresource=stats
  • verb=*, resource=nodes, subresource=log
  • verb=*, resource=nodes, subresource=spec
  • verb=*, resource=nodes, subresource=metrics
์ตœ์ข… ์ˆ˜์ • January 10, 2023 at 12:14 PM PST: Update outdated files in dev-1.26-ko.1 (M98-M108) (4d9dc64f95)