Kubernetes: 'x509 : ์•Œ ์ˆ˜์—†๋Š” ๊ธฐ๊ด€์—์„œ ์„œ๋ช… ํ•œ ์ธ์ฆ์„œ'์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ ์˜ค์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 03์›” 31์ผ  ยท  37์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: kubernetes/kubernetes

๋ฒ„๊ทธ ๋ณด๊ณ ์„œ

Kubernetes ๋ฒ„์ „ :

ํด๋ผ์ด์–ธํŠธ ๋ฒ„์ „ : version.Info {Major : "1", Minor : "5", GitVersion : "v1.5.2", GitCommit : "08e099554f3c31f6e6f07b448ab3ed78d0520507", GitTreeState : "clean", BuildDate : "2017-01-12T04 : 57 : 25Z ", GoVersion :"go1.7.4 ", ์ปดํŒŒ์ผ๋Ÿฌ :"gc ", ํ”Œ๋žซํผ :"linux / amd64 "}

์„œ๋ฒ„ ๋ฒ„์ „ : version.Info {Major : "1", Minor : "5", GitVersion : "v1.5.2", GitCommit : "08e099554f3c31f6e6f07b448ab3ed78d0520507", GitTreeState : "clean", BuildDate : "2017-01-12T04 : 52 : 34Z ", GoVersion :"go1.7.4 ", ์ปดํŒŒ์ผ๋Ÿฌ :"gc ", ํ”Œ๋žซํผ :"linux / amd64 "}

ํ™˜๊ฒฝ :

  • ํด๋ผ์šฐ๋“œ ์ œ๊ณต ์—…์ฒด ๋˜๋Š” ํ•˜๋“œ์›จ์–ด ๊ตฌ์„ฑ :
  • ์šด์˜์ฒด์ œ : CentOS Linux 7
  • ์ปค๋„ : Linux kubernetes-master-3302 3.10.0-327.el7.x86_64 # 1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU / Linux

๋ฌด์Šจ ์ผ์ด ์ผ์–ด ๋‚ฌ์Šต๋‹ˆ๊นŒ?
์•„๋ž˜ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ POD๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
kubectl create --insecure-skip-tls-verify -f monitorms-rc.yml
๋‚˜๋Š” monitorms-mmqhm 0/1 ImagePullBackOff ๋ฐ›๋Š”๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‹ฌ๋ฆฌ๋ฉด
kubectl describe pod monitorms-mmqhm --namespace=sample
Warning Failed Failed to pull image "10.78.0.228:5000/monitorms": Error response from daemon: {"message":"Get https://10.78.0.228:5000/v1/_ping: x509: certificate signed by unknown authority"}

๋‚ด ๋ฐฐํฌ ๊ตฌ์„ฑ ์–ด๋””์—๋„ ์–ธ๊ธ‰ ๋œ ์ธ์ฆ์„œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

10.78.0.228์€ ๋ณด์•ˆ๋˜์ง€ ์•Š์€ ๊ฐœ์ธ Docker ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.
Kubernetes๋Š” --insecure-skip-tls-verify ํ”Œ๋ž˜๊ทธ๊ฐ€์žˆ๋Š” ์„œ๋ฒ„ ์ธ์ฆ์„œ๋ฅผ ๋ฌด์‹œํ•˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๊นŒ?

kinbug lifecyclrotten sinode

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‹น์‹ ์€ ์ด๊ฒƒ์ด ์ง€๊ธˆ๊นŒ์ง€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

CA ์ธ์ฆ์„œ

๋ฌด๋‹จ ์ ‘๊ทผ ๋ฐฉ์ง€ ์‹ค์ œ ๊ธฐ๋ก ์‚ฌ๋ก€ : ZERO
CA ์ธ์ฆ์„œ๋ฅผ ํˆด๋ง์— ์ œ๋Œ€๋กœ ํ†ตํ•ฉํ•˜์ง€ ์•Š๋Š” ํˆด๋ง์œผ๋กœ ์ธํ•ด ๋‚ญ๋น„๋˜๋Š” ์ˆ˜๋งŽ์€ ๊ฐœ๋ฐœ์ž ์‹œ๊ฐ„ : ์ˆ˜๋ฐฑ๋งŒ ์‹œ๊ฐ„์˜ ์‹œ๊ฐ„.

์ด์•ผ๊ธฐ์˜ ๊ตํ›ˆ. CA ์ธ์ฆ์„œ๋ฅผ ๋ฒ„๋ฆฌ์‹ญ์‹œ์˜ค. ํ•จ๊ป˜ ์ผํ•  ๋„๊ตฌ๋ฅผ ์–ป์œผ๋ ค๊ณ  ํ•  ๋•Œ๋งˆ๋‹ค ๊ทธ๋Ÿฐ ๋ฐœ๋ž€์Šค. ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์•„๋ฌด๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ์•„๋ฌด๋„. ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ๋ชจ๋“  ์ธ์ฆ์„œ๋ฅผ ๋ชจ๋“  ๊ธฐ๊ณ„์™€ ํ† ์Šคํ„ฐ์— ๋ณต์‚ฌํ•˜๊ธฐ ๋งŒํ•˜๋ฉด ๋งํ•  x509 : ์•Œ ์ˆ˜์—†๋Š” ๊ธฐ๊ด€์— ์˜ํ•ด ์„œ๋ช… ๋œ ์ธ์ฆ์„œ๋Š” ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ๋งˆ๋‹ค ํ—›์†Œ๋ฆฌ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ Docker๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” kubernetes์˜ ๋น„๋ฐ€์€ ๋ฌด์šฉ์ง€๋ฌผ์ด๊ธฐ ๋•Œ๋ฌธ์—์ด ํด๋Ÿฌ์Šคํ„ฐ์˜ ํ•ต์‹ฌ์œผ๋กœ ๋ฐ”๋กœ ๊ฐ€์„œ ์ธ์ฆ์„œ๋ฅผ ์„ค์น˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

