ํด๋Ÿฌ์Šคํ„ฐ ๋˜๋Š” ๋…ธ๋“œ ํ’€ ์—…๊ทธ๋ ˆ์ด๋“œ

์ด ๋ฌธ์„œ์—์„œ๋Š” VMware์šฉ Google Distributed Cloud(์†Œํ”„ํŠธ์›จ์–ด ์ „์šฉ)์—์„œ ํด๋Ÿฌ์Šคํ„ฐ์™€ ๋…ธ๋“œ ํ’€์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ์—์„œ๋Š” ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜, ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ, ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋‹จ๊ณ„๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฒฝ์šฐ ์ด ๋ฌธ์„œ์—์„œ๋Š” ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ๊ณผ ๋…ธ๋“œ ํ’€์„ ๋™์‹œ์— ๋˜๋Š” ๋ณ„๋„๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋‹จ๊ณ„๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๋Š” ๊ธฐ๋ณธ ๊ธฐ์ˆ  ์ธํ”„๋ผ์˜ ์ˆ˜๋ช… ์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” IT ๊ด€๋ฆฌ์ž ๋ฐ ์šด์˜์ž๋ฅผ ์œ„ํ•ด ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Google Cloud ์ฝ˜ํ…์ธ ์—์„œ ์ฐธ์กฐํ•˜๋Š” ์ผ๋ฐ˜ ์—ญํ• ๊ณผ ์˜ˆ์‹œ ํƒœ์Šคํฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ผ๋ฐ˜ GKE Enterprise ์‚ฌ์šฉ์ž ์—ญํ•  ๋ฐ ํƒœ์Šคํฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ง„ํ–‰ํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ๋ฌธ์„œ๋ฅผ ๊ฒ€ํ† ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  • ์—…๊ทธ๋ ˆ์ด๋“œ ๊ฐœ์š”
    ์ด ๋ฌธ์„œ์—์„œ๋Š” ์ง€์›๋˜๋Š” ๋ฒ„์ „ ์ฐจ์ด์™€ ํŠนํžˆ ๋ฒ„์ „ 1.28 ์ด์ƒ์—์„œ ๋ณ€๊ฒฝ๋œ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฒ„์ „ ๊ทœ์น™์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  • ์—…๊ทธ๋ ˆ์ด๋“œ ๊ถŒ์žฅ์‚ฌํ•ญ
    ์ด ๋ฌธ์„œ์—์„œ๋Š” ํด๋Ÿฌ์Šคํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์œ„ํ•œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์™€ ๊ถŒ์žฅ์‚ฌํ•ญ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ฐฉํ™”๋ฒฝ ๊ทœ์น™ ๊ฒ€ํ† 

๋ฒ„์ „ 1.29 ์ด์ƒ์—์„œ๋Š” ์„œ๋ฒ„ ์ธก ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ ๊ฒ€์‚ฌ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์ธก ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ ๊ฒ€์‚ฌ์—๋Š” ์ถ”๊ฐ€ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์—์„œ 'ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ ๊ฒ€์‚ฌ'๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ํ•„์š”ํ•œ ๋ชจ๋“  ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์ด ๊ตฌ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์„œ๋ฒ„ ์ธก ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ ๊ฒ€์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด gkectl์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋•Œ ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ ๊ฒ€์‚ฌ๊ฐ€ ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์—์„œ ๋กœ์ปฌ๋กœ ์‹คํ–‰๋˜๋Š” ๋Œ€์‹  ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. Google Cloud ์ฝ˜์†”, Google Cloud CLI, Terraform์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋•Œ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์„œ๋ฒ„ ์ธก ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ ๊ฒ€์‚ฌ๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด Google Distributed Cloud๋Š” Docker์˜ Kubernetes(์ข…๋ฅ˜) ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ฐฐํฌํ•˜์—ฌ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ Kubernetes ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ํ˜ธ์ŠคํŒ…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ž„์‹œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ํด๋Ÿฌ์Šคํ„ฐ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋•Œ ์„œ๋ฒ„ ์ธก ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ ๊ฒ€์‚ฌ๊ฐ€ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

Google API ๋ฐ IAM ์š”๊ตฌ์‚ฌํ•ญ

ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ฒ„์ „ 1.28 ์ด์ƒ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด kubernetesmetadata.googleapis.com์„ ์‚ฌ์šฉ ์„ค์ •ํ•˜๊ณ  ๋กœ๊น…-๋ชจ๋‹ˆํ„ฐ๋ง ์„œ๋น„์Šค ๊ณ„์ •์— kubernetesmetadata.publisher IAM ์—ญํ• ์„ ๋ถ€์—ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Cloud Monitoring์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  1. kubernetesmetadata.googleapis.com ์‚ฌ์šฉ ์„ค์ •:

    gcloud services enable --project PROJECT_ID  \
        kubernetesmetadata.googleapis.com
    

    PROJECT_ID๋ฅผ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๊ตฌ์„ฑ์›์ธ Fleet ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ์˜ ID๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ค ๋•Œ ์ง€์ •๋œ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. gkectl์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ค์—ˆ์œผ๋ฉด ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ gkeConnect.projectID ํ•„๋“œ์˜ ํ”„๋กœ์ ํŠธ ID์ž…๋‹ˆ๋‹ค.

  2. ์กฐ์ง์—์„œ Google API ๋ฐ ๊ธฐํƒ€ ์ฃผ์†Œ์˜ ํŠธ๋ž˜ํ”ฝ์ด ํ”„๋ก์‹œ ์„œ๋ฒ„๋ฅผ ํ†ต๊ณผํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ํ—ˆ์šฉ ๋ชฉ๋ก์ด ์„ค์ •๋œ ๊ฒฝ์šฐ ํ—ˆ์šฉ ๋ชฉ๋ก์— kubernetesmetadata.googleapis.com์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  3. ๋กœ๊น…-๋ชจ๋‹ˆํ„ฐ๋ง ์„œ๋น„์Šค ๊ณ„์ •์— kubernetesmetadata.publisher ์—ญํ• ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
      --role "roles/kubernetesmetadata.publisher"
    

    SERVICE_ACCOUNT_EMAIL์„ ๋กœ๊น…-๋ชจ๋‹ˆํ„ฐ๋ง ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์œ„ํ•œ IAM ์š”๊ตฌ์‚ฌํ•ญ

์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ์— gkectl์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์ด ์„น์…˜์„ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.

Google Cloud ์ฝ˜์†”, Google Cloud CLI ๋˜๋Š” Terraform์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ํ”„๋กœ์ ํŠธ ์†Œ์œ ์ž๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ƒ์„ฑ๋œ Google Cloud ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ Identity and Access Management ์—ญํ•  roles/gkeonprem.admin์„ ๋ถ€์—ฌ๋ฐ›์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์—ญํ• ์— ํฌํ•จ๋œ ๊ถŒํ•œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ IAM ๋ฌธ์„œ์˜ GKE On-Prem ์—ญํ• ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ฝ˜์†”์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด ์ตœ์†Œํ•œ ๋‹ค์Œ ์—ญํ• ๋„ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • roles/container.viewer. ์ด ์—ญํ• ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋Š” ์ฝ˜์†”์—์„œ GKE ํด๋Ÿฌ์Šคํ„ฐ ํŽ˜์ด์ง€์™€ ๊ธฐํƒ€ ์ปจํ…Œ์ด๋„ˆ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์—ญํ• ์— ํฌํ•จ๋œ ๊ถŒํ•œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์ด๋‚˜ ์ฝ๊ธฐ/์“ฐ๊ธฐ ๊ถŒํ•œ์ด ์žˆ๋Š” ์—ญํ• ์„ ๋ถ€์—ฌํ•˜๋ ค๋ฉด IAM ๋ฌธ์„œ์˜ Kubernetes Engine ์—ญํ• ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  • roles/gkehub.viewer. ์ด ์—ญํ• ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ฝ˜์†”์—์„œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ์ด ์—ญํ• ์— ํฌํ•จ๋œ ๊ถŒํ•œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์ด๋‚˜ ์ฝ๊ธฐ/์“ฐ๊ธฐ ๊ถŒํ•œ์ด ์žˆ๋Š” ์—ญํ• ์„ ๋ถ€์—ฌํ•˜๋ ค๋ฉด IAM ๋ฌธ์„œ์˜ GKE ํ—ˆ๋ธŒ ์—ญํ• ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์—…๊ทธ๋ ˆ์ด๋“œ ์ „ ๋˜๋Š” ํ›„์— ๊ตฌ์„ฑ ๋ณ€๊ฒฝํ•˜๊ธฐ

ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ตฌ์„ฑ์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์—…๊ทธ๋ ˆ์ด๋“œ ์ „์ด๋‚˜ ํ›„์— ํด๋Ÿฌ์Šคํ„ฐ ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜์„ธ์š”. ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์œ„ํ•œ ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ์˜ ์œ ์ผํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ๋ฒ„์ „์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ๋ฒ„์ „ ๋ฐ ์œ ํ˜•์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๊ตฌ์„ฑ ๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ์ž๋™์œผ๋กœ ๋ฌด์‹œ๋˜๊ฑฐ๋‚˜ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์‹คํŒจํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ฐจ๋‹จ ํ•ด์ œ๋˜๋„๋ก ์ง€์›๋˜์ง€ ์•Š๋Š” ๋ณ€๊ฒฝ์‚ฌํ•ญ ์‚ญ์ œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜ ์—…๊ทธ๋ ˆ์ด๋“œ

