๋กœ์ผ“๐Ÿพ
article thumbnail
๋ฐ˜์‘ํ˜•

  • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค Docker Hub-Private Image ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•

Private Image๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•  ๋•Œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ secret์„ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” Docker Hub์„ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„  Private Image ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์ธ ๋งŒํผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ด๋ฏธ Docker Hub์— ์ด๋ฏธ์ง€๊ฐ€ ๋“ฑ๋ก๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฐ€์ •ํ•˜์— ์ง„ํ–‰ ํ•ฉ๋‹ˆ๋‹ค.

 

  • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ ์ž‘์„ฑ

์ €๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ„๋‹จํ•œ Deployment๋ฅผ ์„ค์ •ํ•ด์ฃผ๋Š” ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ(.yaml)์„ ์ž‘์„ฑ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Private Image๋ฅผ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉํ•  ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ์„ viํŽธ์ง‘๊ธฐ๋กœ ์—ฌ์‹  ํ›„ spec.template.spec.ImagePullSecrets.name ํ•„๋“œ์— ์ž„์˜์˜ ๊ฐ’์„ ์„ค์ • ํ•ด์ค๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ์ดํ›„ ์ƒ์„ฑํ•  secret name ์ด๋ฏ€๋กœ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ image ๋ช…๋„ ์žฌ๋Œ€๋กœ ์ž…๋ ฅ ํ•ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

* ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ์— ํ•„์š”ํ•œ ํ•„๋“œ๋งŒ ์ž‘์„ฑ ํ›„ ์•„์ง apply๋Š” ํ•˜์ง€ ๋ง์•„์ฃผ์„ธ์š”.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-nginx
spec:
  selector:
    matchLabels:
      run: my-nginx
  replicas: 2
  template:
    metadata:
      labels:
        run: my-nginx
    spec:
      containers:
      - name: my-nginx
        image: nirsa/nginx		## docker hub ์ด๋ฏธ์ง€ ์ง€์ •
        ports:
        - containerPort: 80
      imagePullSecrets:			## ์ฐธ์กฐํ•  secret name
      - name: dockersecret
  • spec.template.spec.containers.image → Docker Hub์— ๋“ฑ๋ก๋œ ์ด๋ฏธ์ง€์˜ ์ด๋ฆ„์„ ๋“ฑ๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ [DockerHub์‚ฌ์šฉ์ž๋ช…]/[์ด๋ฏธ์ง€์ด๋ฆ„] ์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง€๋ฉฐ ๋’ค์— ๋ฒ„์ „์ด ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€๋ช…์„ ๋ชจ๋ฅธ๋‹ค๋ฉด docker hub ํ™ˆํŽ˜์ด์ง€์— ์ ‘์†ํ•˜์—ฌ ๋กœ๊ทธ์ธ ํ›„ ํ™•์ธํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. 
  • spec.template.spec.ImagePullSecrets.name → ์–ด๋–ค name์„ ๊ฐ€์ง„ secret์„ ์ฐธ์กฐํ•  ์ง€ ์„ค์ •ํ•˜๋Š” ๋ถ€๋ถ„ ์ž…๋‹ˆ๋‹ค. ์ดํ›„ ์ปค๋งจ๋“œ๋ฅผ ํ†ตํ•ด ์ƒ์„ฑํ•  name์„ ์ง€์ •ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์šฐ์„  ์ €๋Š” dockersecret์œผ๋กœ ์„ค์ • ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 

  • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค secret ์ƒ์„ฑ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅ ํ•ด์ค๋‹ˆ๋‹ค. []์œผ๋กœ ๋ฌถ์–ด์ค€ ๋ถ€๋ถ„๋“ค์€ ๋ชจ๋‘ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ž‘์„ฑ ํ•ด์ฃผ์…”์•ผ ํ•˜๋Š” ๋ถ€๋ถ„ ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ปค๋งจ๋“œ ์ž‘์„ฑ ํ›„ ์—”ํ„ฐ๋ฅผ ์น˜์‹œ๋ฉด secret์ด ์ƒ์„ฑ๋œ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • [secret name] ์€ ์œ„์—์„œ ์ž‘์„ฑํ–ˆ๋˜ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ์— ๊ธฐ์ž…ํ•œ name์„ ์ž‘์„ฑํ•ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. (~ImagePullSecrets.name ๋ถ€๋ถ„์— ์ž‘์„ฑํ•œ ๋‚ด์šฉ์œผ๋กœ, ์ €๊ฐ™์€ ๊ฒฝ์šฐ dockersecret ์ด ๋ฉ๋‹ˆ๋‹ค.)
  • Docker Hub ๊ณ„์ •๊ณผ ํŒจ์Šค์›Œ๋“œ๋Š” ์‹ค์ œ๋กœ Private Image๊ฐ€ ๋“ฑ๋ก๋˜์–ด ์žˆ๋Š” Docker Hub์˜ ๊ณ„์ •๊ณผ ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