ํ”ผ ๋ฌป์€ CA ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜์—ˆ์„ ๋ˆ์„ ์‚ฌ์šฉํ•˜๊ณ  ํ•ด์ปค๊ฐ€ ์˜ฌ ๋•Œ ๊ฐ•๊ฒฝ ํ•œ ์ค„ ์„

๋ชจ๋“  37 ๋Œ“๊ธ€

๋‚˜๋Š” ์—ฌ๊ธฐ์— ์งˆ๋ฌธํ–ˆ๋‹ค : http://stackoverflow.com/q/43150437/969784

์ž์ฒด ์„œ๋ช… ๋œ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด --skip-tls-verify๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ CA๋Š” ์—ฌ์ „ํžˆ ๋กœ์ปฌ ์‹ ๋ขฐ ์ €์žฅ์†Œ์— ์ถ”๊ฐ€๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

ํ—‰ํ—‰

  • ์ฒ˜์Œ --insecure-skip-tls-verify ๋Š” kubectl create ๋Œ€ํ•œ ์œ ํšจํ•œ ์ธ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
  • ์‹ค์ œ๋กœ x509 error ์€ docker ์ชฝ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ๋ชฌ์ด ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ ์˜ค์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋ณด์•ˆ์„ ์‹ ๋ขฐ / ๊ฑด๋„ˆ ๋›ฐ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋Š” ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋„์ปค ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋ฅผ ์ฐธ์กฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@dixudx ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์–ธ๊ธ‰ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์—ˆ๋‹ค. ์ด kubernetes ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์— ์ „์—ญ ์ ์œผ๋กœ ์„œ๋ฒ„ ์ธ์ฆ์„œ๋ฅผ ์„ค์น˜ ํ•œ ๋‹ค์Œ ์‹คํ–‰์ค‘์ธ docker ์„œ๋น„์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ํ›„ docker pull 10.78.0.228:5000/monitorms ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ์ด๋ฏธ์ง€๋ฅผ ์ˆ˜๋™์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ „์—๋Š” ํ•ด๋‹น ์ด๋ฏธ์ง€๋ฅผ ์ˆ˜๋™์œผ๋กœ ๊ฐ€์ ธ ์˜ค๋Š” ๋™์•ˆ์ด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Kubernetes ๋…ธ๋“œ์— ์ธ์ฆ์„œ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ?

@dixudx ๋˜ํ•œ kubectl options ๋Š” "์ „์—ญ"์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๋กœ --insecure-skip-tls-verify ์„ ๋‚˜์—ดํ•˜๊ณ  ๋ชจ๋“  Kubernetes ๋ช…๋ น์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.

--insecure-skip-tls-verify ์€ ๋„์ปค ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๊ฐ€ ์•„๋‹Œ ์„œ๋ฒ„์˜ ์ธ์ฆ์„œ ํ™•์ธ์„ ๊ฑด๋„ˆ ๋›ฐ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ ์˜ค๋Š” ๋™์•ˆ Docker ๋ฐ๋ชฌ์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด kubernetes ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์— ์ „์—ญ ์ ์œผ๋กœ ์„œ๋ฒ„ ์ธ์ฆ์„œ๋ฅผ ์„ค์น˜ ํ•œ ๋‹ค์Œ ์‹คํ–‰์ค‘์ธ docker ์„œ๋น„์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

k8s ๋งˆ์Šคํ„ฐ๊ฐ€ ์•„๋‹Œ ํฌ๋“œ๋ฅผ ๋ณด์œ ํ•˜๋Š” k8s ๋…ธ๋“œ์—์„œ docker pull 10.78.0.228:5000/monitorms ๋ช…๋ น์„ ์‹œ๋„ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ kubectl create ๋Œ€ํ•œ ์œ ํšจํ•œ ์ธ์ˆ˜์ด์ง€๋งŒ kubectl๊ณผ API ์„œ๋ฒ„ ๊ฐ„์˜ ์‹ ๋ขฐ ๋งŒ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

ํ’€ ์˜ค๋ฅ˜๋Š” ๋…ธ๋“œ์™€ ๋„์ปค ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์‚ฌ์ด์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋…ธ๋“œ๋Š” ์ธ์ฆ์„œ๋ฅผ ์‹ ๋ขฐํ•˜๊ฑฐ๋‚˜ ํ•ด๋‹น ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์‹ ๋ขฐํ•  ์ˆ˜์—†๋Š” ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค (๋…ธ๋“œ๊ฐ€ TLS ํ™•์ธ ์˜ค๋ฅ˜๋ฅผ ํ—ˆ์šฉํ•˜๋„๋ก ํ•จ).