gkectl์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฝ˜์†”, gcloud CLI ๋˜๋Š” Terraform์„ ์‚ฌ์šฉํ•ด ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์ง€๊ธˆ์€ ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ gkectl๋งŒ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ง€์›ํ•˜๋ฏ€๋กœ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ค€๋น„๊ฐ€ ๋˜๋ฉด ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋งŒ๋“  ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค(gkeadm ๋˜๋Š” user-managed).

gkeadm

ํ•„์ˆ˜ ํŒŒ์ผ ์ฐพ๊ธฐ

๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ๋งŒ๋“ค๊ธฐ ์ „์— gkeadm create config์—์„œ ์ƒ์„ฑํ•œ ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ฑ„์› ์Šต๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์˜ ๊ธฐ๋ณธ ์ด๋ฆ„์€ admin-ws-config.yaml์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ์›Œํฌ์Šคํ…Œ์ด์…˜์—๋Š” ์ •๋ณด ํŒŒ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์˜ ๊ธฐ๋ณธ ์ด๋ฆ„์€ ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์˜ ์ด๋ฆ„๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ตฌ์„ฑ ํŒŒ์ผ๊ณผ ์ •๋ณด ํŒŒ์ผ์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŒŒ์ผ์ด ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๊ณ  ์ด๋ฆ„์ด ๋ชจ๋‘ ๊ธฐ๋ณธ๊ฐ’์ด๋ฉด ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ด๋ฅผ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ํŒŒ์ผ์ด ๋‹ค๋ฅธ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๊ฑฐ๋‚˜ ํŒŒ์ผ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ์—๋Š” --config ๋ฐ --info-file ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ถœ๋ ฅ ์ •๋ณด ํŒŒ์ผ์ด ์—†์œผ๋ฉด ๋‹ค์‹œ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๋ฝ๋œ ๊ฒฝ์šฐ ์ •๋ณด ํŒŒ์ผ ๋‹ค์‹œ ๋งŒ๋“ค๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์—…๊ทธ๋ ˆ์ด๋“œ

๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. gkeadm ๋‹ค์šด๋กœ๋“œ:

    gkeadm upgrade gkeadm --target-version TARGET_VERSION
    

    TARGET_VERSION์„ ์—…๊ทธ๋ ˆ์ด๋“œ ๋Œ€์ƒ ๋ฒ„์ „์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. X.Y.Z-gke.N. ํ˜•์‹์œผ๋กœ ์™„์ „ํ•œ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Google Distributed Cloud ๋ฒ„์ „ ๋ชฉ๋ก์€ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  2. ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜ ์—…๊ทธ๋ ˆ์ด๋“œ:

    gkeadm upgrade admin-workstation --config AW_CONFIG_FILE \
        --info-file INFO_FILE
    

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • AW_CONFIG_FILE๋Š” ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ตฌ์„ฑ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ํŒŒ์ผ์ด ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๊ณ  ์ด๋ฆ„์ด admin-ws-config.yaml์ด๋ฉด ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • INFO_FILE์€ ์ •๋ณด ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ํŒŒ์ผ์ด ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ์œผ๋ฉด ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์˜ ๊ธฐ๋ณธ ์ด๋ฆ„์€ ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์˜ ์ด๋ฆ„๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ๊ด€๋ฆฌ

๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์—์„œ gkectl์˜ ์ƒˆ ๋ฒ„์ „์„ ์„ค์น˜ํ•  ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

gkectl ๋‹ค์šด๋กœ๋“œ:

gcloud storage cp gs://gke-on-prem-release/gkectl/VERSION/gkectl ./
chmod +x gkectl

VERSION์„ ์—…๊ทธ๋ ˆ์ด๋“œ ๋Œ€์ƒ ๋ฒ„์ „์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด 1.30.100-gke.96์ž…๋‹ˆ๋‹ค.

Google Distributed Cloud ๋ฒˆ๋“ค์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„์ „์ด gkectl์„ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•œ ๋ฒ„์ „๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

gcloud storage cp gs://gke-on-prem-release/gke-onprem-bundle/VERSION/gke-onprem-vsphere-VERSION.tgz ./

ํด๋Ÿฌ์Šคํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฒ„์ „ ํ™•์ธ

๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

gkectl version --kubeconfig ADMIN_CLUSTER_KUBECONFIG

์ถœ๋ ฅ์— ํ˜„์žฌ ๋ฒ„์ „๊ณผ ์—…๊ทธ๋ ˆ์ด๋“œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„์ „์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œ์— ์ฝ˜์†”, gcloud CLI ๋˜๋Š” Terraform์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ชจ๋“  Google Cloud ๋ฆฌ์ „์˜ GKE On-Prem API์—์„œ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ๊นŒ์ง€ ๋ฒ„์ „ ์ถœ์‹œ ํ›„ ์•ฝ 7~10์ผ์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ์ฝ˜์†”์—๋Š” ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„์ „๋งŒ ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค. gcloud CLI ๋˜๋Š” Terraform์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋‹จ๊ณ„์—๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„์ „์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด gcloud container vmware clusters query-version-config๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋‹จ๊ณ„๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ

gkectl, ์ฝ˜์†”, gcloud CLI ๋˜๋Š” Terraform์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•  ๋„๊ตฌ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋„๊ตฌ ์„ ํƒ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

gkectl

์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ ์ค€๋น„

๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์—์„œ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. gkectl prepare๋ฅผ ์‹คํ–‰ํ•˜์—ฌ OS ์ด๋ฏธ์ง€๋ฅผ vSphere๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

    gkectl prepare \
      --bundle-path /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION.tgz \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    
  2. ํด๋Ÿฌ์Šคํ„ฐ์— Windows ๋…ธ๋“œ ํ’€์ด ์žˆ์œผ๋ฉด gkectl prepare windows๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋…ธ๋“œ ํ’€์˜ osImage ํ•„๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์•ˆ๋‚ด๋Š” Windows ๋…ธ๋“œ ํ’€์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  3. ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ gkeOnPremVersion์„ ์—…๊ทธ๋ ˆ์ด๋“œ ๋Œ€์ƒ ๋ฒ„์ „์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  4. Ubuntu ๋ฐ COS ๋…ธ๋“œ ํ’€๋งŒ ํ•ด๋‹น: ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋…ธ๋“œ ํ’€์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. Ubuntu ๋ฐ COS ๋…ธ๋“œ ํ’€์˜ ๊ฒฝ์šฐ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ๊ณผ ๋ณ„๋„๋กœ ๋…ธ๋“œ ํ’€์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Windows ๋…ธ๋“œ ํ’€์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋…ธ๋“œ ํ’€์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

    • ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋Š” ๊ฐ ๋…ธ๋“œ ํ’€์— ๋Œ€ํ•ด nodePools.nodePool[i].gkeOnPremVersion ํ•„๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ๋นˆ ๋ฌธ์ž์—ด๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    • ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š์„ ๊ฐ ๋…ธ๋“œ ํ’€์— ๋Œ€ํ•ด nodePools.nodePool[i].gkeOnPremVersion์„ ํ˜„์žฌ ๋ฒ„์ „์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ๋ฒ„์ „์ด 1.15.5-gke.41์ด๊ณ  ๋…ธ๋“œ ํ’€์ด ๋‘ ๊ฐœ(pool-1 ๋ฐ pool-2) ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ๊ณผ pool-1์„ 1.16.3-gke.45๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋˜ pool-2๋ฅผ ๋ฒ„์ „ 1.15.5-gke.41๋กœ ์œ ์ง€ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ํŒŒ์ผ์˜ ๋‹ค์Œ ๋ถ€๋ถ„์—์„œ ์ด ์˜ˆ์‹œ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

    gkeOnPremVersion: 1.16.3-gke.45
    
    nodePools:
    - name: pool-1
      gkeOnPremVersion: ""
      cpus: 4
      memoryMB: 8192
      replicas: 3
      osImageType: ubuntu_containerd
    - name: pool-2
      gkeOnPremVersion: 1.15.5-gke.41
      cpus: 4
      memoryMB: 8192
      replicas: 5
      osImageType: ubuntu_containerd
    

ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ ๊ฒ€์‚ฌ ์‹คํ–‰

๋ฒ„์ „ 1.29 ์ด์ƒ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์ „ ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ ๊ฒ€์‚ฌ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gkectl upgrade cluster \
  --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
  --config USER_CLUSTER_CONFIG \
  --dry-run

--dry-run ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด gkectl upgrade cluster๊ฐ€ ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ ๊ฒ€์‚ฌ๋ฅผ ์‹คํ–‰ํ•˜์ง€๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ์ž‘ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์˜ Google Distributed Cloud๋Š” ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ ๊ฒ€์‚ฌ๋ฅผ ์‹คํ–‰ํ•˜์ง€๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œ์™€ ๋ณ„๋„๋กœ ์‹คํ–‰ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. --dry-run ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์—…๊ทธ๋ ˆ์ด๋“œ ์ „ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ ๊ฒ€์‚ฌ๊ฐ€ ๋ฐœ๊ฒฌํ•œ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ์ฐพ๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gkectl upgrade cluster ์‹คํ–‰

