์ด ํ์ด์ง์์๋ Artifact Registry์์ Identity and Access Management(IAM)๋ฅผ ์ฌ์ฉํ ์ก์ธ์ค ์ ์ด๋ฅผ ์ค๋ช ํฉ๋๋ค.
Artifact Registry์ ๊ธฐ๋ณธ ๊ถํ์ CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌํํ ๋ ์ค์ ์์ ์ ์ต์ํํฉ๋๋ค. ๋ํ Artifact Registry๋ฅผ ํ์ฌ CI/CD ๋๊ตฌ์ ํตํฉํ๊ณ ์ ์ฅ์์ ์ก์ธ์คํ๋ ๋ฐ ํ์ํ ๊ถํ๊ณผ ์ธ์ฆ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
Artifact Analysis๋ฅผ ์ฌ์ฉํด ์ด๋ฏธ์ง์์ ๋ฐ๊ฒฌ๋ ์ทจ์ฝ์ ๋ฑ์ ์ปจํ ์ด๋ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ Artifact Analysis ๋ฌธ์์์ ๋ฉํ๋ฐ์ดํฐ ๋ณด๊ธฐ ๋๋ ๊ด๋ฆฌ์ ๋ํ ์ก์ธ์ค ๊ถํ ๋ถ์ฌ์ ๋ํ ์ ๋ณด๋ฅผ ํ์ธํ์ธ์.์์ํ๊ธฐ ์ ์
- API ์ฌ์ฉ ์ค์ ๋ฐ Google Cloud CLI ์ค์น๋ฅผ ํฌํจํ์ฌ Artifact Registry๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
- ์ ์ฅ์๋ณ ๊ถํ์ ์ ์ฉํ๋ ค๋ฉด ํจํค์ง์์ Artifact Registry ์ ์ฅ์๋ฅผ ๋ง๋ญ๋๋ค.
๊ฐ์
IAM ๊ถํ ๋ฐ ์ญํ ์ ๋ฐ๋ผ Artifact Registry ์ ์ฅ์์์ ๋ฐ์ดํฐ๋ฅผ ์์ฑ, ๋ณด๊ธฐ, ์์ ๋๋ ์ญ์ ํ ์ ์๋ ๊ถํ์ด ๊ฒฐ์ ๋ฉ๋๋ค.
์ญํ ์ ๊ถํ ๋ชจ์์ ๋๋ค. ์ฃผ ๊ตฌ์ฑ์์๊ฒ ์ง์ ๊ถํ์ ๋ถ์ฌํ ์ ์์ง๋ง ๋์ ์ญํ ์ ๋ถ์ฌํฉ๋๋ค. ์ฃผ ๊ตฌ์ฑ์์๊ฒ ์ญํ ์ ๋ถ์ฌํ๋ฉด ํด๋น ์ญํ ์ ํฌํจ๋ ๋ชจ๋ ๊ถํ์ด ๋ถ์ฌ๋ฉ๋๋ค. ๊ฐ์ ์ฃผ ๊ตฌ์ฑ์์ ์ฌ๋ฌ ์ญํ ์ ๋ถ์ฌํ ์๋ ์์ต๋๋ค.
Google Cloud ๊ธฐ๋ณธ ๊ถํ
๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์ ๊ถํ์ด Artifact Registry์ ๋์ผํ ํ๋ก์ ํธ์ Google Cloud CI/CD ์๋น์ค์ ์ ์ฉ๋ฉ๋๋ค.
- Cloud Build ๊ถํ์๋ ์ํฐํฉํธ๋ฅผ ์ ๋ก๋ํ๊ณ ๋ค์ด๋ก๋ํ ์ ์๋ ๊ถํ์ด ํฌํจ๋์ด ์์ต๋๋ค.
- Compute Engine, ์ง์๋๋ Google Kubernetes Engine ๋ฒ์ , Cloud Run์ ์คํ ๋ฆฌ์ง์ ๋ํ ์ฝ๊ธฐ ์ ์ฉ ์ก์ธ์ค ๊ถํ์ด ์๋ Compute Engine ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํฉ๋๋ค.
๋ชจ๋ ์๋น์ค๊ฐ ๋์ผํ Google Cloud ํ๋ก์ ํธ์ ์๊ณ ๊ธฐ๋ณธ ๊ถํ์ด ์๊ตฌ์ฌํญ์ ์ถฉ์กฑํ๋ฉด ๊ถํ์ ๊ตฌ์ฑํ์ง ์์๋ ๋ฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์๋ Artifact Registry ๊ถํ์ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค.
- ์ด๋ฌํ ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ํ๋ก์ ํธ์ Artifact Registry์ ์ก์ธ์คํด์ผ ํฉ๋๋ค. Artifact Registry๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ ํธ์์ ๊ฐ ์๋น์ค์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ ๋๋ ์๋น์ค ๊ณ์ ์ ํ์ํ ์ญํ ์ ๋ถ์ฌํฉ๋๋ค. Cloud Run์ ์ฐ๊ฒฐํ๋ ๊ฒฝ์ฐ Cloud Run ์๋น์ค ์์ด์ ํธ์ ํ์ํ ์ญํ ์ ๋ถ์ฌํฉ๋๋ค.
- Artifact Registry์์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๋ ๊ธฐ๋ฅ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์๋์ง ์๋ GKE ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๊ตฌ์ฑ ์๋ด๋ GKE ์น์ ์ ์ฐธ์กฐํ์ธ์.
- ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ ์ ์ฅ์์ ๋ํ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์ก์ธ์ค ๊ถํ์ด ์์ด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ค์ ์ ๋ณด๋ฅผ ์ฐธ์กฐํ์ธ์.
- ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ๋์ ๋ฐํ์ ํ๊ฒฝ์ฉ ์ฌ์ฉ์ ์ ๊ณต ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. Artifact Registry๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ ํธ์์ ์๋น์ค ๊ณ์ ์ ํ์ํ ์ญํ ์ ๋ถ์ฌํฉ๋๋ค.
ํ์ฌ ํตํฉ
ํ์ฌ ํด๋ผ์ด์ธํธ์ ๊ฒฝ์ฐ์๋ ๊ถํ๊ณผ ์ธ์ฆ์ ๋ชจ๋ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก Google Cloud ์ธ๋ถ์์ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋น์ค ๊ณ์ ํค๋ฅผ ์ฌ์ฉํ์ฌ Google Cloud ๋ฆฌ์์ค์ ์ก์ธ์คํฉ๋๋ค. ๊ทธ๋ฌ๋ ์๋น์ค ๊ณ์ ํค๋ ๊ฐ๋ ฅํ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด์ด๋ฉฐ ์ ๋๋ก ๊ด๋ฆฌํ์ง ์์ ๊ฒฝ์ฐ ๋ณด์์ ์ํํ ์ ์์ต๋๋ค.
์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ์ ํด๋ฅผ ์ฌ์ฉํ๋ฉด Identity and Access Management๋ฅผ ํตํด ์๋น์ค ๊ณ์ ์ ๊ฐ์ฅํ๋ ๊ธฐ๋ฅ์ด ํฌํจ๋ IAM ์ญํ ์ ์ธ๋ถ ID์ ๋ถ์ฌํ ์ ์์ต๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ์๋น์ค ๊ณ์ ํค์ ๊ด๋ จ๋ ์ ์ง๋ณด์ ๋ฐ ๋ณด์ ๋ถ๋ด์ด ์ฌ๋ผ์ง๋๋ค.
์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ์ ํด ์ฌ์ฉ:
- ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ์ ํด ํ์ ๋ง๋ญ๋๋ค.
- ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ์ ํด ๊ณต๊ธ์ ์ฒด๋ฅผ ๋ง๋ญ๋๋ค.
- ์ ์ฅ์ ์ก์ธ์ค๋ฅผ ํ์ฉํ๊ธฐ ์ํด ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ํ์ ์ ์ ํ Artifact Registry ์ญํ ์ ๋ถ์ฌํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ธ๋ถ ์ํฌ๋ก๋๊ฐ Google Cloud ๋ฆฌ์์ค์ ์ก์ธ์คํ๋๋ก ํ์ฉ์ ์ฐธ๊ณ ํ์ธ์.
- Artifact Registry์ ๋ ์ค๋ซ๋์ ์ก์ธ์คํด์ผ ํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด ๊ตฌ์ฑ์์ OIDC ํ ํฐ ๋ง๋ฃ ์๊ฐ์ ๋ ๊ธด ๊ธฐ๊ฐ์ผ๋ก ๊ตฌ์ฑํฉ๋๋ค.
Artifact Registry๋ก ์ธ์ฆํ๋๋ก ํ์ฌ ํด๋ผ์ด์ธํธ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
์๋น์ค ๊ณ์ ์ฌ์ฉ:
- ์ ํ๋ฆฌ์ผ์ด์ ๋์ ์๋ํ๋๋ก ์๋น์ค ๊ณ์ ์ ๋ง๋ค๊ฑฐ๋ CI/CD ์๋ํ์ ์ฌ์ฉํ ๊ธฐ์กด ์๋น์ค ๊ณ์ ์ ์ ํํฉ๋๋ค.
- ์ ์ฅ์ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๊ธฐ ์ํด ์๋น์ค ๊ณ์ ์ ์ ์ ํ Artifact Registry ์ญํ ์ ๋ถ์ฌํฉ๋๋ค.
Artifact Registry๋ก ์ธ์ฆํ๋๋ก ํ์ฌ ํด๋ผ์ด์ธํธ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
Google Cloud์ GitLab
Google Cloud ์ GitLab ํตํฉ์ ์๋น์ค ๊ณ์ ์ด๋ ์๋น์ค ๊ณ์ ํค ์์ด Google Cloud ์ GitLab ์ํฌ๋ก๋์ ๋ํ ์น์ธ ๋ฐ ์ธ์ฆ์ ์ํด ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ์ ํด๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ํํธ๋์ญ์์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ์ ํด๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ Google Cloud ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ์ ํด ๋ฐ IAM ์ ์ฑ ์ ์ฐธ๊ณ ํ์ธ์.
Google Cloud์ GitLab์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ์ ํด ๋ฐ ํ์ํ IAM ์ญํ ์ ์ค์ ํ๋ ค๋ฉด GitLab ํํ ๋ฆฌ์ผ Google Cloud ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ ์ ํด ๋ฐ IAM ์ ์ฑ ์ ์ฐธ๊ณ ํ์ธ์.
Artifact Registry ์ ์ฅ์๋ฅผ ์ฐ๊ฒฐํ๋ ค๋ฉด GitLab ํํ ๋ฆฌ์ผ Google Artifact Registry๋ฅผ ๋ฐ๋ฅด์ธ์.
์ญํ ๋ฐ ๊ถํ
๋ชจ๋ Artifact Registry API ๋ฉ์๋์๋ ์์ฒญ์ ์ํํ๋ ์ฃผ ๊ตฌ์ฑ์์๊ฒ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ํ์ํ ๊ถํ์ด ์์ด์ผ ํฉ๋๋ค. ์ฃผ ๊ตฌ์ฑ์์๊ฒ ๋ฆฌ์์ค์ ๋ํ ์ฌ์ ์ ์๋ ์ญํ ์ ๋ถ์ฌํ๋ ์ ์ฑ ์ ์ค์ ํ์ฌ ์ฃผ ๊ตฌ์ฑ์์๊ฒ ๊ถํ์ ๋ถ์ฌํฉ๋๋ค.
Google Cloud ํ๋ก์ ํธ ๋๋ Artifact Registry ์ ์ฅ์์ ์ญํ ์ ๋ถ์ฌํ ์ ์์ต๋๋ค.
์ฌ์ ์ ์๋ Artifact Registry ์ญํ
IAM์ ํน์ Google Cloud ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๋ ์ฌ์ ์ ์๋ ์ญํ ์ ์ ๊ณตํฉ๋๋ค.
pkg.dev
๋๋ฉ์ธ์ ์ ์ฅ์์ ๋ํด ๋ค์๊ณผ ๊ฐ์ ์ฌ์ ์ ์๋ ์ญํ ์ ์ฌ์ฉํฉ๋๋ค.
์ญํ | ์ค๋ช |
---|---|
Artifact Registry ๋ฆฌ๋ ( roles/artifactregistry.reader ) |
์ํฐํฉํธ ๋ณด๊ธฐ ๋ฐ ๊ฐ์ ธ์ค๊ธฐ, ์ ์ฅ์ ๋ฉํ๋ฐ์ดํฐ ๋ณด๊ธฐ๋ฅผ ์ํํฉ๋๋ค. |
Artifact Registry ์์ฑ์ ( roles/artifactregistry.writer ) |
์ํฐํฉํธ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ๋ฅผ ์ํํฉ๋๋ค. |
Artifact Registry ์ ์ฅ์ ๊ด๋ฆฌ์ ( roles/artifactregistry.repoAdmin ) |
์ํฐํฉํธ ์ฝ๊ธฐ, ์ฐ๊ธฐ, ์ญ์ ๋ฅผ ์ํํฉ๋๋ค. |
Artifact Registry ๊ด๋ฆฌ์ ( roles/artifactregistry.admin ) |
์ ์ฅ์ ๋ฐ ์ํฐํฉํธ ๋ง๋ค๊ธฐ ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ํํฉ๋๋ค. |
์ญํ | ์ค๋ช |
---|---|
Container Registry -> Artifact Registry ๋ง์ด๊ทธ๋ ์ด์
๊ด๋ฆฌ์(roles/artifactregistry.containerRegistryMigrationAdmin ) |
๋ง์ด๊ทธ๋ ์ด์ ๋๊ตฌ๋ฅผ ์คํํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๊ถํ์ด ํฌํจ๋ฉ๋๋ค. |
Artifact Registry Create-on-Push ์์ฑ์(roles/artifactregistry.createOnPushWriter ) |
์ํฐํฉํธ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ๋ฅผ ์ํํฉ๋๋ค. gcr.io URL๋ก ํธ์ํ ๋ gcr.io ์ ์ฅ์๋ฅผ ๋ง๋ญ๋๋ค.
|
Artifact Registry Create-on-push ์ ์ฅ์ ๊ด๋ฆฌ์(roles/artifactregistry.createOnPushRepoAdmin ) |
์ํฐํฉํธ ์ฝ๊ธฐ, ์ฐ๊ธฐ, ์ญ์ ๋ฅผ ์ํํฉ๋๋ค. gcr.io ์ ์ฅ์ ๋ง๋ค๊ธฐ |
gcloud iam roles describe
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ์ญํ ์ ๊ถํ ๋ชฉ๋ก์ ๋ณผ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ IAM ์ญํ
๊ธฐ๋ณธ ์ญํ ์ IAM ๋์ ์ ์๋ ์์๋ ๋์ ๊ถํ์ด ์๋ ์ญํ ์ ๋๋ค. ํ๋ก๋์ ํ๊ฒฝ์์๋ ๊ธฐ๋ณธ ์ญํ ์ ๋ถ์ฌํ์ง ๋ง์์ผ ํ์ง๋ง ๊ฐ๋ฐ ํ๊ฒฝ ๋๋ ํ ์คํธ ํ๊ฒฝ์์๋ ๋ถ์ฌํด๋ ๋ฉ๋๋ค.
์ฌ์ฉ์ ๋ฐ ์๋น์ค ๊ณ์ ์ ํ์ํ ๊ถํ๋ง ํฌํจ๋๋๋ก ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฝ์ฐ์ ์ ์ฅ์ ์ก์ธ์ค์ ๋ํด ์ฌ์ ์ ์๋ ์ญํ ์ ์ฌ์ฉํ์ธ์.
๊ธฐ๋ณธ ์ญํ ์ ๋ํ ์์ธํ ๋ด์ฉ์ IAM ๊ธฐ๋ณธ ๋ฐ ์ฌ์ ์ ์๋ ์ญํ ์ฐธ์กฐ๋ฅผ ํ์ธํ์ธ์.
์ญํ ๋ถ์ฌ
ํ๋ก์ ํธ์ ๋ชจ๋ ์ ์ฅ์์ ๋์ผํ ์ญํ ์ด ์ ์ฉ๋๋ ๊ฒฝ์ฐ ํ๋ก์ ํธ ์์ค์์ ์ญํ ์ ๋ถ์ฌํฉ๋๋ค. ์ผ๋ถ ๊ณ์ ์ ๋ค๋ฅธ ์์ค์ ์ก์ธ์ค ๊ถํ์ด ํ์ํ๋ฉด ์ ์ฅ์ ์์ค์์ ์ญํ ์ ๋ถ์ฌํฉ๋๋ค.
๊ฐ์ ์ ์ฅ์์ ๋ํ ์ญํ ์ ๋ถ์ฌํ๋ ๊ฒฝ์ฐ ํด๋น ์ญํ ์ด ๊ฐ๋ณ ์ ์ฅ์ ๊ถํ์ ๊ด๊ณ์์ด ๊ฐ์ ์ ์ฅ์๋ฅผ ํตํด ์ ๊ณต๋๋ ๋ชจ๋ ์ ์คํธ๋ฆผ ์ ์ฅ์์ ์ ์ฉ๋ฉ๋๋ค.gcloud
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ญํ ์ ๋ถ์ฌํ๋ ๊ฒฝ์ฐ ์ฃผ ๊ตฌ์ฑ์์ ๋จ์ผ ์ญํ ๋ฐ์ธ๋ฉ์ ์ง์ ํ๊ฑฐ๋ ๋ฆฌ์์ค์ ํ์ฉ ์ ์ฑ
์ ๊ฐ์ ธ์ ์์ ํ๊ณ ์์ ๋ ํ์ฉ ์ ์ฑ
์ ์ค์ ํ์ฌ ๋๊ท๋ชจ ์ ์ฑ
๋ณ๊ฒฝ์ ์ํํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ํ๋ก๊ทธ๋๋งคํฑ ๋ฐฉ์์ผ๋ก ์ฌ๋ฌ ์ญํ ๋ถ์ฌ ๋๋ ์ทจ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
ํ๋ก์ ํธ ์ ์ฒด ์ญํ ๋ถ์ฌ
ํ๋ก์ ํธ์ ๋ชจ๋ ์ ์ฅ์์ ๋์ผํ ๊ถํ์ด ์ ์ฉ๋๋ ๊ฒฝ์ฐ ํ๋ก์ ํธ ์์ค์์ ์ญํ ์ ๋ถ์ฌํฉ๋๋ค.
ํ๋ก์ ํธ์ ์ฌ์ฉ์ ๋๋ ์๋น์ค ๊ณ์ ์ ์ถ๊ฐํ๊ณ Artifact Registry ์ญํ ์ ๋ถ์ฌํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
์ฝ์
Google Cloud ์ฝ์์์ IAM ํ์ด์ง๋ฅผ ์ฝ๋๋ค.
ํ๋ก์ ํธ ์ ํ์ ํด๋ฆญํ๊ณ Artifact Registry๋ฅผ ์คํ ์ค์ธ ํ๋ก์ ํธ๋ฅผ ์ ํํ๊ณ ์ด๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ด๋ฉ์ผ ์ฃผ์๋ฅผ ์ ๋ ฅํฉ๋๋ค. ๊ฐ์ธ, ์๋น์ค ๊ณ์ ๋๋ Google ๊ทธ๋ฃน์ค๋ฅผ ์ฃผ ๊ตฌ์ฑ์์ผ๋ก ์ถ๊ฐํ ์ ์์ต๋๋ค.
์ฃผ ๊ตฌ์ฑ์์ ์ญํ ์ ์ ํํฉ๋๋ค. ์ต์ ๊ถํ์ ๋ณด์ ์์น์ ๋ฐ๋ผ ํ์ํ Artifact Registry ๋ฆฌ์์ค์ ์ก์ธ์คํ๋ ๋ฐ ํ์ํ ์ต์ ๊ถํ์ ๋ถ์ฌํ๋ ๊ฒ์ด ์ข์ต๋๋ค. Artifact Registry์ ์ฌ์ ์ ์๋ ์ญํ ๋ฐ ๊ถํ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฌ์ ์ ์๋ Artifact Registry ์ญํ ์ ์ฐธ์กฐํ์ธ์.
์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
๋จ์ผ ์ฃผ ๊ตฌ์ฑ์์๊ฒ ์ญํ ์ ๋ถ์ฌํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
gcloud projects add-iam-policy-binding PROJECT \ --member=PRINCIPAL \ --role=ROLE
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- PROJECT๋ Artifact Registry๊ฐ ์คํ ์ค์ธ ํ๋ก์ ํธ์ ID์ ๋๋ค.
PRINCIPAL์ binding์ด ์ถ๊ฐ๋๋ ์ฃผ ๊ตฌ์ฑ์์ ๋๋ค.
user|group|serviceAccount:email
๋๋domain:domain
ํ์์ ์ฌ์ฉํฉ๋๋ค.์์:
user:test-user@gmail.com
,group:admins@example.com
,serviceAccount:test123@example.domain.com
๋๋domain:example.domain.com
ROLE์ ๋ถ์ฌํ ์ญํ ์ ๋๋ค.
์์ธํ ๋ด์ฉ์ add-iam-policy-binding ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ ์ฑ ํ์ผ์ ์ฌ์ฉํ์ฌ ์ญํ ์ ๋ถ์ฌํ๋ ค๋ฉด ํ๋ก๊ทธ๋๋งคํฑ ๋ฐฉ์์ผ๋ก ์ฌ๋ฌ ์ญํ ๋ถ์ฌ ๋๋ ์ทจ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
์ ์ฅ์๋ณ ์ญํ ๋ถ์ฌ
ํ๋ก์ ํธ์ ์ ์ฅ์๋ง๋ค ๋ค๋ฅธ ์์ค์ ์ก์ธ์ค ๊ถํ์ด ์ฌ์ฉ์๋ ์๋น์ค ๊ณ์ ์ ์์ด์ผ ํ๋ฉด ์ ์ฅ์ ์์ค์ ์ญํ ์ ๋ถ์ฌํฉ๋๋ค.
์ฝ์
ํน์ ์ ์ฅ์์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
Google Cloud ์ฝ์์์ ์ ์ฅ์ ํ์ด์ง๋ฅผ ์ฝ๋๋ค.
์ ์ ํ ์ ์ฅ์๋ฅผ ์ ํํฉ๋๋ค.
์ ๋ณด ํจ๋์ด ํ์๋์ง ์์ผ๋ฉด ๋ฉ๋ด ๋ฐ์์ ์ ๋ณด ํจ๋ ํ์๋ฅผ ํด๋ฆญํฉ๋๋ค.
๊ถํ ํญ์์ ์ฃผ ๊ตฌ์ฑ์ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ด๋ฉ์ผ ์ฃผ์๋ฅผ ์ ๋ ฅํฉ๋๋ค. ๊ฐ์ธ, ์๋น์ค ๊ณ์ ๋๋ Google ๊ทธ๋ฃน์ค๋ฅผ ์ฃผ ๊ตฌ์ฑ์์ผ๋ก ์ถ๊ฐํ ์ ์์ต๋๋ค.
์ฃผ ๊ตฌ์ฑ์์ ์ญํ ์ ์ ํํฉ๋๋ค. ์ต์ ๊ถํ์ ๋ณด์ ์์น์ ๋ฐ๋ผ ํ์ํ Artifact Registry ๋ฆฌ์์ค์ ์ก์ธ์คํ๋ ๋ฐ ํ์ํ ์ต์ ๊ถํ์ ๋ถ์ฌํ๋ ๊ฒ์ด ์ข์ต๋๋ค. Artifact Registry์ ์ฌ์ ์ ์๋ ์ญํ ๋ฐ ๊ถํ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ฌ์ ์ ์๋ Artifact Registry ์ญํ ์ ์ฐธ์กฐํ์ธ์.
์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
๊ฐ๋ณ ์ ์ฑ binding์ IAM ์ธํธ๋ฅผ ์ค์ ํ๊ฑฐ๋ ์ ์ฑ ํ์ผ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋จ์ผ ์ฃผ ๊ตฌ์ฑ์์๊ฒ ์ญํ ์ ๋ถ์ฌํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=LOCATION \ --member=PRINCIPAL \ --role=ROLE
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- REPOSITORY๋ ์ ์ฅ์ ID์ ๋๋ค.
PRINCIPAL์ binding์ด ์ถ๊ฐ๋๋ ์ฃผ ๊ตฌ์ฑ์์ ๋๋ค.
user|group|serviceAccount:email
๋๋domain:domain
ํ์์ ์ฌ์ฉํฉ๋๋ค.์์:
user:test-user@gmail.com
,group:admins@example.com
,serviceAccount:test123@example.domain.com
๋๋domain:example.domain.com
ROLE์ ๋ถ์ฌํ ์ญํ ์ ๋๋ค.
LOCATION์ ์ ์ฅ์์ ๋ฆฌ์ ๋๋ ๋ฉํฐ ๋ฆฌ์ ์์น์ ๋๋ค.
์๋ฅผ ๋ค์ด
--us-west1
์์น์์my-repo
์ ์ฅ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์write@gmail.com
์roles/artifactregistry.writer
์ญํ ์ ๋ํ IAM ์ ์ฑ binding์ ์ถ๊ฐํ๋ ค๋ฉด ๋ค์์ ์คํํฉ๋๋ค.gcloud artifacts repositories add-iam-policy-binding my-repo \ --location=us-west1 --member=user:write@gmail.com --role=roles/artifactregistry.writer
์ ์ฑ ํ์ผ์ ์ฌ์ฉํ์ฌ ์ญํ ์ ๋ถ์ฌํ๋ ค๋ฉด gcloud artifacts repositories get-iam-policy ๋ฐ gcloud artifacts repositories set-iam-policy ๋ช ๋ น์ด์ ํจ๊ป ํ๋ก๊ทธ๋๋งคํฑ ๋ฐฉ์์ผ๋ก ์ฌ๋ฌ ์ญํ ๋ถ์ฌ ๋๋ ์ทจ์์ ์ค๋ช ๋ ์ ์ฐจ๋ฅผ ์ฌ์ฉํ์ธ์.
Terraform
google_artifact_registry_repository_iam ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ์ฌ IAM ์ ์ฑ
์ ๊ตฌ์ฑํฉ๋๋ค. ๋ค์ ์์์์๋ ๋ฆฌ์์ค ์ด๋ฆ์ด repo-account
์ธ ์๋น์ค ๊ณ์ ์ ์ ์ํ๊ณ ๋ฆฌ์์ค ์ด๋ฆ์ด my-repo
์ธ ์ ์ฅ์์ ๋ํ ์ฝ๊ธฐ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํฉ๋๋ค.
Google Cloud์์ Terraform์ ์ฒ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ HashiCorp ์น์ฌ์ดํธ์ ์์ํ๊ธฐ - Google Cloud ํ์ด์ง๋ฅผ ์ฐธ๊ณ ํ์ธ์.
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
provider = google-beta
location = "LOCATION"
repository_id = "REPOSITORY"
description = "DESCRIPTION"
format = "FORMAT"
}
resource "google_service_account" "repo-account" {
provider = google-beta
account_id = "ACCOUNT-ID"
display_name = "Repository Service Account"
}
resource "google_artifact_registry_repository_iam_member" "repo-iam" {
provider = google-beta
location = google_artifact_registry_repository.my-repo.location
repository = google_artifact_registry_repository.my-repo.name
role = "roles/artifactregistry.reader"
member = "serviceAccount:${google_service_account.repo-account.email}"
}
ACCOUNT-ID๋ ์๋น์ค ๊ณ์ ์ ID์ผ๋ก, @
๊ธฐํธ ์์ ์๋ ์๋น์ค ๊ณ์ ์ด๋ฉ์ผ ํ๋์ ์ผ๋ถ์
๋๋ค.
์ถ๊ฐ ์์๋ google_artifact_registry_repository_iam ๋ฆฌ์์ค์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ ์ฅ์์ ๋ํ ๊ณต๊ฐ ์ก์ธ์ค ๊ตฌ์ฑ
์ธ์ฆ ์์ด ์ธํฐ๋ท์ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ ์ํฐํฉํธ๊ฐ ์์ผ๋ฉด ๊ณต๊ฐ ์ ์ฅ์์ ์ํฐํฉํธ๋ฅผ ์ ์ฅํฉ๋๋ค.
๊ณต๊ฐ ์ฝ๊ธฐ ์ ์ฉ ์ก์ธ์ค์ ํ์ํ ์ ์ฅ์๋ฅผ ๊ตฌ์ฑํ๋ ค๋ฉด ์ฃผ ๊ตฌ์ฑ์ allUsers
์ Artifact Registry ๋ฆฌ๋ ์ญํ ์ ๋ถ์ฌํฉ๋๋ค. ๋ํ ๋จ์ผ ์ฌ์ฉ์๊ฐ ํ๋ก์ ํธ์ ์ ์ฒด ํ ๋น๋์ ์ฌ์ฉํ ์ ์๋๋ก ์ฌ์ฉ์ ์์ฒญ ํ ๋น๋ ์ํ์ ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ์ ์ฅ์ ํ์ด์ง๋ฅผ ์ฝ๋๋ค.
์ ์ ํ ์ ์ฅ์๋ฅผ ์ ํํฉ๋๋ค.
์ ๋ณด ํจ๋์ด ํ์๋์ง ์์ผ๋ฉด ๋ฉ๋ด ๋ฐ์์ ์ ๋ณด ํจ๋ ํ์๋ฅผ ํด๋ฆญํฉ๋๋ค.
๊ถํ ํญ์์ ์ฃผ ๊ตฌ์ฑ์ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ ์ฃผ ๊ตฌ์ฑ์ ํ๋์
allUsers
๋ฅผ ์ ๋ ฅํฉ๋๋ค.Artifact Registry ๋ฆฌ๋ ์ญํ ์ ์ ํํฉ๋๋ค.
Artifact Registry API ์์ฒญ์ ์ฌ์ฉ์๋ณ ํ๋๋ฅผ ์ค์ ํ์ฌ ์ธ์ฆ๋์ง ์์ ์ฌ์ฉ์์ ์ค์ฉ์ ๋ฐฉ์งํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฌ์ฉ๋ ์ํ ์ค์ ์ ์ฐธ๊ณ ํ์ธ์.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=LOCATION --member=allUsers --role=ROLE
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
REPOSITORY๋ ์ ์ฅ์ ID์ ๋๋ค.
ROLE์ ๋ถ์ฌํ ์ญํ ์ ๋๋ค.
LOCATION์ ์ ์ฅ์์ ๋ฆฌ์ ๋๋ ๋ฉํฐ ๋ฆฌ์ ์์น์ ๋๋ค.
์๋ฅผ ๋ค์ด
--us-west1
์์น์ ์๋my-repo
์ ์ฅ์๋ฅผ ๊ณต๊ฐ๋ก ๊ตฌ์ฑํ๋ ค๋ฉด ๋ค์์ ์คํํฉ๋๋ค.gcloud artifacts repositories add-iam-policy-binding my-repo \ --location=us-west1 --member=allUsers --role=roles/artifactregistry.reader
Artifact Registry API ์์ฒญ์ ์ฌ์ฉ์๋ณ ํ๋๋ฅผ ์ค์ ํ์ฌ ์ธ์ฆ๋์ง ์์ ์ฌ์ฉ์์ ์ค์ฉ์ ๋ฐฉ์งํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฌ์ฉ๋ ์ํ ์ค์ ์ ์ฐธ๊ณ ํ์ธ์.
์ญํ ์ทจ์ ์ค
์ ์ฅ์์ ๋ํ ์ก์ธ์ค ๊ถํ์ ์ทจ์ํ๋ ค๋ฉด ์น์ธ๋ ์ฃผ ๊ตฌ์ฑ์ ๋ชฉ๋ก์์ ์ฃผ ๊ตฌ์ฑ์์ ์ญ์ ํฉ๋๋ค.
์ ์ฅ์์์ ๊ณต๊ฐ ์ก์ธ์ค๋ฅผ ์ญ์ ํ๋ ค๋ฉด allUsers
์ฃผ ๊ตฌ์ฑ์์ ์ญ์ ํฉ๋๋ค.
์ฝ์
๊ถํ์ ์ทจ์ํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
Google Cloud ์ฝ์์์ ์ ์ฅ์ ํ์ด์ง๋ฅผ ์ฝ๋๋ค.
์ ์ ํ ์ ์ฅ์๋ฅผ ์ ํํฉ๋๋ค.
์ ๋ณด ํจ๋์ด ํ์๋์ง ์์ผ๋ฉด ๋ฉ๋ด ๋ฐ์์ ์ ๋ณด ํจ๋ ํ์๋ฅผ ํด๋ฆญํฉ๋๋ค.
๊ถํ ํญ์์ ์ ์ ํ ์ฃผ ๊ตฌ์ฑ์์ ํ์ฅํฉ๋๋ค. ๊ณต๊ฐ ์ ์ฅ์๋ฅผ ๋น๊ณต๊ฐ๋ก ์ค์ ํ๋ ค๋ฉด
allUsers
์ฃผ ๊ตฌ์ฑ์์ ํ์ฅํฉ๋๋ค.์ฃผ ๊ตฌ์ฑ์ ์ญ์ ๋ฅผ ํด๋ฆญํ์ฌ ์ก์ธ์ค ๊ถํ์ ์ทจ์ํฉ๋๋ค.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
ํ๋ก์ ํธ ์์ค์์ ์ญํ ์ ์ทจ์ํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
gcloud projects remove-iam-policy-binding PROJECT \ --member=PRINCIPAL \ --role=ROLE
- PROJECT๋ ํ๋ก์ ํธ ID์ ๋๋ค.
PRINCIPAL๋ ๋ฐ์ธ๋ฉ์ ์ญ์ ํ ์ฃผ ๊ตฌ์ฑ์์ ๋๋ค.
user|group|serviceAccount:email
๋๋domain:domain
ํ์์ ์ฌ์ฉํฉ๋๋ค.์์:
user:test-user@gmail.com
,group:admins@example.com
,serviceAccount:test123@example.domain.com
๋๋domain:example.domain.com
ROLE์ ์ทจ์ํ ์ญํ ์ ๋๋ค.
์ ์ฅ์์ ์ญํ ์ ์ทจ์ํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
gcloud artifacts repositories remove-iam-policy-binding REPOSITORY --location=LOCATION \ --member=PRINCIPAL \ --role=ROLE
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- REPOSITORY๋ ์ ์ฅ์ ID์ ๋๋ค.
PRINCIPAL๋ ๋ฐ์ธ๋ฉ์ ์ญ์ ํ ์ฃผ ๊ตฌ์ฑ์์ ๋๋ค.
user|group|serviceAccount:email
๋๋domain:domain
ํ์์ ์ฌ์ฉํฉ๋๋ค.์์:
user:test-user@gmail.com
,group:admins@example.com
,serviceAccount:test123@example.domain.com
๋๋domain:example.domain.com
์ ์ฅ์์ ๋ํ ๊ณต๊ฐ ์ก์ธ์ค ๊ถํ์ ์ทจ์ํ๋ ค๋ฉด
allUsers
์ฃผ ๊ตฌ์ฑ์์ ์ง์ ํฉ๋๋ค.ROLE์ ์ทจ์ํ ์ญํ ์ ๋๋ค.
์๋ฅผ ๋ค์ด
--us-west1
์์น์์my-repo
์ ์ฅ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์write@gmail.com
์roles/artifactregistry.writer
์ญํ ์ ๋ํ ์ ์ฑ binding์ ์ญ์ ํ๋ ค๋ฉด ๋ค์์ ์คํํฉ๋๋ค.gcloud artifacts repositories remove-iam-policy-binding my-repo \ --location=us-west1 \ --member=user:write@gmail.com \ --role=roles/artifactregistry.writer
--us-west1
์์น์์my-repo
์ ๋ํ ๊ณต๊ฐ ์ก์ธ์ค๋ฅผ ์ทจ์ํ๋ ค๋ฉด ๋ค์์ ์คํํฉ๋๋ค.gcloud artifacts repositories remove-iam-policy-binding my-repo \ --location=us-west1 \ --member=allUsers \ --role=roles/artifactregistry.reader
ํ๊ทธ๋ฅผ ์ฌ์ฉํ ์กฐ๊ฑด๋ถ ์ก์ธ์ค ๊ถํ ๋ถ์ฌ
ํ๋ก์ ํธ ๊ด๋ฆฌ์๋ Google Cloud์ ๋ฐ์ ๋ฆฌ์์ค์ ๋ํ ํ๊ทธ๋ฅผ ๋ง๋ค๊ณ Resource Manager์์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. Artifact Registry ์ ์ฅ์์ ํ๊ทธ๋ฅผ ์ฐ๊ฒฐํ๋ฉด ๊ด๋ฆฌ์๋ IAM ์กฐ๊ฑด์ด ์๋ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฅ์์ ์กฐ๊ฑด๋ถ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ ์ ์์ต๋๋ค.
๊ฐ๋ณ ์ํฐํฉํธ์ ํ๊ทธ๋ฅผ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
์์ธํ ๋ด์ฉ์ ๋ค์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
- ํ๊ทธ ๋ฐ ์ก์ธ์ค ์ ์ด๋ฅผ ์ค์ ํ๋ ๊ด๋ฆฌ์
- ์ ์ฅ์์ ํ๊ทธ๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฐ๋ฐ์
Google Cloud ์๋น์ค์ ํตํฉ
๋๋ถ๋ถ์ Google Cloud ์๋น์ค ๊ณ์ ์ ๊ฒฝ์ฐ ๋ ์ง์คํธ๋ฆฌ ์ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ค๋ฉด ์ ์ ํ IAM ์ญํ ์ ๋ถ์ฌํด์ผ ํฉ๋๋ค.
Google Cloud ์๋น์ค์ ๊ธฐ๋ณธ ์๋น์ค ๊ณ์
Cloud Build ๋๋ Google Kubernetes Engine๊ณผ ๊ฐ์Google Cloud ์๋น์ค๋ ๋์ผํ ํ๋ก์ ํธ ๋ด์ ์๋ ๋ฆฌ์์ค์ ์ํธ์์ฉํ๊ธฐ ์ํด ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ๋๋ ์๋น์ค ์์ด์ ํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์๋ ์ง์ ๊ถํ์ ๊ตฌ์ฑํ๊ฑฐ๋ ์์ ํด์ผ ํฉ๋๋ค.
- ์๋น์ค๊ฐ Google Cloud Artifact Registry์ ๋ค๋ฅธ ํ๋ก์ ํธ์ ์์ต๋๋ค.
- ๊ธฐ๋ณธ ๊ถํ์ด ์๊ตฌ์ฌํญ์ ์ถฉ์กฑํ์ง ์์ต๋๋ค.
- ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ๋์ Artifact Registry์ ์ํธ์์ฉํ๋ ๋ฐ ์ฌ์ฉ์ ์ ๊ณต ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํฉ๋๋ค.
- ์กฐ์ง ์ ์ฑ ๊ตฌ์ฑ์ผ๋ก ์ธํด ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ ๋ํ ์๋ ์ญํ ๋ถ์ฌ๊ฐ ๋ฐฉ์ง๋ฉ๋๋ค.
๋ค์ ์๋น์ค ๊ณ์ ์ ์ผ๋ฐ์ ์ผ๋ก Artifact Registry์ ์ก์ธ์คํฉ๋๋ค. ์๋น์ค ๊ณ์ ์ ์ด๋ฉ์ผ ์ฃผ์์๋ ์๋น์ค๊ฐ ์คํ๋๋ ํ๋ก์ ํธ์ Google Cloud ํ๋ก์ ํธ ID ๋๋ ํ๋ก์ ํธ ๋ฒํธ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
์๋น์ค | ์๋น์ค ๊ณ์ | ์ด๋ฉ์ผ ์ฃผ์ |
---|---|---|
App Engine ๊ฐ๋ณํ ํ๊ฒฝ | App Engine ์๋น์ค ๊ณ์ | PROJECT-ID@appspot.gserviceaccount.com |
Compute Engine | Compute Engine ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ | PROJECT-NUMBER-compute@developer.gserviceaccount.com |
Cloud Build | Compute Engine ์๋น์ค ๊ณ์ ๋๋ ๊ธฐ์กด Cloud Build ์๋น์ค ๊ณ์ |
์กฐ์ง ์ค์ ์ ๋ฐ๋ผ ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ด๋ฉ์ผ ์ฃผ์๋ ๋ค์ ์ค ํ๋์
๋๋ค.
|
Cloud Run |
Cloud Run ์๋น์ค ์์ด์ ํธrun.googleapis.com ์ ์๋น์ค ์์ด์ ํธ์
๋๋ค. |
service-PROJECT-NUMBER@serverless-robot-prod.iam.gserviceaccount.com |
GKE | Compute Engine ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ๋ ธ๋์ ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ ๋๋ค. |
PROJECT-NUMBER-compute@developer.gserviceaccount.com |
์กฐ์ง ์ ์ฑ
๊ตฌ์ฑ์ ๋ฐ๋ผ ํ๋ก์ ํธ์ ๋ํ ํธ์ง์ ์ญํ ์ด ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ ์๋์ผ๋ก ๋ถ์ฌ๋ ์ ์์ต๋๋ค. iam.automaticIamGrantsForDefaultServiceAccounts
์กฐ์ง ์ ์ฑ
์ ์ฝ์กฐ๊ฑด์ ์ ์ฉํ์ฌ ์๋ ์ญํ ๋ถ์ฌ๋ฅผ ์ค์งํ๋ ๊ฒ์ด ์ข์ต๋๋ค. 2024๋
5์ 3์ผ ์ดํ์ ์กฐ์ง์ ๋ง๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด ์ ์ฝ์กฐ๊ฑด์ด ์ ์ฉ๋ฉ๋๋ค.
์๋ ์ญํ ๋ถ์ฌ๋ฅผ ์ค์งํ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ ๋ถ์ฌํ ์ญํ ์ ๊ฒฐ์ ํ ํ ์ง์ ์ด๋ฌํ ์ญํ ์ ๋ถ์ฌํด์ผ ํฉ๋๋ค.
๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ ์ด๋ฏธ ํธ์ง์ ์ญํ ์ด ์์ผ๋ฉด ํธ์ง์ ์ญํ ์ ๊ถํ์ด ๋ ๋ฎ์ ์ญํ ๋ก ๋ฐ๊พธ๋ ๊ฒ์ด ์ข์ต๋๋ค.์๋น์ค ๊ณ์ ์ญํ ์ ์์ ํ๊ฒ ์์ ํ๋ ค๋ฉด ์ ์ฑ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝ์ฌํญ์ ์ํฅ์ ํ์ธํ ํ ์ ์ ํ ์ญํ ์ ๋ถ์ฌํ๊ณ ์ทจ์ํฉ๋๋ค.
Compute Engine ์ธ์คํด์ค์ ๋ํ ์ก์ธ์ค ๊ถํ ๋ถ์ฌ
์ ์ฅ์์ ์ก์ธ์คํ๋ VM ์ธ์คํด์ค์๋ Artifact Registry ๊ถํ๊ณผ ์คํ ๋ฆฌ์ง ์ก์ธ์ค ๋ฒ์๊ฐ ๊ตฌ์ฑ๋์ด ์์ด์ผ ํฉ๋๋ค.
์๋น์ค ๊ณ์ ์ ์ก์ธ์ค ์์ค์ ์๋น์ค ๊ณ์ ์ ๋ถ์ฌ๋ IAM ์ญํ ์ ๋ฐ๋ผ ๊ฒฐ์ ๋๋ ๋ฐ๋ฉด, VM ์ธ์คํด์ค์ ์ก์ธ์ค ๋ฒ์๋ ์ธ์คํด์ค์ gcloud CLI ๋ฐ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด ์ด๋ฃจ์ด์ง ์์ฒญ์ ๊ธฐ๋ณธ OAuth ๋ฒ์๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ๋ฐ๋ผ์ ์ก์ธ์ค ๋ฒ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ก ์ธ์ฆํ ๋ API ๋ฉ์๋์ ๋ํ ์ก์ธ์ค๋ฅผ ์ถ๊ฐ๋ก ์ ํํ ์ ์์ต๋๋ค.
Compute Engine์ ๋ค์ ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ฉํฉ๋๋ค.
- Compute Engine ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ VM ์ธ์คํด์ค์ ID์ ๋๋ค. ์๋น์ค ๊ณ์ ์ด๋ฉ์ผ ์ฃผ์์๋ @developer.gserviceaccount.com ์ํฝ์ค๊ฐ ํฌํจ๋ฉ๋๋ค.
- ์ด ๋์์ ์ฌ์ฉ ์ค์งํ์ง ์์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ IAM ๊ธฐ๋ณธ ํธ์ง์ ์ญํ ์ด ํฌํจ๋ฉ๋๋ค.
- ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ผ๋ก ๋ง๋๋ ์ธ์คํด์ค์๋ ์คํ ๋ฆฌ์ง์ ๋ํ ์ฝ๊ธฐ ์ ์ฉ ์ก์ธ์ค๋ฅผ ํฌํจํ์ฌ Compute Engine ๊ธฐ๋ณธ ์ก์ธ์ค ๋ฒ์๊ฐ ํฌํจ๋ฉ๋๋ค. ํธ์ง์ ์ญํ ์ด ์ผ๋ฐ์ ์ผ๋ก ์ฐ๊ธฐ ์ก์ธ์ค๋ฅผ ๋ถ์ฌํ์ง๋ง
read-only
์คํ ๋ฆฌ์ง ์ก์ธ์ค ๋ฒ์๋ ์ธ์คํด์ค ์๋น์ค ๊ณ์ ์ ๋์ผ ํ๋ก์ ํธ์ ์๋ ์ ์ฅ์์์๋ง ์ํฐํฉํธ๋ฅผ ๋ค์ด๋ก๋ํ๋๋ก ์ ํํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์๋ ์๋น์ค ๊ณ์ ์ ์ก์ธ์ค ๋ฒ์๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค.
- VM ์๋น์ค ๊ณ์ ์ด ๋ค๋ฅธ ํ๋ก์ ํธ์ ์ ์ฅ์์ ์ก์ธ์คํด์ผ ํฉ๋๋ค.
- VM ์๋น์ค ๊ณ์ ์ด ์ ์ฅ์์์ ์ํฐํฉํธ ์ฝ๊ธฐ ์ด์ธ์ ์์
์ ์ํํด์ผ ํฉ๋๋ค. ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ํธ์ํ๊ฑฐ๋ Artifact Registry
gcloud
๋ช ๋ น์ด๋ฅผ ์คํํด์ผ ํ๋ VM์ ํ์ฌ ๋๊ตฌ๋ฅผ ์ ์ฉํฉ๋๋ค.
์ญํ ์ ๊ตฌ์ฑํ๊ณ ์ก์ธ์ค ๋ฒ์๋ฅผ ์ค์ ํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
VM ์ธ์คํด์ค๊ฐ ์๋ ํ๋ก์ ํธ์์ Compute Engine ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ด๋ฆ์ ๊ฐ์ ธ์ต๋๋ค. ์๋น์ค ๊ณ์ ์ด๋ฉ์ผ ์ฃผ์์๋ @developer.gserviceaccount.com ์ํฝ์ค๊ฐ ํฌํจ๋ฉ๋๋ค.
์ ์ฅ์๊ฐ ์๋ ํ๋ก์ ํธ์์ ์๋น์ค ๊ณ์ ์ด ์ ์ฅ์์ ์ก์ธ์คํ ์ ์๋๋ก ๊ถํ์ ๋ถ์ฌํฉ๋๋ค.
--scopes ์ต์ ์ผ๋ก ์ก์ธ์ค ๋ฒ์๋ฅผ ์ค์ ํฉ๋๋ค.
VM ์ธ์คํด์ค๋ฅผ ์ค์งํฉ๋๋ค. ์ธ์คํด์ค ์ค์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ก์ธ์ค ๋ฒ์๋ฅผ ์ค์ ํฉ๋๋ค.
gcloud compute instances set-service-account INSTANCE --scopes=SCOPE
SCOPE๋ฅผ ์ ์ ํ ๊ฐ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
Docker์ ๊ฒฝ์ฐ ๋ค์ ์ต์ ์ด ์ง์๋ฉ๋๋ค.
storage-ro
- ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด ์ฝ๊ธฐ ๊ถํ๋ง ๋ถ์ฌํฉ๋๋ค.storage-rw
- ์ด๋ฏธ์ง๋ฅผ ๋ด๋ณด๋ด๊ฑฐ๋ ๊ฐ์ ธ์ค๊ธฐ ์ํด ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ๊ถํ์ ๋ถ์ฌํฉ๋๋ค.cloud-platform
-Google Cloud ์๋น์ค์์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ํฌํจํ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ณ ๊ด๋ฆฌํฉ๋๋ค.
๋ค๋ฅธ ํ์์ ๊ฒฝ์ฐ
cloud-platform
๋ฒ์๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
VM ์ธ์คํด์ค๋ฅผ ๋ค์ ์์ํฉ๋๋ค. ์ค์ง๋ ์ธ์คํด์ค ์์์ ์ฐธ์กฐํ์ธ์.
Google Kubernetes Engine ํด๋ฌ์คํฐ์ ๋ํ ์ก์ธ์ค ๊ถํ ๋ถ์ฌ
GKE ํด๋ฌ์คํฐ ๋ฐ ๋ ธ๋ ํ์ ๋ค์ ์๊ตฌ์ฌํญ์ด ๋ชจ๋ ์ถฉ์กฑ๋๋ ๊ฒฝ์ฐ ์ถ๊ฐ ๊ตฌ์ฑ ์์ด ์ปจํ ์ด๋๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
- GKE๊ฐ Artifact Registry์ ๋์ผํ ํ๋ก์ ํธ์ ์์ต๋๋ค.
- ๋ ธ๋๊ฐ ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ธ Compute Engine ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ ์ฌ์ฉ ์ค์ ๋๋ค.
- ๋ค์์ ์ํํ์ฌ ๋
ธ๋๊ฐ ์คํ ๋ฆฌ์ง ์ฝ๊ธฐ ์ก์ธ์ค๋ก ์์ฑ๋์์ต๋๋ค.
- Compute Engine ๊ธฐ๋ณธ ์ก์ธ์ค ๋ฒ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
cloud-platform
์ก์ธ์ค ๋ฒ์ ๋๋ ์คํ ๋ฆฌ์ง์ ๋ํ ์ฝ๊ธฐ ์ก์ธ์ค๊ฐ ํฌํจ๋ ๋ค๋ฅธ ๋ฒ์๋ฅผ ๋ถ์ฌํฉ๋๋ค.
- GKE์ ์ง์ ๋ฒ์ ์ ์คํ ์ค์ ๋๋ค.
GKE ํ๊ฒฝ์์ ์ด๋ฌํ ์๊ตฌ์ฌํญ์ ์ถฉ์กฑํ์ง ์์ผ๋ฉด ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๋ ์๋ด๋ Compute Engine ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํ๋์ง ๋๋ ์ฌ์ฉ์ ์ ๊ณต ์๋น์ค ๊ณ์ ์ ๋ ธ๋์ ID๋ก ์ฌ์ฉํ๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
- ๊ธฐ๋ณธ ์๋น์ค ๊ณ์
๋ค์ ๊ตฌ์ฑ ์๊ตฌ์ฌํญ์ Compute Engine ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ ์ ์ฉ๋ฉ๋๋ค.
GKE๊ฐ Artifact Registry ์ธ ๋ค๋ฅธ ํ๋ก์ ํธ์ ์์ผ๋ฉด ์๋น์ค ๊ณ์ ์ ํ์ํ ๊ถํ์ ๋ถ์ฌํฉ๋๋ค.
์ด๋ฏธ์ง๋ฅผ ๋ด๋ณด๋ด๊ฑฐ๋ ์ปจํ ์ด๋ ์ด์ธ์ ํ์์ ๋ํ ์ ์ฅ์์ ์ํธ ์์ฉํ๊ฑฐ๋ ํด๋ฌ์คํฐ์์
gcloud
๋ช ๋ น์ด๋ฅผ ์คํํ๋ ค๋ฉด, ํด๋ฌ์คํฐ ๋๋ ๋ ธ๋ ํ์ ๋ง๋ค ๋ ์๋น์ค ๊ณ์ ์ ์ก์ธ์ค ๋ฒ์๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค.GKE์ ์ง์ ๋ฒ์ ์ ์ฌ์ฉํ์ง ์์ผ๋ฉด imagePullSecrets๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
- ์ฌ์ฉ์ ์ ๊ณต ์๋น์ค ๊ณ์
์ฌ์ฉ์ ์ ๊ณต ์๋น์ค ๊ณ์ ์ ํด๋ฌ์คํฐ์ ID๋ก ์ฌ์ฉํ๋ ค๋ฉด ๋ค์์ ์ํํด์ผ ํฉ๋๋ค.
Artifact Registry๋ฅผ ์คํ ์ค์ธGoogle Cloud ํ๋ก์ ํธ์์ ์๋น์ค ๊ณ์ ์ ํ์ํ ๊ถํ์ ๋ถ์ฌํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ์ ์ ๊ณต ์๋น์ค ๊ณ์ ์ผ๋ก ํด๋ฌ์คํฐ ๋๋ ๋ ธ๋ ํ์ ๋ง๋ค๋ฉด
cloud-platform
์ก์ธ์ค ๋ฒ์๊ฐ ๋ถ์ฌ๋ฉ๋๋ค.--scopes
ํ๋๊ทธ์ ํจ๊ป gcloud container clusters create ๋๋ gcloud container node-pools create ๋ช ๋ น์ด๋ฅผ ์คํํ๋ ๊ฒฝ์ฐ Artifact Registry์ ์ฌ์ฉํ๋๋ก ์ ์ ํ ์ก์ธ์ค ๋ฒ์๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค.
์ก์ธ์ค ๋ฒ์ ์ค์
์ก์ธ์ค ๋ฒ์๋ Compute Engine VM์ ์น์ธ์ ์ง์ ํ๋ ๊ธฐ์กด ๋ฐฉ๋ฒ์ ๋๋ค. Artifact Registry ์ ์ฅ์์์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด GKE ๋ ธ๋์ ์คํ ๋ฆฌ์ง ์ฝ๊ธฐ ์ ์ฉ ์ก์ธ์ค ๋ฒ์ ๋๋ ์คํ ๋ฆฌ์ง ์ฝ๊ธฐ ์ก์ธ์ค๋ฅผ ํฌํจํ๋ ๋ค๋ฅธ ์คํ ๋ฆฌ์ง ์ก์ธ์ค ๋ฒ์๊ฐ ์์ด์ผ ํฉ๋๋ค.
ํด๋ฌ์คํฐ ๋๋ ๋ ธ๋ ํ์ ๋ง๋ค ๋๋ง ์ก์ธ์ค ๋ฒ์๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. ๊ธฐ์กด ๋ ธ๋์์๋ ์ก์ธ์ค ๋ฒ์๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
- Compute Engine ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ GKE๊ฐ ์คํ ๋ฆฌ์ง์ ๋ํด ์ฝ๊ธฐ ์ ์ฉ ์ก์ธ์ค๋ฅผ ํฌํจํ๋ Compute Engine ๊ธฐ๋ณธ ์ก์ธ์ค ๋ฒ์๋ก ๋ ธ๋๋ฅผ ๋ง๋ญ๋๋ค.
- ์ฌ์ฉ์ ์ ๊ณต ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ GKE๋ ๋๋ถ๋ถ์Google Cloud ์๋น์ค์ ํ์ํ ๋ฒ์์ธ
cloud-platform
๋ฒ์๋ก ๋ ธ๋๋ฅผ ๋ง๋ญ๋๋ค.
ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค ๋ ์ก์ธ์ค ๋ฒ์๋ฅผ ์ง์ ํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
gcloud container clusters create NAME --scopes=SCOPES
๋ ธ๋ ํ์ ๋ง๋ค ๋ ์ก์ธ์ค ๋ฒ์๋ฅผ ์ง์ ํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
gcloud container node-pools create NAME --scopes=SCOPES
๋ค์ ๊ฐ์ ๋ฐ๊ฟ๋๋ค.
- NAME์ ํด๋ฌ์คํฐ ๋๋ ๋ ธ๋ ํ์ ์ด๋ฆ์ ๋๋ค.
SCOPES๋ ๋ถ์ฌํ ์ก์ธ์ค ๋ฒ์์ ์ผํ๋ก ๊ตฌ๋ถ๋ ๋ชฉ๋ก์ ๋๋ค.
Docker ์ ์ฅ์์ ์ก์ธ์คํ๋ ค๋ฉด ๋ค์ ๋ฒ์ ์ค ํ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
storage-ro
- ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํ ์ฝ๊ธฐ ์ ์ฉ ๊ถํ์ ๋ถ์ฌํฉ๋๋ค.storage-rw
- ์ด๋ฏธ์ง๋ฅผ ๋ด๋ณด๋ด๊ฑฐ๋ ๊ฐ์ ธ์ค๊ธฐ ์ํด ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ๊ถํ์ ๋ถ์ฌํฉ๋๋ค.cloud-platform
-Google Cloud ์๋น์ค์์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ํฌํจํ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ณ ๊ด๋ฆฌํฉ๋๋ค.๋ค๋ฅธ ์ ์ฅ์์ ์ก์ธ์คํ๋ ค๋ฉด
cloud-platform
๋ฒ์๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ ์ฒด ๋ฒ์ ๋ชฉ๋ก์ gcloud container clusters create ๋๋ gcloud container node-pools create ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค ๋ ์ค์ ํ ์ ์๋ ๋ฒ์์ ๋ํ ์์ธํ ๋ด์ฉ์ gcloud container clusters create ๋ช ๋ น์ด์ ๋ํ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
imagePullSecret
๊ตฌ์ฑ
imagePullSecret
์ ๊ตฌ์ฑํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
GKE๊ฐ ์๋ ํ๋ก์ ํธ์์ Compute Engine ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ ์ฐพ์ต๋๋ค. ๊ณ์ ์ด๋ฉ์ผ ์ฃผ์์๋ @developer.gserviceaccount.com ์ํฝ์ค๊ฐ ํฌํจ๋ฉ๋๋ค.
์๋น์ค ๊ณ์ ์ ์๋น์ค ๊ณ์ ํค๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค.
์ ์ฅ์๊ฐ ์๋ ํ๋ก์ ํธ์์ ์ ์ฅ์์ ๊ถํ์ ๋ถ์ฌํ๋์ง ํ์ธํฉ๋๋ค.
ํด๋ฌ์คํฐ๊ฐ ์๋ ํ๋ก์ ํธ์์ ์๋น์ค ๊ณ์ ํค๋ก
artifact-registry
๋ผ๋imagePullSecret
๋ณด์ ๋น๋ฐ์ ๋ง๋ญ๋๋ค.kubectl create secret docker-registry artifact-registry \ --docker-server=https://LOCATION-docker.pkg.dev \ --docker-email=SERVICE-ACCOUNT-EMAIL \ --docker-username=_json_key \ --docker-password="$(cat KEY-FILE)"
๋ค์์ ๋ฐ๊ฟ๋๋ค.
- LOCATION์ ์ ์ฅ์์ ๋ฆฌ์ ๋๋ ๋ฉํฐ ๋ฆฌ์ ์์น์ ๋๋ค.
- SERVICE-ACCOUNT-EMAIL์ Compute Engine ์๋น์ค ๊ณ์ ์ ์ด๋ฉ์ผ ์ฃผ์์ ๋๋ค.
- KEY-FILE์ ์๋น์ค ๊ณ์ ํค ํ์ผ์ ์ด๋ฆ์ ๋๋ค. ์๋ฅผ ๋ค์ด `key.json`์ ๋๋ค.
๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ ์ฝ๋๋ค.
kubectl edit serviceaccount default --namespace default
Kubernetes ํด๋ฌ์คํฐ์ ๋ชจ๋ ๋ค์์คํ์ด์ค์๋
default
๋ผ๊ณ ๋ถ๋ฅด๋ ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ด ์์ต๋๋ค. ์ด ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.์๋ก ์์ฑ๋
imagePullSecret
๋ณด์ ๋น๋ฐ์ ๊ธฐ๋ณธ ์๋น์ค ๊ณ์ ์ ์ถ๊ฐํฉ๋๋ค.imagePullSecrets: - name: artifact-registry
์๋น์ค ๊ณ์ ์ ๋ค์๊ณผ ๊ฐ์ด ํ์๋ฉ๋๋ค.
apiVersion: v1 kind: ServiceAccount metadata: name: default namespace: default ... secrets: - name: default-token-zd84v # The secret you created: imagePullSecrets: - name: artifact-registry
์ด์ ํ์ฌ default
๋ค์์คํ์ด์ค์ ์์ฑ๋๋ ๋ชจ๋ ์ ํฌ๋์ imagePullSecret
๋ณด์ ๋น๋ฐ์ด ์ ์๋ฉ๋๋ค.
Artifact Registry ์๋น์ค ๊ณ์
Artifact Registry ์๋น์ค ์์ด์ ํธ๋ Google Cloud์๋น์ค์ ์ํธ์์ฉํ ๋ Artifact Registry๋ฅผ ๋์ ํ์ฌ ๋์ํ๋ Google ๊ด๋ฆฌํ ์๋น์ค ๊ณ์ ์ ๋๋ค. ๊ณ์ ๋ฐ ๊ถํ์ ๋ํ ์์ธํ ๋ด์ฉ์ Artifact Registry ์๋น์ค ๊ณ์ ์ ์ฐธ๊ณ ํ์ธ์.
๋ค์ ๋จ๊ณ
๊ถํ์ ์ค์ ํ ํ ์ํฐํฉํธ๋ฅผ ์ฌ์ฉํ๋ ์์ ์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
- ์ปจํ ์ด๋ ์ด๋ฏธ์ง: Docker, Helm
- ์ธ์ด ํจํค์ง: ์๋ฐ, Node.js, Python, Go
- OS ํจํค์ง: Debian, RPM