@supereagle k8s ๋…ธ๋“œ์˜ ๋„์ปค ๊ตฌ์„ฑ ํŒŒ์ผ์— ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ž˜ํ•˜๋ฉด ๊ทธ๊ฒŒ ํŠธ๋ฆญ์„ํ•ด์•ผ

๋‹น์‹ ์€ ์ด๊ฒƒ์ด ์ง€๊ธˆ๊นŒ์ง€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

CA ์ธ์ฆ์„œ

๋ฌด๋‹จ ์ ‘๊ทผ ๋ฐฉ์ง€ ์‹ค์ œ ๊ธฐ๋ก ์‚ฌ๋ก€ : ZERO
CA ์ธ์ฆ์„œ๋ฅผ ํˆด๋ง์— ์ œ๋Œ€๋กœ ํ†ตํ•ฉํ•˜์ง€ ์•Š๋Š” ํˆด๋ง์œผ๋กœ ์ธํ•ด ๋‚ญ๋น„๋˜๋Š” ์ˆ˜๋งŽ์€ ๊ฐœ๋ฐœ์ž ์‹œ๊ฐ„ : ์ˆ˜๋ฐฑ๋งŒ ์‹œ๊ฐ„์˜ ์‹œ๊ฐ„.

์ด์•ผ๊ธฐ์˜ ๊ตํ›ˆ. CA ์ธ์ฆ์„œ๋ฅผ ๋ฒ„๋ฆฌ์‹ญ์‹œ์˜ค. ํ•จ๊ป˜ ์ผํ•  ๋„๊ตฌ๋ฅผ ์–ป์œผ๋ ค๊ณ  ํ•  ๋•Œ๋งˆ๋‹ค ๊ทธ๋Ÿฐ ๋ฐœ๋ž€์Šค. ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์•„๋ฌด๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ์•„๋ฌด๋„. ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ๋ชจ๋“  ์ธ์ฆ์„œ๋ฅผ ๋ชจ๋“  ๊ธฐ๊ณ„์™€ ํ† ์Šคํ„ฐ์— ๋ณต์‚ฌํ•˜๊ธฐ ๋งŒํ•˜๋ฉด ๋งํ•  x509 : ์•Œ ์ˆ˜์—†๋Š” ๊ธฐ๊ด€์— ์˜ํ•ด ์„œ๋ช… ๋œ ์ธ์ฆ์„œ๋Š” ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ๋งˆ๋‹ค ํ—›์†Œ๋ฆฌ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ Docker๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” kubernetes์˜ ๋น„๋ฐ€์€ ๋ฌด์šฉ์ง€๋ฌผ์ด๊ธฐ ๋•Œ๋ฌธ์—์ด ํด๋Ÿฌ์Šคํ„ฐ์˜ ํ•ต์‹ฌ์œผ๋กœ ๋ฐ”๋กœ ๊ฐ€์„œ ์ธ์ฆ์„œ๋ฅผ ์„ค์น˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

ํ”ผ ๋ฌป์€ CA ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜์—ˆ์„ ๋ˆ์„ ์‚ฌ์šฉํ•˜๊ณ  ํ•ด์ปค๊ฐ€ ์˜ฌ ๋•Œ ๊ฐ•๊ฒฝ ํ•œ ์ค„ ์„

/ sig auth

gcr.io๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๋™์•ˆ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ง๋ฉด ํ•  ๊ฒฝ์šฐ ๊ฐ€๋Šฅํ•œ ํ•œ ๊ฐ€์ง€ ์ƒํ™ฉ์€ ์ปดํ“จํ„ฐ์˜ CA ์ธ์ฆ์„œ๊ฐ€ ๋„ˆ๋ฌด ์˜ค๋ž˜๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

docker pull gcr.io/google_containers/kube-apiserver-amd64:v1.7.2
Trying to pull repository gcr.io/google_containers/kube-apiserver-amd64 ...
Get https://gcr.io/v1/_ping: x509: certificate signed by unknown authority '

RH / CentOS์—์„œ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ์†”๋ฃจ์…˜ :

yum check-update ca-certificates; (($?==100)) && yum update ca-certificates || yum reinstall ca-certificates
update-ca-trust extract

cc @ kubernetes / sig-node-bugs ์ด๋ฏธ์ง€ ํ’€๋ง ๋ฌธ์ œ

ํ•ด๋‹น ๋…ธ๋“œ๋กœ ์ด๋™ํ•˜์—ฌ curl -v https://gcr.io/v1/_ping ์‹œ๋„ํ•˜๋ฉด ์„ฑ๊ณต์ ์ธ ์‘๋‹ต์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ๋…ธ๋“œ๊ฐ€ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ ์˜ค๋Š” ๋ฐฉ์‹์— ๋ฌธ์ œ๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ•ด๋‹น ๋…ธ๋“œ์—์„œ ๋ฃจํŠธ ์ธ์ฆ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ๋งŒํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ ์ง€๊ธˆ ์šฐ๋ฆฌ๋ฅผ ๋•Œ๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@ srossross-tableau