gkectl upgrade cluster ๋ช…๋ น์–ด์—๋Š” ๋‘ ๊ฐ€์ง€ ๋ณ€ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋น„๋™๊ธฐ: (๊ถŒ์žฅ)
    ๋น„๋™๊ธฐ ๋ณ€ํ˜•์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ช…๋ น์–ด๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹œ์ž‘ํ•œ ํ›„ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ ์ „์ฒด ๊ธฐ๊ฐ„ ๋™์•ˆ ๋ช…๋ น์–ด์˜ ์ถœ๋ ฅ์„ ํ™•์ธํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  gkectl list clusters ๋ฐ gkectl describe clusters๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์—…๊ทธ๋ ˆ์ด๋“œ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ฃผ๊ธฐ์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๋™๊ธฐ ๋ณ€ํ˜•์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ช…๋ น์–ด์— --async ํ”Œ๋ž˜๊ทธ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

  • ๋™๊ธฐ:
    ๋™๊ธฐ ๋ณ€ํ˜•์„ ์‚ฌ์šฉํ•˜๋ฉด gkectl upgrade cluster ๋ช…๋ น์–ด์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์— ์ƒํƒœ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๋น„๋™๊ธฐ ์—…๊ทธ๋ ˆ์ด๋“œ

  1. 1.16 ์ด์ƒ ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒฝ์šฐ ์ด ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.

    ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ์— ์ค€๋น„๋œ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๋ฐ ๋น„๊ณต๊ฐœ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์ „์— ๋น„๊ณต๊ฐœ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๊ฐ€ ์ค€๋น„๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋น„๊ณต๊ฐœ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ์ค€๋น„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•ด ์ค€๋น„๋œ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  2. ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์—์„œ ๋น„๋™๊ธฐ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

    gkectl upgrade cluster \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
      --config USER_CLUSTER_CONFIG \
      --async
    

    ์•ž์˜ ๋ช…๋ น์–ด๊ฐ€ ์™„๋ฃŒ๋˜๊ณ  ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  3. ์—…๊ทธ๋ ˆ์ด๋“œ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์„ธ์š”.

    gkectl list clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    ์ถœ๋ ฅ์— ํด๋Ÿฌ์Šคํ„ฐ STATE ๊ฐ’์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ ์ค‘์ธ ๊ฒฝ์šฐ STATE ๊ฐ’์€ UPGRADING์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    NAMESPACE             NAME    READY   STATE       AGE   VERSION
    my-uc-gkeonprem-mgmt  my-uc   False   UPGRADING   9h    1.30.0-gke.1
    

    STATE์— ๋Œ€ํ•ด ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ PROVISIONING, UPGRADING, DELETING ,UPDATING, RUNNING, RECONCILING, ERROR, UNKNOWN์ž…๋‹ˆ๋‹ค.

  4. ์—…๊ทธ๋ ˆ์ด๋“œ ์ง„ํ–‰ ์ƒํƒœ ๋ฐ ํด๋Ÿฌ์Šคํ„ฐ ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ์„ธ๋ถ€์ •๋ณด๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gkectl describe clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
      --cluster USER_CLUSTER_NAME -v 5
    

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

    Google์—์„œ๋Š” ๋‹ค์Œ์„ ํฌํ•จํ•˜์—ฌ ๊ฐ ์ฃผ์š” ์—…๊ทธ๋ ˆ์ด๋“œ ๋‹จ๊ณ„์˜ ์‹œ์ž‘๊ณผ ์ข…๋ฃŒ์— ๋Œ€ํ•œ ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

    • ControlPlaneUpgrade
    • MasterNodeUpgrade
    • AddonsUpgrade
    • NodePoolsUpgrade

    ์ถœ๋ ฅ ์˜ˆ์‹œ:

    Events:
    Type    Reason                      Age    From                            Message
    ----     ------                     ----   ----                            -------
    Normal  NodePoolsUpgradeStarted     22m    onprem-user-cluster-controller  Creating or updating node pools: pool-2: Creating or updating node pool
    Normal  AddonsUpgradeStarted        22m    onprem-user-cluster-controller  Creating or updating addon workloads
    Normal  ControlPlaneUpgradeStarted  25m    onprem-user-cluster-controller  Creating or updating cluster control plane workloads: deploying user-kube-apiserver-base, ...: 14/15 pods are ready
    Normal  ControlPlaneUpgradeFinished 23m    onprem-user-cluster-controller  Control plane is running
    
  5. ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด gkectl list clusters์— RUNNING์ธ STATUS๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    NAMESPACE             NAME    READY   STATE     AGE     VERSION
    my-uc-gkeonprem-mgmt  my-uc   True    RUNNING   9h      1.30.0-gke.1
    

    ๋˜ํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด gkectl describe clusters์— Status๋กœ Last GKE On Prem Version ํ•„๋“œ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    Status:
    Cluster State:  RUNNING
    Last GKE On Prem Version:  1.30.0-gke.1
    

๋น„๋™๊ธฐ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฌธ์ œ ํ•ด๊ฒฐ

๋น„๋™๊ธฐ ์—…๊ทธ๋ ˆ์ด๋“œ์˜ ๊ฒฝ์šฐ ์ œํ•œ ์‹œ๊ฐ„์€ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋…ธ๋“œ ์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ œํ•œ ์‹œ๊ฐ„๋ณด๋‹ค ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋ฉด ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ๊ฐ€ UPGRADING์—์„œ ERROR๋กœ ๋ณ€๊ฒฝ๋˜๊ณ  ์—…๊ทธ๋ ˆ์ด๋“œ ์ž‘์—…์ด ์‹œ๊ฐ„ ์ดˆ๊ณผ๋˜์—ˆ๋‹ค๋Š” ์ด๋ฒคํŠธ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ERROR ์ƒํƒœ๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์˜ˆ์ƒ๋ณด๋‹ค ์˜ค๋ž˜ ๊ฑธ๋ฆฌ์ง€๋งŒ ์ข…๋ฃŒ๋˜์ง€ ์•Š์•˜์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์กฐ์ •์„ ๊ณ„์†ํ•˜๊ณ  ์ž‘์—…์„ ๊ณ„์† ์žฌ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋Š” PodDisruptionBudget(PDB)์œผ๋กœ ์ธํ•œ ๊ต์ฐฉ ์ƒํƒœ์˜ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ํฌ๋“œ๋ฅผ ์ด์ „ ๋…ธ๋“œ์—์„œ ์ œ๊ฑฐํ•  ์ˆ˜ ์—†๊ณ  ์ด์ „ ๋…ธ๋“œ๋Š” ๋“œ๋ ˆ์ด๋‹ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํฌ๋“œ ์ œ๊ฑฐ๊ฐ€ 10๋ถ„ ์ด์ƒ ๊ฑธ๋ฆด ๊ฒฝ์šฐ OnPremUserCluster ๊ฐ์ฒด์— ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. gkectl describe clusters๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ด๋ฒคํŠธ๋ฅผ ์บก์ฒ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ PDB๋ฅผ ์กฐ์ •ํ•˜์—ฌ ๋…ธ๋“œ๊ฐ€ ๋“œ๋ ˆ์ด๋‹๋˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ง„ํ–‰๋˜๊ณ  ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ ์ด๋ฒคํŠธ:

Warning  PodEvictionTooLong  96s (x2 over 4m7s)  onprem-user-cluster-controller
Waiting too long(>10m0.00000003s) for (kube-system/coredns-856d6dbfdf-dl6nz) eviction.

๋˜ํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ฐจ๋‹จ๋˜๊ฑฐ๋‚˜ ์—…๊ทธ๋ ˆ์ด๋“œ์— ์‹คํŒจํ–ˆ์„ ๋•Œ gkectl diagnose๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ผ๋ฐ˜์ ์ธ ํด๋Ÿฌ์Šคํ„ฐ ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ์ˆ˜๋™์œผ๋กœ ํ•ด๊ฒฐํ• ์ง€ ์•„๋‹ˆ๋ฉด Anthos ์ง€์›ํŒ€์— ๋ฌธ์˜ํ•˜์—ฌ ์ถ”๊ฐ€ ์ง€์›์„ ๋ฐ›์„์ง€ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋™๊ธฐ์‹ ์—…๊ทธ๋ ˆ์ด๋“œ

gkectl upgrade ๋ช…๋ น์–ด๋Š” ์‹คํ–‰ ์ „ ๊ฒ€์‚ฌ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ์ „ ๊ฒ€์‚ฌ๊ฐ€ ์‹คํŒจํ•˜๋ฉด ๋ช…๋ น์–ด๊ฐ€ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. ์‹คํŒจ๋ฅผ ๋ฐ”๋กœ์žก๊ฑฐ๋‚˜ --skip-preflight-check-blocking ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹ฌ๊ฐํ•œ ์‹คํŒจ๊ฐ€ ์—†๋‹ค๊ณ  ํ™•์‹ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์‹คํ–‰ ์ „ ๊ฒ€์‚ฌ๋ฅผ ๊ฑด๋„ˆ๋›ฐ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์—์„œ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. 1.16 ์ด์ƒ ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒฝ์šฐ ์ด ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.

    ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ์— ์ค€๋น„๋œ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๋ฐ ๋น„๊ณต๊ฐœ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์ „์— ๋น„๊ณต๊ฐœ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๊ฐ€ ์ค€๋น„๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋น„๊ณต๊ฐœ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ์ค€๋น„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•ด ์ค€๋น„๋œ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  2. ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

    gkectl upgrade cluster \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
      --config USER_CLUSTER_CONFIG_FILE
    
  3. ๋ฒ„์ „ 1.14.0 ์ด์ƒ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ์กด ํŒŒ์ผ์„ ๋ฎ์–ด์“ฐ๋Š” ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•ด ์ƒˆ kubeconfig ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์—์„œ ํด๋Ÿฌ์Šคํ„ฐ ์„ธ๋ถ€์ •๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    kubectl config view --kubeconfig USER_CLUSTER_KUBECONFIG