kubectl create secret docker-registry [secret name] --docker-username="[Docker Hub ๊ณ„์ •]" \
--docker-password="[Docker Hub ํŒจ์Šค์›Œ๋“œ]" --docker-server=https://index.docker.io/v1/

 

  • Private Image ํŒŒ์ผ์„ ์ž˜ ๊ฐ€์ ธ์˜ค๋Š”์ง€ ํ™•์ธ

์ด์ œ Docker Hub์˜ Private Image ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ฌ ์ค€๋น„๋Š” ๋ชจ๋‘ ๋˜์—ˆ์œผ๋‹ˆ, ์ž‘์„ฑํ•ด๋‘์—ˆ๋˜ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ์„ apply ํ•˜์—ฌ ์‹ค์ œ๋กœ ์ž˜ ๊ฐ€์ ธ์˜ค๋Š”์ง€ ํ™•์ธ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

kubectl describe [pod name] | grep Image ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ •์ƒ์ ์œผ๋กœ ์›ํ•˜๋Š” ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ๊ฐ€์ ธ ์™”๋Š”์ง€๋„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

  • ImagePullBackOff ๋ฐœ์ƒ ์‹œ

๋งŒ์•ฝ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ์— ์ž‘์„ฑํ•œ spec.template.spec.ImagePullSecrets.name ํ•„๋“œ์— ์ž‘์„ฑํ•œ secret name์ด ๋‹ค๋ฅด๋‹ค๋ฉด ์ •์ƒ์ ์œผ๋กœ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋˜๋Š” secret์— ๋“ฑ๋กํ•œ docker hub ๊ณ„์ • ์ •๋ณด๊ฐ€ ๋‹ฌ๋ผ docker hub์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์–ด ์ด๋ฏธ์ง€๋ฅผ ๋ชป๊ฐ€์ ธ์™€์„œ ๋ฐœ์ƒํ• ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ์— ์ž‘์„ฑํ•œ secret name๊ณผ ์ƒ์„ฑํ•œ secret name์ด ๊ฐ™์€์ง€ ๋‹ค์‹œ ํ•œ๋ฒˆ ํ™•์ธ ํ•ด๋ณด์„ธ์š”. (secret name์€ kubectl get secret ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์—†๋‹ค๋ฉด ์ƒ์„ฑ๋˜์ง€ ์•Š์€๊ฒƒ์ž…๋‹ˆ๋‹ค)
  2. secret์„ ์ƒ์„ฑํ• ๋•Œ ๋“ฑ๋กํ•œ docker hub์˜ ๊ณ„์ • ์ •๋ณด๊ฐ€ ๋งž๋Š”์ง€ ํ™•์ธ ํ•ด๋ณด์„ธ์š”.

 

์•„๋ž˜ ์˜ˆ์‹œ๋Š” secret name์ด dockersecret์œผ๋กœ ๋˜์–ด ์žˆ์ง€๋งŒ, ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ์—๋Š” dockersecret2๋กœ ์ €์žฅํ•˜์˜€๊ณ  ๊ทธ ํ›„ apply ํ•  ๋•Œ secret์„ ์ฐธ์กฐํ•  ์ˆ˜ ์—†์–ด ์ด๋ฏธ์ง€๋ฅผ ๋ชป๊ฐ€์ ธ์˜ค๊ณ  ImagePullBackOff๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

 

๋ฐ˜์‘ํ˜•
profile on loading

Loading...