๋‚ด๊ฐ€ ๊ธฐ์–ตํ•˜๋Š” ํ•œ ์ด๊ฒƒ์€ kubernetes ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋„์ปค ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. Docker๋Š” Linux์˜ CA ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋„ ์ด์œ ๋ฅผ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.

Docker๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด๋Ÿฌํ•œ ์ธ์ฆ์„œ๋ฅผ ์ˆ˜๋™์œผ๋กœ (ํ•ด๋‹น ํฌ๋“œ๋ฅผ ์ƒ์„ฑ ํ•  ์ˆ˜์žˆ๋Š” ๋ชจ๋“  ๋…ธ๋“œ์—) ์„ค์น˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

/etc/docker/certs.d/mydomain.com:1234/ca.crt

์ธ์ฆ์„œ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ ํ›„ ๋…ธ๋“œ๋ฅผ ๋„์‚ดํ•ด์•ผํ•˜๋ฏ€๋กœ ์ด๋Š” ๋งค์šฐ ์„ฑ๊ฐ€์‹  ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  kubernetes๋Š” ํ•ญ์ƒ ๋…ธ๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๊ฐ€ ์•„์ง ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๋ฐฉ๋ฒ•์€ ๋‚˜์—๊ฒŒ ์ˆ˜์ˆ˜๊ป˜๋ผ์ž…๋‹ˆ๋‹ค. ์™„๋ฒฝํ•œ IMO์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ kubernetes์˜ ๋น„๋ฐ€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์ œ๋กœ ํ•ด๊ฒฐ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์–ด๋–ป๊ฒŒ ๋“  ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ฐ€ ์•Œ์•„!?

@pompomJuice , ์ด๊ฒƒ์ด minikube ์ด๋ฏธ์ง€ ๋ฌธ์ œ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ด ์‚ฌ์ดํŠธ๋ฅผ ๋ง์•„๋„ ์•ˆ๋ผ

minikube ssh -- curl -I https://storage.googleapis.com
curl: (60) SSL certificate problem: self signed certificate in certificate chain
$minikube logs
...
Nov 08 18:19:06 minikube localkube[3032]: E1108 18:19:06.788101    3032 remote_image.go:108] PullImage "gcr.io/google_containers/heapster:v1.3.0" from image service failed: rpc error: code = 2 desc = error pulling image configuration: Get https://storage.googleapis.com/artifacts.google-containers.appspot.com/containers/images/sha256:f9d33bedfed3f1533f734a73718c15976fbd37f04f383087f35e5ebd91b18d1e: x509: certificate signed by unknown authority
..

์ •ํ™•ํžˆ ๋‚ด ์š”์ . ๊ทธ ์ปฌ ์˜ค๋ฅ˜๋Š” ๋ช…๋ฐฑํ•œ ์ž˜๋ชป์ž…๋‹ˆ๋‹ค. ์ธ์ฆ์„œ๊ฐ€ ์žˆ์ง€๋งŒ ์ž์ฒด ์„œ๋ช…๋˜์—ˆ์Œ์„ ์•Œ๋ ค์ค๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๋Ÿด ๊ฐ€๋Šฅ์„ฑ์ด ๊ฑฐ์˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. (์–ด๋–ป๊ฒŒ ๋“  ํ•ดํ‚นํ•˜์ง€ ์•Š๋Š” ํ•œ)

์ด๋Š” ํ•ด๋‹น ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ช…๋ฐฑํžˆ ์ž˜๋ชป๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ฑฐ์˜ ์•„๋ฌด๋„์ด ๋ฌผ๊ฑด์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ด์ „ ์š”์ ๊ณผ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

์œ„์—์„œ ์ œ์•ˆํ•œ ReSearchITEng๊ณผ ๊ฐ™์€ ํ•ด๋‹น ์ƒ์ž์˜ ์ธ์ฆ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์ฆ์„œ๋Š” digicert, GCE์—์„œ ์‹คํ–‰๋˜๋Š” kubernetes ํด๋Ÿฌ์Šคํ„ฐ, ํ˜ธ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ์„ค์น˜๋œ ์ธ์ฆ์„œ ๋ฐ /etc/docker/certs.d/์— ์ €์žฅ๋˜๋ฉฐ ์—ฌ์ „ํžˆ x509 ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.

Docker ๋กœ๊ทธ :
TLS handshake error from XXXXXXXXXX: remote error: tls: bad certificate

Kub ๋ฒ„์ „ :
Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.4", GitCommit:"9befc2b8928a9426501d3bf62f72849d5cbcd5a3", GitTreeState:"clean", BuildDate:"2017-11-20T05:28:34Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

์ฃผ์ตœ์ž:
NAME = "์šฐ๋ถ„ํˆฌ"
VERSION = "16.04.3 LTS (Xenial Xerus)"
ID = ์šฐ๋ถ„ํˆฌ
ID_LIKE = ๋ฐ๋น„์•ˆ
PRETTY_NAME = "Ubuntu 16.04.3 LTS"
VERSION_ID = "16.04"
HOME_URL = " http://www.ubuntu.com/ "
SUPPORT_URL = " http://help.ubuntu.com/ "
BUG_REPORT_URL = " http://bugs.launchpad.net/ubuntu/ "
VERSION_CODENAME = xenial
UBUNTU_CODENAME = xenial