์ถ”๊ฐ€ ๋…ธ๋“œ ํ’€ ์—…๊ทธ๋ ˆ์ด๋“œ

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

  1. ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์‹œ์— ํ‘œ์‹œ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋Š” ๊ฐ ๋…ธ๋“œ ํ’€์— ๋Œ€ํ•ด nodePools.nodePool[i].gkeOnPremVersion ํ•„๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ๋นˆ ๋ฌธ์ž์—ด๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    gkeOnPremVersion: 1.16.3-gke.45
    
    nodePools:
    - name: pool-1
      gkeOnPremVersion: ""
      cpus: 4
      memoryMB: 8192
      replicas: 3
      osImageType: ubuntu_containerd
    - name: pool-2
      gkeOnPremVersion: ""
      cpus: 4
      memoryMB: 8192
      replicas: 5
      osImageType: ubuntu_containerd
    
  2. gkectl update cluster๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

    gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
      --config USER_CLUSTER_CONFIG
    

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • ADMIN_CLUSTER_KUBECONFIG: ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ kubeconfig ํŒŒ์ผ์˜ ๊ฒฝ๋กœ

    • USER_CLUSTER_CONFIG: ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ.

๋…ธ๋“œ ํ’€์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋กค๋ฐฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์—…๊ทธ๋ ˆ์ด๋“œ ํ›„ ๋…ธ๋“œ ํ’€ ๋กค๋ฐฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์—…๊ทธ๋ ˆ์ด๋“œ ์žฌ๊ฐœ

์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ค‘๋‹จ๋˜๋ฉด --skip-validation-all ํ”Œ๋ž˜๊ทธ๋กœ ๋™์ผํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์žฌ๊ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gkectl upgrade cluster \
  --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
  --config USER_CLUSTER_CONFIG_FILE \
  --skip-validation-all

์ฝ˜์†”

์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ์— ๋ช‡ ๊ฐ€์ง€ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฝ˜์†”์—์„œ ์ž๋™์œผ๋กœ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ์•„์ง ๋“ฑ๋ก๋˜์ง€ ์•Š์•˜์œผ๋ฉด GKE On-Prem API์— ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

  • ๊ตฌ์„ฑ์š”์†Œ ๋ฒˆ๋“ค์„ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ์— ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ์š”์†Œ์˜ ๋ฒ„์ „์ด ์—…๊ทธ๋ ˆ์ด๋“œ์—์„œ ์ง€์ •ํ•œ ๋ฒ„์ „๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๋Š” ํ•ด๋‹น ๋ฒ„์ „์˜ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. ์ฝ˜์†”์—์„œ Google Kubernetes Engine ํด๋Ÿฌ์Šคํ„ฐ ๊ฐœ์š” ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    GKE ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์ด๋™

  2. Google Cloud ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•œ ํ›„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  3. ์„ธ๋ถ€์ •๋ณด ํŒจ๋„์—์„œ ์ถ”๊ฐ€ ์„ธ๋ถ€์ •๋ณด๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ํด๋Ÿฌ์Šคํ„ฐ ๊ธฐ๋ณธ์‚ฌํ•ญ ์„น์…˜์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. ๋Œ€์ƒ ๋ฒ„์ „ ์„ ํƒ ๋ชฉ๋ก์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋Š” ๋ฒ„์ „์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์„ ๋ณ„๋œ ๋ชฉ๋ก์—๋Š” ์ตœ์‹  ํŒจ์น˜ ๋ฆด๋ฆฌ์Šค๋งŒ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  6. ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ๋˜๊ธฐ ์ „ ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ ๋ฐ ๋…ธ๋“œ ์ƒํƒœ๋ฅผ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ ๊ฒ€์‚ฌ๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ ๊ฒ€์‚ฌ๊ฐ€ ํ†ต๊ณผํ•˜๋ฉด ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฉ๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์™„๋ฃŒํ•˜๋Š” ๋ฐ ์•ฝ 30๋ถ„ ์ •๋„ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œ ์ƒํƒœ๋ฅผ ๋ณด๋ ค๋ฉด ํด๋Ÿฌ์Šคํ„ฐ ์„ธ๋ถ€์ •๋ณด ํƒญ์—์„œ ์„ธ๋ถ€์ •๋ณด ํ‘œ์‹œ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

gcloud CLI