'/etc/docker/certs.d/'์— ์ „์ฒด ํด๋” ์ด๋ฆ„์„ ๋ถ™์—ฌ ๋„ฃ์œผ์‹ญ์‹œ์˜ค. ๊ทธ๋ฆฌ๊ณ  ์ธ์ฆ์„œ์˜ ํŒŒ์ผ ์ด๋ฆ„.

๋ชจ๋“  ๋…ธ๋“œ์— ํ•ด๋‹น ์ธ์ฆ์„œ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์œผ๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

root @ kubernetes-minion-group-96k7 : /etc/docker/certs.d/ "foo.bar.com": 5000 # ll
์ด 16
drwxr-xr-x 2 ๋ฃจํŠธ ๋ฃจํŠธ 4096 12 ์›” 2 ์ผ 20:43 ./
drwxr-xr-x 3 ๋ฃจํŠธ ๋ฃจํŠธ 4096 12 ์›” 2 ์ผ 20:07 ../
-rw-r--r-- 1 ๋ฃจํŠธ ๋ฃจํŠธ 3332 12 ์›” 2 ์ผ 20:23 domain.crt
-rw-r--r-- 1 ๊ฐœ์˜ ๋ฃจํŠธ ๋ฃจํŠธ 1675 ๋…„ 12 ์›” 2 ์ผ 20:43 domain.key

์ง€๊ธˆ๊นŒ์ง€ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋‹จ ํ•˜๋‚˜์˜ ๋…ธ๋“œ :)

ca.crt ๋ฐ client.key๋กœ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค.

์—ฌ๊ธฐ์ฒ˜๋Ÿผ : https://docs.docker.com/engine/security/certificates/#creating -the-client-certificates

๋””๋ ‰ํ† ๋ฆฌ์—์„œ ca.crt ๋ฐ ca.key๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  secret์—์„œ ํ˜ธ์ถœ ๋œ ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋…ธ๋“œ์—์„œ ๋„์ปค ์„œ๋น„์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ณ  ํฌ๋“œ๋ฅผ ๋‹ค์‹œ ๋ฐฐํฌํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

curl์˜ ์ถ”๊ฐ€ ์ •๋ณด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

curl -vvI https://foo.bar.com : 5000 / v2 /

  • XXX.XXX.XXX.XXX ์‹œ๋„ ์ค‘ ...
  • TCP_NODELAY ์„ค์ •
  • foo.bar.com (XXX.XXX.XXX.XXX) ํฌํŠธ 5000 (# 0)์— ์—ฐ๊ฒฐ๋จ
  • ALPN, h2 ์ œ๊ณต
  • http / 1.1์„ ์ œ๊ณตํ•˜๋Š” ALPN
  • ์•”ํ˜ธ ์„ ํƒ : PROFILE = SYSTEM
  • ์ธ์ฆ์„œ ํ™•์ธ ์œ„์น˜๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • CA ํŒŒ์ผ : /etc/pki/tls/certs/ca-bundle.crt
    CApath : ์—†์Œ
  • TLSv1.2 (์ถœ๋ ฅ), TLS ํ•ธ๋“œ ์…ฐ์ดํฌ, ํด๋ผ์ด์–ธํŠธ ์•ˆ๋…•ํ•˜์„ธ์š” (1) :
  • TLSv1.2 (IN), TLS ํ•ธ๋“œ ์…ฐ์ดํฌ, ์„œ๋ฒ„ hello (2) :
  • TLSv1.2 (IN), TLS ํ•ธ๋“œ ์…ฐ์ดํฌ, ์ธ์ฆ์„œ (11) :
  • TLSv1.2 (์ถœ๋ ฅ), TLS ๊ฒฝ๊ณ , ์„œ๋ฒ„ ์•ˆ๋…•ํ•˜์„ธ์š” (2) :
  • SSL ์ธ์ฆ์„œ ๋ฌธ์ œ : ๋กœ์ปฌ ๋ฐœ๊ธ‰์ž ์ธ์ฆ์„œ๋ฅผ ์–ป์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ์ผ์‹œ ์ค‘์ง€ ์ŠคํŠธ๋ฆผ์„ ์ค‘์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค!
  • ์—ฐ๊ฒฐ ๋‹ซ๊ธฐ 0
    curl : (60) SSL ์ธ์ฆ์„œ ๋ฌธ์ œ : ๋กœ์ปฌ ๋ฐœ๊ธ‰์ž ์ธ์ฆ์„œ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
    ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ : https://curl.haxx.se/docs/sslcerts.html

curl์€ ๊ธฐ๋ณธ์ ์œผ๋กœ "๋ฒˆ๋“ค"์„ ์‚ฌ์šฉํ•˜์—ฌ SSL ์ธ์ฆ์„œ ํ™•์ธ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ธ์ฆ ๊ธฐ๊ด€ (CA) ๊ณต๊ฐœ ํ‚ค (CA ์ธ์ฆ์„œ). ๊ธฐ๋ณธ๊ฐ’ ์ธ ๊ฒฝ์šฐ
๋ฒˆ๋“ค ํŒŒ์ผ์ด ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์ฒด ํŒŒ์ผ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
--cacert ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ด HTTPS ์„œ๋ฒ„๊ฐ€ ๋‹ค์Œ์— ํ‘œ์‹œ๋œ CA์—์„œ ์„œ๋ช… ํ•œ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
๋ฒˆ๋“ค๋กœ ์ธํ•ด ์ธ์ฆ์„œ ํ™•์ธ์ด ์‹คํŒจํ–ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ธ์ฆ์„œ ๋ฌธ์ œ (๋งŒ๋ฃŒ๋˜์—ˆ๊ฑฐ๋‚˜ ์ด๋ฆ„์ด
URL์˜ ๋„๋ฉ”์ธ ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š์Œ).
curl์˜ ์ธ์ฆ์„œ ํ™•์ธ์„ ๋„๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
-k (๋˜๋Š” --insecure) ์˜ต์…˜.
HTTPS-proxy์—๋Š” ์œ ์‚ฌํ•œ ์˜ต์…˜ --proxy-cacert ๋ฐ --proxy-insecure๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์‹ค์ˆ˜๋ฅผ ํ–ˆ์–ด, ํ•˜๋‚˜๋Š” ca.key๊ฐ€ ์•„๋‹ˆ๋ผ client.key ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ƒ์ž์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์ˆ˜๋™์œผ๋กœ ์‹œ์ž‘ํ•˜์—ฌ ๋‹ค์‹œ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

๊ทธ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค :( ๊ฐ™์€ ์˜ค๋ฅ˜

๋ช…๋ น ์ค„์—์„œ Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์‹œ์ž‘ํ•˜๋ ค๊ณ ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ๋ฉ๋‹ˆ๊นŒ?

๋…ธ๋“œ ์ค‘ ํ•˜๋‚˜์—์„œ kubectl run์„ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด docker run์„ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ? ๋„ ์ปค๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋˜์ง€๋งŒ ์—ฐ๊ฒฐ์ด ๊ฑฐ๋ถ€๋ฉ๋‹ˆ๋‹ค. kubctl์„ ์‚ฌ์šฉํ•˜๋ฉด error: failed to discover supported resources: an error on the server ("") has prevented the request from succeeding

kubectl ํ”„๋ก์‹œ๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋กœ์ปฌ ๋จธ์‹ ์—์„œ kubectl์„ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋˜์ง€๋งŒ ๋‹ค์Œ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
http : ์„œ๋ฒ„๊ฐ€ HTTPS ํด๋ผ์ด์–ธํŠธ์— HTTP ์‘๋‹ต์„ ์ œ๊ณตํ•จ

kubectl ๋ช…๋ น : kubectl run --image = registry : 2 devreg-test2 --port = 5000 --env = "DOMAIN = cluster, REGISTRY_HTTP_ADDR = 0.0.0.0 : 5000, REGISTRY_HTTP_TLS_CERTIFICATE = / certs / ca.crt, REGISTRY_HTTP_TLS_KEY = / certs /client.key "--expose = true

๋‹ค์Œ์„ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค.

๊ณ ์œ  ํ•œ ๋„์ปค ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“œ์‹ญ์‹œ์˜ค. ์ด๋ฅผ ์œ„ํ•ด gitlab์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌด๋ฃŒ์ž…๋‹ˆ๋‹ค.

http์—์„œ ์ผ๋ถ€ ์ด๋ฏธ์ง€๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜์‹ญ์‹œ์˜ค. ์ด ์ด๋ฏธ์ง€๋กœ ํฌ๋“œ๋ฅผ ์‹œ์ž‘ํ•ด๋ณด์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ๋ณด๊ณ ์žˆ๋Š”๋„ ์ปค๊ฐ€ ์‹ค์ œ๋กœ ํ•ด๋‹น ํฌ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์˜ฌ๋ฐ”๋ฅธ ๋…ธ๋“œ๊ฐ€์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ docker run ์ด์ „๊ณผ ๊ฐ™์ด ์—ฐ๊ฒฐ์ด ๊ฑฐ๋ถ€๋˜์—ˆ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

90 ์ผ ๋™์•ˆ ํ™œ๋™์ด ์—†์œผ๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ถ€์‹คํ•ด์ง‘๋‹ˆ๋‹ค.
/remove-lifecycle stale ํ•˜์—ฌ ์ตœ์‹  ๋ฌธ์ œ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
๋น„ํ™œ์„ฑ ๋ฌธ์ œ๋Š” ์ถ”๊ฐ€๋กœ 30 ์ผ ๋™์•ˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์ฉ๊ณ  ๊ฒฐ๊ตญ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ์ง€๊ธˆ ์ข…๋ฃŒํ•ด๋„ ์•ˆ์ „ํ•˜๋‹ค๋ฉด /close ํ•˜์—ฌ ์ข…๋ฃŒํ•˜์„ธ์š”.

sig-testing, kubernetes / test-infra ๋ฐ / ๋˜๋Š” fejta์— ํ”ผ๋“œ๋ฐฑ์„
/ lifecycle stale

๋น„ํ™œ์„ฑ ๋ฌธ์ œ๋Š” 30 ์ผ ๋™์•ˆ ํ™œ๋™์ด ์—†์œผ๋ฉด ๋ถ€ํŒจํ•ฉ๋‹ˆ๋‹ค.
/remove-lifecycle rotten ํ•˜์—ฌ ์ตœ์‹  ๋ฌธ์ œ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
์ฉ์€ ๋ฌธ์ œ๋Š” ์ถ”๊ฐ€๋กœ 30 ์ผ ๋™์•ˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ๋‹ซํž™๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ์ง€๊ธˆ ์ข…๋ฃŒํ•ด๋„ ์•ˆ์ „ํ•˜๋‹ค๋ฉด /close ํ•˜์—ฌ ์ข…๋ฃŒํ•˜์„ธ์š”.

sig-testing, kubernetes / test-infra ๋ฐ / ๋˜๋Š” fejta์— ํ”ผ๋“œ๋ฐฑ์„
/ lifecycle rotten
/ remove-lifecycle stale

์ฉ์€ ๋ฌธ์ œ๋Š” 30 ์ผ ๋™์•ˆ ํ™œ๋™์ด ์—†์œผ๋ฉด ๋‹ซํž™๋‹ˆ๋‹ค.
/reopen ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ฝ๋‹ˆ ๋‹ค.
/remove-lifecycle rotten ํ•˜์—ฌ ์ตœ์‹  ๋ฌธ์ œ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

sig-testing, kubernetes / test-infra ๋ฐ / ๋˜๋Š” fejta์— ํ”ผ๋“œ๋ฐฑ์„
/๋‹ซ๊ธฐ

๊ทธ๋ž˜์„œ ์ด๊ฒƒ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• / ์ˆ˜์ •์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? 3.9์—์„œ 3.10์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ ํ›„์—๋„ ์—ฌ์ „ํžˆ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€ "docker-registry.default. svc : 5000 / openshift / mysql @ sha256 : dfd9f18f47caf290 ... ๋ฐ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ : v2 / : x509 : ์•Œ ์ˆ˜์—†๋Š” ๊ธฐ๊ด€์—์„œ ์„œ๋ช… ํ•œ ์ธ์ฆ์„œ. @pompomJuice์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์˜๊ตฌ์  ์ธ ์ˆ˜์ • ์‚ฌํ•ญ ์„ค์น˜ / ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ์™„์ „ํžˆ ๋ฆฌ์—”์ง€๋‹ˆ์–ด๋ง ํ•œ ํ›„์—๋„ ์ค‘๋‹จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ”„๋กœ๋•์…˜ ์›Œํฌ๋กœ๋“œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Artifactory์—์„œ ์šฐ๋ถ„ํˆฌ์—์„œ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ ์˜ค๋Š” ์ž‘์—… ์†”๋ฃจ์…˜ (์ธ์ฆ์„œ๋Š” ์ž์ฒด ์„œ๋ช… ๋จ) :

  • ์‚ฌ์šฉ ๋œ ๋ชจ๋“  (๋ฃจํŠธ CA๊ฐ€ ๋‘˜ ์ด์ƒ์žˆ๋Š” ๊ฒฝ์šฐ) CA ์ธ์ฆ์„œ๋ฅผ / usr / local / share / ca-certificates์— ๋„ฃ์Šต๋‹ˆ๋‹ค.
  • update-ca-certificates ์‹คํ–‰
  • ๋„์ปค ๋ฐ๋ชฌ ๋‹ค์‹œ ์‹œ์ž‘ (sudo ์„œ๋น„์Šค ๋„์ปค ๋‹ค์‹œ ์‹œ์ž‘)

gcr.io๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๋™์•ˆ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ง๋ฉด ํ•  ๊ฒฝ์šฐ ๊ฐ€๋Šฅํ•œ ํ•œ ๊ฐ€์ง€ ์ƒํ™ฉ์€ ์ปดํ“จํ„ฐ์˜ CA ์ธ์ฆ์„œ๊ฐ€ ๋„ˆ๋ฌด ์˜ค๋ž˜๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

docker pull gcr.io/google_containers/kube-apiserver-amd64:v1.7.2
Trying to pull repository gcr.io/google_containers/kube-apiserver-amd64 ...
Get https://gcr.io/v1/_ping: x509: certificate signed by unknown authority '

RH / CentOS์—์„œ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ์†”๋ฃจ์…˜ :

yum check-update ca-certificates; (($?==100)) && yum update ca-certificates || yum reinstall ca-certificates
update-ca-trust extract

์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

Rancher 2.x ์„ค์ •์˜ ์ผ๋ถ€๋กœ RancherOS์—์„œ kubernetes๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ๊ฐœ์ธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์ž์ฒด ์„œ๋ช… ๋œ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๋ฏ€๋กœ x509 ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š”์ด ์Šค๋ ˆ๋“œ์™€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์„ ๊ฑฐ์˜ ์ฝ์ง€ ์•Š์•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค-๊ฐ€๋Šฅํ•œ ๊ฒฝ๋กœ๋ฅผ ์ œ์•ˆํ•จ์œผ๋กœ์จ ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋„์šธ ์ˆ˜์žˆ๋Š” ๊ฒฝ์šฐ ๊ณต์œ ํ•˜์‹ญ์‹œ์˜ค.

์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค-https: //www.ctrl-alt-del.cc/2018/11/solution-rancher-2-k8s-private-registry.html

2020 ๋…„๊ณผ ์—ฌ์ „ํžˆ ๊ฐ™์€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
๊ฐœ์ธ ํ•ญ๊ตฌ ๋“ฑ๋ก.
๋„์ปค ํ’€์€ ๋ฌธ์ œ์—†์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
ls /etc/docker/certs.d/registry.myharbor.com/์— ์ธ์ฆ์„œ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
kubernetes๊ฐ€ imagepullbackoff ์˜ค๋ฅ˜๋กœ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ ์˜ค์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
3 ๋…„์ด ์ง€๋‚œ ์ง€๊ธˆ๋„ Kubernetes์—๋Š”์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งค์šฐ ์‹ค๋ง์Šค๋Ÿฌ์šด.

ํ•ด๊ฒฐ๋จ

  1. ๋ฐฐํฌ๋ฅผ ์‹คํ–‰์ค‘์ธ ๋จธ์‹  (yaml ํŒŒ์ผ, helm ํŒจํ‚ค์ง€ ๋“ฑ)์—์„œ docker pull IMAGENAME ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ชจ๋“  kubernetes ๋…ธ๋“œ์—์„œ ๋‹ค์Œ ํ•ญ๋ชฉ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. /etc/docker/certs.d/my-private-registry.com/my-private-registry.com.crt

๋‚ด ๋กœ์ปฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ์ผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

    OS:
       Ubuntu (bionic) 18.0.4 LTS    
    Minikube Version:
       v1.11.0
    Docker Version:
       19.03.10

Jfrog Container Registry๋ฅผ ๋‚ด minikube์˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋„์ปค ๋กœ๊ทธ์ธ localhost : 443 | ๋˜๋Š” | ip- ์ถ”๊ฐ€ : 443
  2. docker push ip- add : 443 / docker-local / test : latest
  3. docker pull ip- add : 443 / docker-local / test : latest

ํฌํŠธ 443์—์„œ ์ˆ˜์‹  ๋Œ€๊ธฐํ•˜๋Š” Nginx ์—ญ๋ฐฉํ–ฅ ํ”„๋ก์‹œ ๋’ค์—์„œ ์‹คํ–‰๋˜๋„๋ก Jfrog Container Registry๋ฅผ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž์ฒด ์„œ๋ช… ๋œ ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ–ˆ์œผ๋ฉฐ Jfrog๋Š”์ด ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์ฒด ์„œ๋ช… ๋œ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก Docker๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค๊ณ  / usr / local / share / ca-certificates /์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.
  2. sudo update-ca-certificates
  3. ์ธ์ฆ์„œ๋ฅผ /etc/docker/cert.d/192.168.0.114:443/ca.crt์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.
  4. ๋„์ปค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์ด .yaml ํŒŒ์ผ๋กœ ๋„์ปค ๋กœ๊ทธ์ธ ์‹œํฌ๋ฆฟ์„ ์‚ฌ์šฉํ•˜๋„๋ก K8์„ ๊ตฌ์„ฑํ•˜์‹ญ์‹œ์˜ค.

  1. base64 ์ธ์ฝ”๋”ฉ ~ / .docker / config.json
  2. ๋‹ค์Œ ํ…œํ”Œ๋ฆฟ์—์„œ ์‚ฌ์šฉ
    apiVersion: v1 kind: Secret metadata: name: myregistrykey namespace: awesomeapps data: .dockerconfigjson: UmVhbGx5IHJlYWxseSByZWVlZWVlZWVlZWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGx5eXl5eXl5eXl5eXl5eXl5eXl5eSBsbGxsbGxsbGxsbGxsbG9vb29vb29vb29vb29vb29vb29vb29vb29vb25ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubmdnZ2dnZ2dnZ2dnZ2dnZ2dnZ2cgYXV0aCBrZXlzCg== type: kubernetes.io/dockerconfigjson

deployment.yaml์—์„œ ImagePullSecrets์™€ ์ด๋ฆ„ ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ๋„์ปค ํ’€์ด ํ„ฐ๋ฏธ๋„์—์„œ ์ž‘๋™ํ•˜๋Š” ๋ชจ๋“  ์„ค์ •์ด ๋๋‚˜๋ฉด ํฌ๋“œ์—์„œ x509 IP Sans๋ผ๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋งŽ์€ ๋ฌธ์„œ์™€ K8 ๋ฌธ์ œ๋ฅผ ๊ฒช์—ˆ๊ณ  https://github.com/kubernetes/kubernetes/issues/43924#issuecomment -631533150์˜ ๋‹จ๊ณ„๋ฅผ ๋ณต์ œํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹จ๊ณ„๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฌ๋“ ์ง€ ๋‚ด๊ฐ€ ๋ญ˜ ์ž˜๋ชปํ•˜๊ณ  ์žˆ๋Š”์ง€ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์–ด๋–ป๊ฒŒ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ๋˜ํ•œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์ง€๋งŒ์ด ๊ฒฝ์šฐ EKS์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ๋…ธ๋“œ์—์„œ ์œ„์˜ ์ˆ˜์ •์„ ์‹œ๋„ํ•˜๊ธฐ ์œ„ํ•ด ๊ถŒํ•œ์žˆ๋Š” ์›Œํฌ๋กœ๋“œ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐ ๋ฐ๋ชฌ ์…‹์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค (์ด๋ฏธ์ง€๋Š” ๊ฐœ์ธ ์„œ๋ช… ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ์žˆ์Œ).

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