์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ์— ๋ช‡ ๊ฐ€์ง€ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. gcloud container vmware clusters upgrade ๋ช…๋ น์–ด๋Š” ์ž๋™์œผ๋กœ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ์•„์ง ๋“ฑ๋ก๋˜์ง€ ์•Š์•˜์œผ๋ฉด GKE On-Prem API์— ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

  • ๊ตฌ์„ฑ์š”์†Œ ๋ฒˆ๋“ค์„ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ์— ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ์š”์†Œ์˜ ๋ฒ„์ „์ด ์—…๊ทธ๋ ˆ์ด๋“œ์—์„œ ์ง€์ •ํ•œ ๋ฒ„์ „๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๋Š” ํ•ด๋‹น ๋ฒ„์ „์˜ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Google Cloud CLI ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

    gcloud components update
    
  2. Ubuntu ๋ฐ COS ๋…ธ๋“œ ํ’€๋งŒ ํ•ด๋‹น: ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ๋ชจ๋“  ๋…ธ๋“œ ํ’€์„ ํ˜„์žฌ ๋ฒ„์ „์œผ๋กœ ๋‘๋ ค๋ฉด ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ ์ •์ฑ…์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

    gcloud container vmware clusters update USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --upgrade-policy control-plane-only=True
    

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • USER_CLUSTER_NAME: ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ์ด๋ฆ„

    • PROJECT_ID: ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๊ตฌ์„ฑ์›์ธ Fleet ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ์˜ ID. ์ด ํ”„๋กœ์ ํŠธ๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ค ๋•Œ ์ง€์ •๋œ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. gkectl์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ค์—ˆ์œผ๋ฉด ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ gkeConnect.projectID ํ•„๋“œ์˜ ํ”„๋กœ์ ํŠธ ID์ž…๋‹ˆ๋‹ค.

    • REGION: GKE On-Prem API๊ฐ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ €์žฅํ•˜๋Š” Google Cloud ๋ฆฌ์ „. GKE On-Prem API ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“  ๊ฒฝ์šฐ ์ด ๋ฆฌ์ „์€ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ค ๋•Œ ์„ ํƒํ•œ ๋ฆฌ์ „์ž…๋‹ˆ๋‹ค. gkectl์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“  ๊ฒฝ์šฐ ์ด ๋ฆฌ์ „์€ GKE On-Prem API์— ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋“ฑ๋กํ•  ๋•Œ ์ง€์ •ํ•œ ๋ฆฌ์ „์ž…๋‹ˆ๋‹ค.

  3. ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„์ „ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

    gcloud container vmware clusters query-version-config \
      --cluster=USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION
    

    ์ด ๋ช…๋ น์–ด ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

    versions:
    - version: 1.16.3-gke.45
    - version: 1.16.2-gke.28
    - version: 1.16.1-gke.45
    - version: 1.16.0-gke.669
    - version: 1.15.6-gke.25
    - version: 1.15.5-gke.41
    
    An Anthos version must be made available on the admin cluster ahead of the user
    cluster creation or upgrade. Versions annotated with isInstalled=true are
    installed on the admin cluster for the purpose of user cluster creation or
    upgrade whereas other version are released and will be available for upgrade
    once dependencies are resolved.
    
    To install the version in the admin cluster, run:
    $ gcloud container vmware admin-clusters update my-admin-cluster --required-platform-version=VERSION
    

    ๋ฒ„์ „ ๋ชฉ๋ก ๋‹ค์Œ์— ํ‘œ์‹œ๋˜๋Š” ๋ฉ”์‹œ์ง€๋Š” ๋ฌด์‹œํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋ฒ„์ „์ด ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ์— ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. upgrade ๋ช…๋ น์–ด๋Š” upgrade ๋ช…๋ น์–ด์— ์ง€์ •ํ•œ ๋ฒ„์ „๊ณผ ์ผ์น˜ํ•˜๋Š” ๊ตฌ์„ฑ์š”์†Œ ๋ฒˆ๋“ค์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

  4. ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค. update ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์—…๊ทธ๋ ˆ์ด๋“œ ์ •์ฑ…์„ control-plane-only=True๋กœ ๋ณ€๊ฒฝํ•œ ๊ฒฝ์šฐ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ๊ณผ ๋ชจ๋“  ๋…ธ๋“œ ํ’€์ด ์—…๊ทธ๋ ˆ์ด๋“œ๋ฉ๋‹ˆ๋‹ค.

    gcloud container vmware clusters upgrade USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --version=VERSION
    

    ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋Š” Google Distributed Cloud ๋ฒ„์ „์œผ๋กœ VERSION์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์ด์ „ ๋ช…๋ น์–ด์˜ ์ถœ๋ ฅ์—์„œ ๋ฒ„์ „์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์‹  ํŒจ์น˜ ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

    ๋ช…๋ น์–ด ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

    Waiting for operation [projects/example-project-12345/locations/us-west1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
    

    ์˜ˆ์‹œ ์ถœ๋ ฅ์—์„œ operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179 ๋ฌธ์ž์—ด์€ ์žฅ๊ธฐ ์‹คํ–‰ ์ž‘์—…์˜ OPERATION_ID์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ„ฐ๋ฏธ๋„ ์ฐฝ์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ž‘์—… ์ƒํƒœ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    gcloud container vmware operations describe OPERATION_ID \
      --project=PROJECT_ID \
      --location=REGION
    

๋…ธ๋“œ ํ’€ ์—…๊ทธ๋ ˆ์ด๋“œ

์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋„๋ก ์„ ํƒํ•œ ๊ฒฝ์šฐ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์ด ์—…๊ทธ๋ ˆ์ด๋“œ๋œ ํ›„ ๋…ธ๋“œ ํ’€์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

  1. ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋…ธ๋“œ ํ’€ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

    gcloud container vmware node-pools list
      --cluster=USER_CLUSTER_NAME  \
      --project=PROJECT_ID \
      --location=REGION
    
  2. ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋Š” ๊ฐ ๋…ธ๋“œ ํ’€์— ๋Œ€ํ•ด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gcloud container vmware node-pools update NODE_POOL_NAME \
      --cluster=USER_CLUSTER_NAME  \
      --project=PROJECT_ID \
      --location=REGION \
      --version=VERSION
    

Terraform

  1. Google Cloud CLI ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

    gcloud components update
    
  2. ์•„์ง ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์•˜์œผ๋ฉด GKE On-Prem API์— ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.. GKE On-Prem API์— ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋“ฑ๋กํ•œ ๋‹ค์Œ์—๋Š” ์ด ๋‹จ๊ณ„๋ฅผ ๋‹ค์‹œ ์ˆ˜ํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

  3. ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„์ „ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

    gcloud container vmware clusters query-version-config \
      --cluster=USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION
    

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • USER_CLUSTER_NAME: ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ด๋ฆ„

    • PROJECT_ID: ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๋ฉค๋ฒ„์ธ Fleet ํ”„๋กœ์ ํŠธ์˜ ID. ์ด ํ”„๋กœ์ ํŠธ๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ค ๋•Œ ์ง€์ •๋œ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. gkectl์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ค์—ˆ์œผ๋ฉด ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ gkeConnect.projectID ํ•„๋“œ์˜ ํ”„๋กœ์ ํŠธ ID์ž…๋‹ˆ๋‹ค.

    • REGION: GKE On-Prem API๊ฐ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ €์žฅํ•˜๋Š” Google Cloud ๋ฆฌ์ „. ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉํ•œ main.tf ํŒŒ์ผ์—์„œ ๋ฆฌ์ „์€ ํด๋Ÿฌ์Šคํ„ฐ ๋ฆฌ์†Œ์Šค์˜ location ํ•„๋“œ์— ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ด ๋ช…๋ น์–ด ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

    versions:
    - version: 1.16.3-gke.45
    - version: 1.16.2-gke.28
    - version: 1.16.1-gke.45
    - version: 1.16.0-gke.669
    - version: 1.15.6-gke.25
    - version: 1.15.5-gke.41
    
    An Anthos version must be made available on the admin cluster ahead of the user
    cluster creation or upgrade. Versions annotated with isInstalled=true are
    installed on the admin cluster for the purpose of user cluster creation or
    upgrade whereas other version are released and will be available for upgrade
    once dependencies are resolved.
    
    To install the version in the admin cluster, run:
    $ gcloud container vmware admin-clusters update my-admin-cluster --required-platform-version=VERSION
    
  4. ์ƒˆ ๋ฒ„์ „์˜ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

    gcloud container vmware admin-clusters update ADMIN_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --required-platform-version=VERSION
    

    ์ด ๋ช…๋ น์–ด๋Š” --required-platform-version์— ์ง€์ •ํ•˜๋Š” ๊ตฌ์„ฑ์š”์†Œ ๋ฒ„์ „์„ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ์— ๋‹ค์šด๋กœ๋“œํ•œ ํ›„ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๋Š” ํ•ด๋‹น ๋ฒ„์ „์˜ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  5. ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉํ•œ main.tf ํŒŒ์ผ์—์„œ ํด๋Ÿฌ์Šคํ„ฐ ๋ฆฌ์†Œ์Šค์˜ on_prem_version์„ ์ƒˆ ๋ฒ„์ „์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

  6. Ubuntu ๋ฐ COS ๋…ธ๋“œ ํ’€๋งŒ ํ•ด๋‹น: ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ๋ชจ๋“  ๋…ธ๋“œ ํ’€์„ ํ˜„์žฌ ๋ฒ„์ „์œผ๋กœ ๋‘๋ ค๋ฉด ํด๋Ÿฌ์Šคํ„ฐ์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

    upgrade_policy {
      control_plane_only = true
    }
    
  7. Terraform ๊ณ„ํš์„ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    terraform init
    

    Terraform์€ Google Cloud ์ œ๊ณต์—…์ฒด์™€ ๊ฐ™์€ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

  8. ๊ตฌ์„ฑ์„ ๊ฒ€ํ† ํ•˜๊ณ  ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

    terraform plan
    
  9. Terraform ๊ณ„ํš์„ ์ ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    terraform apply
    

๋…ธ๋“œ ํ’€ ์—…๊ทธ๋ ˆ์ด๋“œ

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

  1. ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋Š” ๊ฐ ๋…ธ๋“œ ํ’€์—์„œ ๋ฆฌ์†Œ์Šค์˜ main.tf์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

    on_prem_version = "VERSION"
    

    ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    resource "google_gkeonprem_vmware_node_pool" "nodepool-basic" {
    name = "my-nodepool"
    location = "us-west1"
    vmware_cluster = google_gkeonprem_vmware_cluster.default-basic.name
    config {
      replicas = 3
      image_type = "ubuntu_containerd"
      enable_load_balancer = true
    }
    on_prem_version = "1.16.0-gke.0"
    }
    
  2. Terraform ๊ณ„ํš์„ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    terraform init
    
  3. ๊ตฌ์„ฑ์„ ๊ฒ€ํ† ํ•˜๊ณ  ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

    terraform plan
    
  4. Terraform ๊ณ„ํš์„ ์ ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    terraform apply
    

๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ

์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ์‚ฌํ•ญ์„ ํ™•์ธํ•˜์„ธ์š”.

  1. ๋ฒ„์ „ 1.13 ์ด์ƒ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒฝ์šฐ ๋จผ์ € ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ํŒŒ์ผ์˜ gkeConnect ์„น์…˜์„ ์ž‘์„ฑํ•˜์—ฌ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋“ฑ๋กํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ํŒŒ์ผ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์‚ฌ์šฉํ•˜์—ฌ gkectl ํด๋Ÿฌ์Šคํ„ฐ ์—…๋ฐ์ดํŠธ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  2. gkectl ๋ฐ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ์— ์ ํ•ฉํ•œ ๋ฒ„์ „ ์ˆ˜์ค€์ธ์ง€ ํ™•์ธํ•˜๊ณ  ์ ํ•ฉํ•œ ๋ฒˆ๋“ค์„ ๋‹ค์šด๋กœ๋“œํ–ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ์™€ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ์‚ฌ์ด์˜ ๋ฒ„์ „ ํŽธํ–ฅ์€ Google Distributed Cloud ๋ฒ„์ „์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๊ด€๋ฆฌ์ž ๋ฐ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ๋ฒ„์ „ ์ฐจ์ด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  3. ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ํŒŒ์ผ์˜ bundlepath ํ•„๋“œ๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋ฒˆ๋“ค์˜ ๊ฒฝ๋กœ์™€ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ํŒŒ์ผ์˜ ํ•„๋“œ์— ๋‹ค๋ฅธ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ์—…๊ทธ๋ ˆ์ด๋“œ ์ค‘์— ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๋ ค๋ฉด ๋จผ์ € ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ๋‹ค์Œ ๊ตฌ์„ฑ ํŒŒ์ผ ๋ณ€๊ฒฝ์‚ฌํ•ญ๊ณผ ํ•จ๊ป˜ ํด๋Ÿฌ์Šคํ„ฐ ์—…๋ฐ์ดํŠธ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

gkectl upgrade admin ์‹คํ–‰

๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์—์„œ ์ด ์„น์…˜์˜ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. gkectl upgrade admin ๋ช…๋ น์–ด์—๋Š” ๋‘ ๊ฐ€์ง€ ๋ณ€ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋น„๋™๊ธฐ:
    ๋น„๋™๊ธฐ ๋ณ€ํ˜•์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ช…๋ น์–ด๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹œ์ž‘ํ•œ ํ›„ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ ์ „์ฒด ๊ธฐ๊ฐ„ ๋™์•ˆ ๋ช…๋ น์–ด์˜ ์ถœ๋ ฅ์„ ํ™•์ธํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  gkectl list admin ๋ฐ gkectl describe admin์„ ์‹คํ–‰ํ•˜์—ฌ ์—…๊ทธ๋ ˆ์ด๋“œ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ฃผ๊ธฐ์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๋™๊ธฐ ๋ณ€ํ˜•์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ช…๋ น์–ด์— --async ํ”Œ๋ž˜๊ทธ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

    ๋น„๋™๊ธฐ ์—…๊ทธ๋ ˆ์ด๋“œ ์š”๊ตฌ์‚ฌํ•ญ:

    • ๋ฒ„์ „ 1.29 ์ด์ƒ์˜ HA ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
    • ๋ชจ๋“  ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ์—๋Š” Controlplane V2๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋™๊ธฐ:
    ๋™๊ธฐ ๋ณ€ํ˜•์„ ์‚ฌ์šฉํ•˜๋ฉด gkectl upgrade admin ๋ช…๋ น์–ด์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์— ์ƒํƒœ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๋น„๋™๊ธฐ ์—…๊ทธ๋ ˆ์ด๋“œ

  1. ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์—์„œ ๋น„๋™๊ธฐ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

    gkectl upgrade admin \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
      --config ADMIN_CLUSTER_CONFIG_FILE \
      --async
    

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • ADMIN_CLUSTER_KUBECONFIG: ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ์˜ kubeconfig ํŒŒ์ผ ๊ฒฝ๋กœ

    • ADMIN_CLUSTER_CONFIG_FILE: ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ํŒŒ์ผ ๊ฒฝ๋กœ.

    ์•ž์˜ ๋ช…๋ น์–ด๊ฐ€ ์™„๋ฃŒ๋˜๊ณ  ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    gkectl upgrade admin์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gkectl upgrade admin -h
    
  2. ์—…๊ทธ๋ ˆ์ด๋“œ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์„ธ์š”.

    gkectl list admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    ์ถœ๋ ฅ์— ํด๋Ÿฌ์Šคํ„ฐ STATE ๊ฐ’์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ ์ค‘์ธ ๊ฒฝ์šฐ STATE ๊ฐ’์€ UPGRADING์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    NAME              STATE         AGE    VERSION
    gke-admin-test    UPGRADING     9h     1.30.100-gke.96
    

    STATE์— ๋Œ€ํ•ด ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ RUNNING, UPGRADING, RECONCILING ,ERROR, UNKNOWN์ž…๋‹ˆ๋‹ค.

  3. ์—…๊ทธ๋ ˆ์ด๋“œ ์ง„ํ–‰ ์ƒํƒœ ๋ฐ ํด๋Ÿฌ์Šคํ„ฐ ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ์„ธ๋ถ€์ •๋ณด๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gkectl describe admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    ์ถœ๋ ฅ์—๋Š” ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ, ์กฐ๊ฑด, ์ด๋ฒคํŠธ๊ฐ€ ํฌํ•จ๋œ ์ง€์ •๋œ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ์˜ OnPremAdminCluster ์ปค์Šคํ…€ ๋ฆฌ์†Œ์Šค๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    Google์—์„œ๋Š” ๊ฐ ์ฃผ์š” ์—…๊ทธ๋ ˆ์ด๋“œ ๋‹จ๊ณ„์˜ ์‹œ์ž‘๊ณผ ์ข…๋ฃŒ์— ๋Œ€ํ•œ ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

    ์ถœ๋ ฅ ์˜ˆ์‹œ:

    Events:
    Type    Reason                             Age   From                             Message
    ----       ------                                  ----     ----                                -------
    Normal  ControlPlaneUpgradeStarted         40m   onprem-admin-cluster-controller  Creating or updating admin cluster API Controller
    Normal  ControlPlaneMachineUpgradeStarted  40m   onprem-admin-cluster-controller  Creating or updating control plane machine
    Normal  StatusChanged                      40m   onprem-admin-cluster-controller  OnPremAdminCluster status changed:
    - New ClusterState condition: UPGRADING
    - New Ready condition: False, CreateOrUpdateControlPlaneMachine, Creating or updating control plane machine
    Normal   StatusChanged      2m                onprem-admin-cluster-controller  OnPremAdminCluster status changed:
    - New ClusterState condition: RUNNING
    - New Ready condition: True, ClusterRunning, Cluster is running
    
  4. ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด gkectl list admin์— RUNNING์ธ STATUS๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    NAME              STATE         AGE    VERSION
    gke-admin-test    RUNNING       9h     1.30.100-gke.96
    

    ๋˜ํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด gkectl describe admin์— Status๋กœ Last GKE On Prem Version ํ•„๋“œ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    Status:
      Cluster State:  RUNNING
      Last GKE On Prem Version:  1.30.0-gke.1
    

๋น„๋™๊ธฐ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฌธ์ œ ํ•ด๊ฒฐ

๋น„๋™๊ธฐ ์—…๊ทธ๋ ˆ์ด๋“œ์˜ ๊ฒฝ์šฐ ์ œํ•œ ์‹œ๊ฐ„์€ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋…ธ๋“œ ์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ œํ•œ ์‹œ๊ฐ„๋ณด๋‹ค ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋ฉด ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ๊ฐ€ UPGRADING์—์„œ ERROR๋กœ ๋ณ€๊ฒฝ๋˜๊ณ  ์—…๊ทธ๋ ˆ์ด๋“œ ์ž‘์—…์ด ์‹œ๊ฐ„ ์ดˆ๊ณผ๋˜์—ˆ๋‹ค๋Š” ์ด๋ฒคํŠธ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ERROR ์ƒํƒœ๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์˜ˆ์ƒ๋ณด๋‹ค ์˜ค๋ž˜ ๊ฑธ๋ฆฌ์ง€๋งŒ ์ข…๋ฃŒ๋˜์ง€ ์•Š์•˜์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์กฐ์ •์„ ๊ณ„์†ํ•˜๊ณ  ์ž‘์—…์„ ๊ณ„์† ์žฌ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ฐจ๋‹จ๋˜๊ฑฐ๋‚˜ ์—…๊ทธ๋ ˆ์ด๋“œ์— ์‹คํŒจํ–ˆ์„ ๋•Œ gkectl diagnose๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ผ๋ฐ˜์ ์ธ ํด๋Ÿฌ์Šคํ„ฐ ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ์ˆ˜๋™์œผ๋กœ ํ•ด๊ฒฐํ• ์ง€ ์•„๋‹ˆ๋ฉด Google Cloud ์ง€์›ํŒ€์— ๋ฌธ์˜ํ•˜์—ฌ ์ถ”๊ฐ€ ์ง€์›์„ ๋ฐ›์„์ง€ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋™๊ธฐ์‹ ์—…๊ทธ๋ ˆ์ด๋“œ

  1. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gkectl upgrade admin \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
      --config ADMIN_CLUSTER_CONFIG_FILE \
    

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • ADMIN_CLUSTER_KUBECONFIG: ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ kubeconfig ํŒŒ์ผ์˜ ๊ฒฝ๋กœ

    • ADMIN_CLUSTER_CONFIG_FILE: ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ํŒŒ์ผ ๊ฒฝ๋กœ.

    gkectl upgrade ๋ช…๋ น์–ด๋Š” ์‹คํ–‰ ์ „ ๊ฒ€์‚ฌ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ์ „ ๊ฒ€์‚ฌ๊ฐ€ ์‹คํŒจํ•˜๋ฉด ๋ช…๋ น์–ด๊ฐ€ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. ์‹คํŒจ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ๋ช…๋ น์–ด์™€ ํ•จ๊ป˜ --skip-preflight-check-blocking ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฐจ๋‹จ์„ ํ•ด์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  2. ๋ฒ„์ „ 1.14.0 ์ด์ƒ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒฝ์šฐ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•ด ๊ธฐ์กด ํŒŒ์ผ์„ ๋ฎ์–ด์“ฐ๋Š” ์ƒˆ kubeconfig ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์—์„œ ํด๋Ÿฌ์Šคํ„ฐ ์„ธ๋ถ€์ •๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    kubectl config view --kubeconfig ADMIN_CLUSTER_KUBECONFIG

์ „์ฒด ๋ฒˆ๋“ค ์‚ญ์ œ

์ „์ฒด ๋ฒˆ๋“ค์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  gkectl prepare ๋ฐ gkectl upgrade admin ๋ช…๋ น์–ด๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰ํ•œ ๊ฒฝ์šฐ ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์˜ ๋””์Šคํฌ ๊ณต๊ฐ„์„ ์ ˆ์•ฝํ•˜๊ธฐ ์œ„ํ•ด ์ „์ฒด ๋ฒˆ๋“ค์„ ์‚ญ์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ „์ฒด ๋ฒˆ๋“ค์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

rm /var/lib/gke/bundles/gke-onprem-vsphere-${TARGET_VERSION}-full.tgz

๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ ์žฌ๊ฐœ

๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ค‘๋‹จ๋˜๊ฑฐ๋‚˜ ์‹คํŒจํ•˜๋Š” ๊ฒฝ์šฐ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ ์ฒดํฌํฌ์ธํŠธ์— ์ค‘๋‹จ ์ „ ์ƒํƒœ๋ฅผ ๋ณต์›ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ƒํƒœ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์žฌ๊ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ : ์—…๊ทธ๋ ˆ์ด๋“œ ์‹œ๋„ ์‹คํŒจ ํ›„ gkectl repair admin-master๋กœ ๊ด€๋ฆฌ ๋งˆ์Šคํ„ฐ๋ฅผ ๋ณต๊ตฌํ•˜์ง€ ๋งˆ์„ธ์š”. ์ด๋กœ ์ธํ•ด ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ข‹์ง€ ์•Š์€ ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. ์ดˆ๊ธฐ ์—…๊ทธ๋ ˆ์ด๋“œ ์‹œ๋„๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๊ด€๋ฆฌ์ž ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์ด ์ •์ƒ์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ๋ฌธ์ œ ์ง„๋‹จ์„ ์ฐธ์กฐํ•˜์„ธ์š”. ์ด ์ฃผ์ œ์˜ ์„ค๋ช…๋Œ€๋กœ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ์— gkectl diagnose cluster ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  2. ์ดˆ๊ธฐ ์—…๊ทธ๋ ˆ์ด๋“œ ์‹œ๋„ ์ „์— ๊ด€๋ฆฌ์ž ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์ด ๋น„์ •์ƒ์ธ ๊ฒฝ์šฐ gkectl repair admin-master ๋ช…๋ น์–ด๋กœ ๊ด€๋ฆฌ์ž ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์„ ๋ณต๊ตฌํ•ฉ๋‹ˆ๋‹ค.

  3. ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ค‘๋‹จ๋˜๊ฑฐ๋‚˜ ์‹คํŒจํ•œ ํ›„ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์–ด๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ์ด์ „ ์—…๊ทธ๋ ˆ์ด๋“œ ์‹œ๋„์™€ ๋™์ผํ•œ ๋ฒˆ๋“ค ๋ฐ ๋Œ€์ƒ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์–ด๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด ์žฌ๊ฐœ๋œ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ฒดํฌํฌ์ธํŠธ์—์„œ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ๋ฅผ ๋‹ค์‹œ ๋งŒ๋“ค๊ณ  ์ „์ฒด ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. 1.12.0๋ถ€ํ„ฐ ๊ด€๋ฆฌ์ž ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์ด ๋น„์ •์ƒ์ด๋ฉด ์—…๊ทธ๋ ˆ์ด๋“œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ ์ง„ํ–‰ ์ „ ์†Œ์Šค ๋ฒ„์ „์—์„œ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ณต์›ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜์ง€ ์•Š๊ณ  ๋Œ€์ƒ ๋ฒ„์ „์œผ๋กœ ์ง์ ‘ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

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

๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ ์ค‘์— gkectl๊ฐ€ ์˜ˆ๊ธฐ์น˜ ์•Š๊ฒŒ ์ข…๋ฃŒ๋˜๋ฉด ์ข…๋ฅ˜ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์‚ญ์ œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์žฌ๊ฐœํ•˜๊ธฐ ์œ„ํ•ด ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์–ด๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์ข…๋ฅ˜ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

docker stop gkectl-control-plane && docker rm gkectl-control-plane

์ข…๋ฅ˜ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‚ญ์ œํ•œ ํ›„ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์–ด๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œ ํ›„ ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜ ๋กค๋ฐฑ

๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ์—…๊ทธ๋ ˆ์ด๋“œ ์ „์— ์‚ฌ์šฉ๋œ ๋ฒ„์ „์œผ๋กœ ๋กค๋ฐฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋™์•ˆ gkeadm์€ ์ถœ๋ ฅ ์ •๋ณด ํŒŒ์ผ์— ์—…๊ทธ๋ ˆ์ด๋“œ๋˜๊ธฐ ์ „ ๋ฒ„์ „์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ๋กค๋ฐฑํ•˜๋Š” ๋™์•ˆ gkeadm์€ ๋‚˜์—ด๋œ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด์ „ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋กค๋ฐฑํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

gkeadm rollback admin-workstation --config=AW_CONFIG_FILE

๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ตฌ์„ฑ ํŒŒ์ผ์ด ๊ธฐ๋ณธ admin-ws-config.yaml์ธ ๊ฒฝ์šฐ --config=AW_CONFIG_FILE์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด AW_CONFIG_FILE์„ ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ตฌ์„ฑ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

๋กค๋ฐฑ ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. gkeadm์˜ ๋กค๋ฐฑ ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
  2. ํ˜„์žฌ ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์˜ ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ฐฑ์—…ํ•ฉ๋‹ˆ๋‹ค.
  3. gkeadm์˜ ๋กค๋ฐฑ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  4. ๊ธฐ์กด ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์œ„ํ•ด ๋ฒˆ๋“ค์„ ๋‹ค๋ฅธ ๋ฒ„์ „์œผ๋กœ ์„ค์น˜

์›Œํฌ์Šคํ…Œ์ด์…˜์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ํ•ด๋‹น ๋ฒ„์ „์˜ ๋ฒˆ๋“ค์ด ์„ค์น˜๋˜์–ด ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฒ„์ „์„ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋Š” ๋ฒ„์ „์ธ TARGET_VERSION ๋ฒˆ๋“ค์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

  1. ํ˜„์žฌ gkectl ๋ฐ ํด๋Ÿฌ์Šคํ„ฐ ๋ฒ„์ „์„ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์„ ๋ณด๋ ค๋ฉด --details/-d ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    gkectl version --kubeconfig ADMIN_CLUSTER_KUBECONFIG --details
    

    ์ถœ๋ ฅ์—์„œ ํด๋Ÿฌ์Šคํ„ฐ ๋ฒ„์ „์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  2. ์ถœ๋ ฅ์— ๋”ฐ๋ผ ๋‹ค์Œ ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ์ด๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

    • ํ˜„์žฌ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ ๋ฒ„์ „์ด TARGET_VERSION๋ณด๋‹ค ๋‚ฎ์€ ๋ถ€ ๋ฒ„์ „ ๋‘ ๊ฐœ ์ด์ƒ์ด๋ฉด ๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ TARGET_VERSION๋ณด๋‹ค ๋‚ฎ์€ ๋ถ€ ๋ฒ„์ „ ํ•˜๋‚˜๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

    • gkectl ๋ฒ„์ „์ด 1.11๋ณด๋‹ค ๋‚ฎ๊ณ  1.12.x๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 1.11.x์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ํ•œ ๋ฒˆ์— ๋ถ€ ๋ฒ„์ „ ํ•˜๋‚˜๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„ ์ด ์ฃผ์ œ์˜ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    • gkectl ๋ฒ„์ „์ด TARGET_VERSION๋ณด๋‹ค ๋‚ฎ์€ ๊ฒฝ์šฐ TARGET_VERSION์œผ๋กœ ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

  3. gkectl ๋ฐ ํด๋Ÿฌ์Šคํ„ฐ ๋ฒ„์ „์ด ์—…๊ทธ๋ ˆ์ด๋“œ์— ์ ํ•ฉํ•œ ๊ฒƒ์œผ๋กœ ํ™•์ธ๋˜์—ˆ์œผ๋ฉด ๋ฒˆ๋“ค์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

    ๋ฒˆ๋“ค tarball์ด ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์— ์ด๋ฏธ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    stat /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION.tgz

    ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์— ๋ฒˆ๋“ค์ด ์—†์œผ๋ฉด ์ด๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

    gcloud storage cp gs://gke-on-prem-release/gke-onprem-bundle/TARGET_VERSION/gke-onprem-vsphere-TARGET_VERSION.tgz /var/lib/gke/bundles/
    

  4. ๋ฒˆ๋“ค์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    gkectl prepare --bundle-path /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION.tgz --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    ADMIN_CLUSTER_KUBECONFIG๋ฅผ kubeconfig ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ํŒŒ์ผ์ด ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๊ณ  ์ด๋ฆ„์ด kubeconfig์ด๋ฉด ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  5. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํด๋Ÿฌ์Šคํ„ฐ ๋ฒ„์ „์„ ๋‚˜์—ดํ•˜๊ณ  ๋Œ€์ƒ ๋ฒ„์ „์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ๋ฒ„์ „์— ํฌํ•จ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    gkectl version --kubeconfig ADMIN_CLUSTER_KUBECONFIG --details

์ด์ œ ๋Œ€์ƒ ๋ฒ„์ „์œผ๋กœ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋Œ€์ƒ ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œ ํ”„๋กœ์„ธ์Šค ๋ฌธ์ œ ํ•ด๊ฒฐ

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

์ฐธ์กฐ: ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์„ฑ ๋ฐ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฌธ์ œ ํ•ด๊ฒฐ

์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฌธ์ œ ํ•ด๊ฒฐ

์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋•Œ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฒ„์ „์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Google ์ง€์›์„ ํ†ตํ•ด ์˜ˆ์ •๋œ ํŒจ์น˜ ์ถœ์‹œ ๋ฒ„์ „์—์„œ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋  ๊ฒƒ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  1. ํ”„๋กœ๋•์…˜์— ํ˜„์žฌ ๋ฒ„์ „์„ ๊ณ„์† ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  2. ํŒจ์น˜ ๋ฒ„์ „์ด ์ถœ์‹œ๋  ๋•Œ ๋น„ํ”„๋กœ๋•์…˜ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ํŒจ์น˜ ์ถœ์‹œ ๋ฒ„์ „์„ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.
  3. ํ™•์‹ ์ด ๋“ค๋ฉด ๋ชจ๋“  ํ”„๋กœ๋•์…˜ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ํŒจ์น˜ ์ถœ์‹œ ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.
  4. ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ํŒจ์น˜ ์ถœ์‹œ ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฌธ์ œ ํ•ด๊ฒฐ

๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด Google ์ง€์›์— ์—ฐ๋ฝํ•˜์—ฌ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋Š” ๋™์•ˆ ์ƒˆ ์—…๊ทธ๋ ˆ์ด๋“œ ํ๋ฆ„์—์„œ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ๋กœ ๋ฐฉํ•ด๋˜์ง€ ์•Š๊ณ  ์ƒˆ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ๊ธฐ๋Šฅ์„ ๊ณ„์† ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ์˜ ์—…๊ทธ๋ ˆ์ด๋“œ ๋นˆ๋„๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง„ํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ํ”„๋กœ๋•์…˜ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ 1.12.x๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ด์ „ ๋ฒ„์ „์œผ๋กœ ์œ ์ง€ํ•˜๊ณ  ๋ณด์•ˆ ํŒจ์น˜๋ฅผ ๊ณ„์† ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค.
  3. ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์—์„œ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ 1.11.x์—์„œ 1.12.x๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.
  4. 1.12.x ํŒจ์น˜ ์ถœ์‹œ ๋ฒ„์ „์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๋ฉด ์›ํ•˜๋Š” ๊ฒฝ์šฐ ํ”„๋กœ๋•์…˜ ๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ด ํŒจ์น˜ ์ถœ์‹œ ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์‹  ๋ฒ„์ „์˜ ์•Œ๋ ค์ง„ ๋ฌธ์ œ

๋ฒ„์ „ 1.7 ์ด์ƒ์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์•Œ๋ ค์ง„ ๋ฌธ์ œ๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ์กฐ: ์•Œ๋ ค์ง„ ๋ฌธ์ œ

๋ฐ์ดํ„ฐ ๋””์Šคํฌ๊ฐ€ ๊ฑฐ์˜ ๊ฐ€๋“ ์ฐฌ ๊ฒฝ์šฐ ๊ด€๋ฆฌ ์›Œํฌ์Šคํ…Œ์ด์…˜ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Œ

gkectl upgrade admin-workstation ๋ช…๋ น์–ด๋กœ ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒฝ์šฐ, ์‹œ์Šคํ…œ์ด ์ƒˆ ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋™์•ˆ ํ˜„์žฌ ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ๋กœ์ปฌ๋กœ ๋ฐฑ์—…ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ ๋””์Šคํฌ๊ฐ€ ๊ฑฐ์˜ ๊ฐ€๋“ ์ฐจ๋ฉด ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋””์Šคํฌ์˜ ์ถฉ๋ถ„ํ•œ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ถ”๊ฐ€ ํ”Œ๋ž˜๊ทธ --backup-to-local=false์™€ ํ•จ๊ป˜ gkectl upgrade admin-workstation ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์˜ ๋กœ์ปฌ ๋ฐฑ์—…์„ ๋งŒ๋“ค์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

PodDisruptionBudget์œผ๋กœ ์›Œํฌ๋กœ๋“œ ์ค‘๋‹จ

ํ˜„์žฌ๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด PodDisruptionBudgets(PDB)์„ ์‚ฌ์šฉํ•˜๋Š” ์›Œํฌ๋กœ๋“œ์— ์ค‘๋‹จ ๋˜๋Š” ๋‹ค์šดํƒ€์ž„์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋…ธ๋“œ๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ ์ ˆ์ฐจ๋ฅผ ์™„๋ฃŒํ•˜์ง€ ๋ชปํ•จ

์ถ”๊ฐ€ ์ค‘๋‹จ์„ ํ—ˆ์šฉํ•  ์ˆ˜ ์—†๋„๋ก ๊ตฌ์„ฑ๋œ PodDisruptionBudget ๊ฐ์ฒด๊ฐ€ ์žˆ์œผ๋ฉด ๋ฐ˜๋ณต๋œ ์‹œ๋„ ํ›„ ๋…ธ๋“œ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‹คํŒจ๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด PodDisruptionBudget ๊ตฌ์„ฑ์„ ์ง€ํ‚ค๋ฉด์„œ ๋…ธ๋“œ ๋“œ๋ ˆ์ด๋‹์„ ํ—ˆ์šฉํ•˜๋„๋ก Deployment ๋˜๋Š” HorizontalPodAutoscaler๋ฅผ ์ˆ˜์ง ํ™•์žฅํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ค‘๋‹จ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  PodDisruptionBudget ๊ฐ์ฒด๋ฅผ ๋ณด๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

kubectl get poddisruptionbudget --all-namespaces -o jsonpath='{range .items[?(@.status.disruptionsAllowed==0)]}{.metadata.name}/{.metadata.namespace}{"\n"}{end}'

๋ถ€๋ก

๋ฒ„์ „ 1.1.0-gke.6์—์„œ ์‚ฌ์šฉ ์„ค์ •๋œ VMware DRS ๊ทœ์น™ ์ •๋ณด

๋ฒ„์ „ 1.1.0-gke.6๋ถ€ํ„ฐ Google Distributed Cloud๋Š” ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ์— ๋Œ€ํ•ด VMware Distributed Resource Scheduler(DRS) ์•ˆํ‹ฐ-์–ดํ”ผ๋‹ˆํ‹ฐ ๊ทœ์น™์„ ์ž๋™์œผ๋กœ ๋งŒ๋“ค์–ด ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์— ์žˆ๋Š” ์ตœ์†Œ 3๊ฐœ ์ด์ƒ์˜ ๋ฌผ๋ฆฌ์  ํ˜ธ์ŠคํŠธ์— ๋ถ„์‚ฐ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„์ „ 1.1.0-gke.6๋ถ€ํ„ฐ ์ด ๊ธฐ๋Šฅ์€ ์ƒˆ ํด๋Ÿฌ์Šคํ„ฐ์™€ ๊ธฐ์กด ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ž๋™์œผ๋กœ ์‚ฌ์šฉ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์ „์— vSphere ํ™˜๊ฒฝ์€ ๋‹ค์Œ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

vSphere ํ™˜๊ฒฝ์ด ์œ„์˜ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋„ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ 1.3.x์—์„œ 1.4.x๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด ์•ˆํ‹ฐ์–ดํ”ผ๋‹ˆํ‹ฐ ๊ทธ๋ฃน์„ ์‚ฌ์šฉ ์ค‘์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Google Distributed Cloud ์ถœ์‹œ ๋…ธํŠธ์˜ ์•Œ๋ ค์ง„ ๋ฌธ์ œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์—…๊ทธ๋ ˆ์ด๋“œ ์ค‘ ๋‹ค์šดํƒ€์ž„ ์ •๋ณด

๋ฆฌ์†Œ์Šค ์„ค๋ช…
๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ

๊ด€๋ฆฌ์ž ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๋‹ค์šด๋˜๋ฉด ๋‹ค์šดํƒ€์ž„ ์›์ธ์ด ๋˜๋Š” ์˜ค๋ฅ˜์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š” ํ•œ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ๊ณผ ์›Œํฌ๋กœ๋“œ๋Š” ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๊ณ„์† ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ

์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์—๋Š” ๋šœ๋ ทํ•œ ๋‹ค์šดํƒ€์ž„์ด ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Kubernetes API ์„œ๋ฒ„๋กœ์˜ ์žฅ๊ธฐ ์‹คํ–‰ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ ธ ๋‹ค์‹œ ์„ค์ •ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ API ํ˜ธ์ถœ์ž๋Š” ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•  ๋•Œ๊นŒ์ง€ ๋‹ค์‹œ ์‹œ๋„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์•…์˜ ๊ฒฝ์šฐ์—๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ ์ค‘์— ๋‹ค์šดํƒ€์ž„์ด ์ตœ๋Œ€ 1๋ถ„๊ฐ„ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ

์—…๊ทธ๋ ˆ์ด๋“œ ์‹œ ์‚ฌ์šฉ์ž ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ Google Distributed Cloud๋Š” ๋…ธ๋“œ๋ฅผ ๋กค๋ง ๋ฐฉ์‹์œผ๋กœ ๋‹ค์‹œ ๋งŒ๋“ค๊ณ  ์ด ๋…ธ๋“œ์—์„œ ์‹คํ–‰ ์ค‘์ธ ์ˆœ์ฐจ์ ์œผ๋กœ ๋‹ค์‹œ ์˜ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค. ์ ์ ˆํ•œ PodDisruptionBudgets๊ณผ ์•ˆํ‹ฐ์–ดํ”ผ๋‹ˆํ‹ฐ ๊ทœ์น™์„ ์„ค์ •ํ•˜์—ฌ ์›Œํฌ๋กœ๋“œ์— ๋Œ€ํ•œ ์˜ํ–ฅ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ˆ„๋ฝ๋œ ๊ฒฝ์šฐ ์ •๋ณด ํŒŒ์ผ ๋‹ค์‹œ ๋งŒ๋“ค๊ธฐ

๊ด€๋ฆฌ์ž ์›Œํฌ์Šคํ…Œ์ด์…˜์˜ ์ถœ๋ ฅ ์ •๋ณด ํŒŒ์ผ์ด ๋ˆ„๋ฝ๋œ ๊ฒฝ์šฐ ์ด ํŒŒ์ผ์„ ๋‹ค์‹œ ๋งŒ๋“ค์–ด์•ผ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์€ ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ์ฒ˜์Œ ๋งŒ๋“ค ๋•Œ ์ƒ์„ฑ๋˜์—ˆ๊ณ  ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์™„๋ฃŒํ•œ ํ›„์— ์ƒˆ ์ •๋ณด๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

Admin workstation version: GKEADM_VERSION
Created using gkeadm version: GKEADM_VERSION
VM name: ADMIN_WS_NAME
IP: ADMIN_WS_IP
SSH key used: FULL_PATH_TO_ADMIN_WS_SSH_KEY
To access your admin workstation:
ssh -i FULL-PATH-TO-ADMIN-WS-SSH-KEY ubuntu@ADMIN-WS-IP

๋‹ค์Œ์€ ์ƒ˜ํ”Œ ์ถœ๋ ฅ ์ •๋ณด ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

Admin workstation version: v1.10.3-gke.49
Created using gkeadm version: v1.10.3-gke.49
VM name: admin-ws-janedoe
IP: 172.16.91.21
SSH key used: /usr/local/google/home/janedoe/.ssh/gke-admin-workstation
Upgraded from (rollback version): v1.10.0-gke.194
To access your admin workstation:
ssh -i /usr/local/google/home/janedoe/.ssh/gke-admin-workstation ubuntu@172.16.91.21

ํŽธ์ง‘๊ธฐ์—์„œ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ์ ์ ˆํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. gkeadm์ด ์‹คํ–‰๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ VM ์ด๋ฆ„๊ณผ ๋™์ผํ•œ ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ ํŒŒ์ผ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด VM ์ด๋ฆ„์ด admin-ws-janedoe์ธ ๊ฒฝ์šฐ ํŒŒ์ผ์„ admin-ws-janedoe๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„