์กฐ์ง์์ ์ ์ฑ ์ปจํธ๋กค๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ Google Kubernetes Engine(GKE) Enterprise ๋ฒ์ ํด๋ฌ์คํฐ ๊ฐ์ ์ ์ฑ ์ ๊ด๋ฆฌํ๋ ๊ฒฝ์ฐ ์ง์์ ํตํฉ(CI) ํ์ดํ๋ผ์ธ์์ ํด๋น ๋ฐฐํฌ ๊ตฌ์ฑ์ ๊ฒ์ฆํ ์ ์์ต๋๋ค. ์ด ํํ ๋ฆฌ์ผ์์๋ ์ด ๊ฒฐ๊ณผ๋ฅผ ์ป๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ์ฑ์ CI ํ์ดํ๋ผ์ธ์ ๋น๋ํ๋ ๊ฐ๋ฐ์์ด๊ฑฐ๋ ์ฌ๋ฌ ์ฑํ์ ์ํ CI ํ์ดํ๋ผ์ธ ํ ํ๋ฆฟ์ ๋น๋ํ๋ ํ๋ซํผ ์์ง๋์ด๋ผ๋ฉด ์ฑ ๊ฒ์ฆ์ด ์ ์ฉํฉ๋๋ค.
์ด ํ์ด์ง๋ ๊ฐ์ฌ ๋๋ ์ํ ์๋ํ๋ฅผ ์ ๊ณตํ๊ณ ์ ์งํ์ฌ ํด๋ผ์ฐ๋ ํ๋ซํผ ๋ด์์ ์คํ๋๋ ๋ชจ๋ ๋ฆฌ์์ค๊ฐ ์กฐ์ง์ ๊ท์ ์ค์ ์๊ตฌ์ฌํญ์ ์ถฉ์กฑํ๋๋ก ๋ณด์ฅํ๊ณ ๊ธฐ๋ณธ ๊ธฐ์ ์ธํ๋ผ์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๋ IT ๊ด๋ฆฌ์์ ์ด์์๋ฅผ ์ํด ์์ฑ๋์์ต๋๋ค.Google Cloud ์ฝํ ์ธ ์์ ์ฐธ์กฐํ๋ ์ผ๋ฐ์ ์ธ ์ญํ ๋ฐ ์์ ํ์คํฌ์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉด ์ผ๋ฐ GKE ์ฌ์ฉ์ ์ญํ ๋ฐ ํ์คํฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ ์ฑ ์ ์กฐ์ง์ ๋ณด์๊ณผ ๊ท์ ์ค์์์ ์ค์ํ ๋ถ๋ถ์ ๋๋ค. ์ ์ฑ ์ปจํธ๋กค๋ฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์กฐ์ง์ด ๋ชจ๋ ํด๋ฌ์คํฐ์ ๋ํด ์ด๋ฌํ ์ ์ฑ ์ ์ค์์์ ์ ์ธ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ ์ด๋ฌํ ์ ์ฑ ์ ์ค์ ์ง์ค์ ์ ์ธ์ ํน์ฑ์ ํ์ฉํ ์ ์์ต๋๋ค. ๊ฐ๋ฐ ์ํฌํ๋ก์์ ์ด๋ฌํ ํน์ฑ์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ์ด๋ฌํ ์ ์ฑ ์ ๋ํด ์ฑ ์ ํจ์ฑ์ ๊ฒ์ฌํ ์ ์์ต๋๋ค. ๋ฐฐํฌ ์ค ๋์ ์ CI ํ์ดํ๋ผ์ธ์ ์ ์ฑ ์๋ฐ์ ๋ํด ์์๋ณด๋ ๊ฒ์ ๋ ๊ฐ์ง ์ฃผ์ ์ด์ ์ด ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ ์ด๊ธฐ๋ถํฐ ๋ณด์ ๋ฌธ์ ๋ฅผ ๋ฐ์ํ๊ณ , ํผ๋๋ฐฑ ๋ฃจํ๋ฅผ ๊ฐํํ๊ณ , ์ด๋ฌํ ์๋ฐ์ฌํญ์ ์์ ํ๋ ๋ฐ ํ์ํ ์๊ฐ๊ณผ ๋น์ฉ์ ์ค์ผ ์ ์์ต๋๋ค.
์ด ํํ ๋ฆฌ์ผ์์๋ Cloud Build๋ฅผ CI ๋๊ตฌ๋ก ์ฌ์ฉํ๊ณ ๋ฐ๋ชจ์ฉ ์ ์ฑ ์ด ํฌํจ๋ ์ํ GitHub ์ ์ฅ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ฆฌ์์ค
์ด ํํ ๋ฆฌ์ผ์์๋ ์ฌ๋ฌ Kubernetes ๋๊ตฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ์น์ ์์๋ ์ด๋ฌํ ๋๊ตฌ์๋ ๋ฌด์์ด ์๋์ง, ์๋ก ์ด๋ป๊ฒ ์ํธ์์ฉํ๋์ง, ๋ค๋ฅธ ๋๊ตฌ๋ก ๋ฐ๊ฟ ์ ์๋์ง ์ฌ๋ถ๋ฅผ ์ค๋ช ํฉ๋๋ค.
์ด ํํ ๋ฆฌ์ผ์์ ์ฌ์ฉํ๋ ๋๊ตฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ ์ฑ ์ปจํธ๋กค๋ฌ: ์คํ์์ค ํ๋ก์ ํธ ๊ฐ๋ฐฉํ ์ ์ฑ ์์ด์ ํธ - Gatekeeper๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ์ ์ฑ ์ปจํธ๋กค๋ฌ๋ Kubernetes ํด๋ฌ์คํฐ์์ ์์ฑ๋ ๊ฐ์ฒด์ ๋ํ ์ ์ฑ ์ ์ ์ฉํฉ๋๋ค(์: ํน์ ์ต์ ์ ์ฌ์ฉ ๋ฐฉ์ง ๋๋ ํน์ ๋ผ๋ฒจ ์ฌ์ฉ ์ ์ฉ). ์ด๋ฌํ ์ ์ฑ ์ ์ ์ฝ์กฐ๊ฑด์ด๋ผ๊ณ ํฉ๋๋ค. ์ ์ฝ์กฐ๊ฑด์ Kubernetes ์ปค์คํ ๋ฆฌ์์ค๋ก ์ ์๋ฉ๋๋ค. ์ ์ฑ ์ปจํธ๋กค๋ฌ๋ Google Kubernetes Engine(GKE) Enterprise ๋ฒ์ ์ ์ผ๋ถ๋ก ์ ๊ณต๋์ง๋ง ํด๋น ๊ตฌํ์ ์ ์ฑ ์ปจํธ๋กค๋ฌ ๋์ ๊ฐ๋ฐฉํ ์ ์ฑ ์์ด์ ํธ - Gatekeeper๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
GitHub: ์ด ํํ ๋ฆฌ์ผ์์๋ GitHub๋ฅผ ์ฌ์ฉํด์ Git ์ ์ฅ์๋ฅผ ํธ์คํ ํฉ๋๋ค. ์ด๋ฌํ ์ ์ฅ์๋ ์ํ ์ฑ์ ์ํ ์ ์ฅ์์ ์ ์ฑ ์ปจํธ๋กค๋ฌ์ ์ ์ฝ์กฐ๊ฑด์ด ํฌํจ๋ ์ ์ฅ์์ ๋๋ค. ํธ์์ ๋ ์ ์ฅ์๋ ๋จ์ผ Git ์ ์ฅ์์ ์๋ก ๋ค๋ฅธ ํด๋ ๋ ๊ฐ์ ๋๋ค. ํ์ง๋ง ์ค์ ๋ก๋ ์๋ก ๋ค๋ฅธ ์ ์ฅ์์ ๋๋ค. ๋ชจ๋ Git ์๋ฃจ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Cloud Build: Cloud Build๋ Google Cloud์ CI ์๋ฃจ์ ์ ๋๋ค. ์ด ํํ ๋ฆฌ์ผ์์๋ ์ ํจ์ฑ ๊ฒ์ฌ ํ ์คํธ๋ฅผ ์คํํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค. ๊ตฌํ ์ธ๋ถ์ ๋ณด๋ CI ์์คํ ๊ฐ์ ๋ค๋ฅผ ์ ์์ง๋ง ์ด ํํ ๋ฆฌ์ผ์ ์ค๋ช ๋ ๊ฐ๋ ์ ๋ชจ๋ ์ปจํ ์ด๋ ๊ธฐ๋ฐ CI ์์คํ ์์ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
Kustomize: Kustomize๋ Kubernetes ๊ตฌ์ฑ์ ์ฌ์ฉ๋๋ ๋ง์ถค์ค์ ๋๊ตฌ์ ๋๋ค. '๊ธฐ๋ณธ' ๊ตฌ์ฑ์ ๊ฐ์ ธ์ค๊ณ ๋ง์ถค์ค์ ์ ์ ์ฉํ๋ ๋ฐฉ์์ผ๋ก ์๋ํฉ๋๋ค. Kubernetes ๊ตฌ์ฑ์ ๋ํด DRY(๋ฐ๋ณต ๊ธ์ง) ๋ฐฉ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. Kustomize๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ๋ณธ ๊ตฌ์ฑ์ ๋ชจ๋ ํ๊ฒฝ์ ๊ณตํต์ ์ธ ์์๋ฅผ ์ ์งํ๊ณ ํ๊ฒฝ๋ณ๋ก ๋ง์ถค์ค์ ์ ๋ง๋ค ์ ์์ต๋๋ค. ์ด ํํ ๋ฆฌ์ผ์์๋ ์ฑ ์ ์ฅ์์ Kustomize ๊ตฌ์ฑ์ ์ ์งํ๊ณ CI ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑ์ '๋น๋'(์: ๋ง์ถค์ค์ ์ ์ฉ)ํฉ๋๋ค. ์ด ํํ ๋ฆฌ์ผ์์ ์ค๋ช ํ๋ ๊ฐ๋ ์ ํด๋ฌ์คํฐ์ ์ ์ฉํ ์ ์๋ Kubernetes ๊ตฌ์ฑ์ ์์ฑํ๋ ๋ชจ๋ ๋๊ตฌ(์: helm template ๋ช ๋ น์ด)์ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค.
Kpt: Kpt๋ Kubernetes ๊ตฌ์ฑ์ ์ํฌํ๋ก๋ฅผ ๋น๋ํ๋ ๋๊ตฌ์ ๋๋ค. kpt๋ฅผ ์ฌ์ฉํ๋ฉด Kubernetes ๊ตฌ์ฑ ๊ฐ์ ธ์ค๊ธฐ, ํ์, ๋ง์ถค์ค์ , ์ ๋ฐ์ดํธ, ์ ํจ์ฑ ๊ฒ์ฌ, ์ ์ฉ์ ์ํํ ์ ์์ต๋๋ค. Git ๋ฐ YAML ํ์ผ๊ณผ ํธํ๋๋ฏ๋ก Kubernetes ์ํ๊ณ์ ๊ธฐ์กด ๋๊ตฌ ๋๋ถ๋ถ๊ณผ ํธํ๋ฉ๋๋ค. ์ด ํํ ๋ฆฌ์ผ์์๋ CI ํ์ดํ๋ผ์ธ์์ kpt๋ฅผ ์ฌ์ฉํ์ฌ anthos-config-management-samples ์ ์ฅ์์์ ์ ์ฝ์กฐ๊ฑด์ ๊ฐ์ ธ์ค๊ณ ์ด๋ฌํ ์ ์ฝ์กฐ๊ฑด์ ๋ํด Kubernetes ๊ตฌ์ฑ์ ๊ฒ์ฆํฉ๋๋ค.
ํ์ดํ๋ผ์ธ
์ด ํํ ๋ฆฌ์ผ์์ ์ฌ์ฉํ๋ CI ํ์ดํ๋ผ์ธ์ ๋ค์ ๋ค์ด์ด๊ทธ๋จ์ ๋์ ์์ต๋๋ค.
์ด ํ์ดํ๋ผ์ธ์ Cloud Build์์ ์คํ๋๋ฉฐ ๋ช
๋ น์ด๋ ์ํ ์ฑ ์ ์ฅ์์ ๋ณต์ฌ๋ณธ์ด ํฌํจ๋ ๋๋ ํฐ๋ฆฌ์์ ์คํ๋ฉ๋๋ค. kustomize๋ฅผ ํตํด ์ต์ข
Kubernetes ๊ตฌ์ฑ์ ์์ฑํ๋ฉด ํ์ดํ๋ผ์ธ์ด ์์๋ฉ๋๋ค. ๊ทธ๋ฐ ํ kpt๋ฅผ ์ฌ์ฉํ์ฌ anthos-config-management-์ํ ์ ์ฅ์์์ ๊ฒ์ฆํ ์ ์ฝ์กฐ๊ฑด์ ๊ฐ์ ธ์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก kpt๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ์ ์ฝ์กฐ๊ฑด์ ๋ํด Kubernetes ๊ตฌ์ฑ์ ์ ํจ์ฑ์ ๊ฒ์ฌํฉ๋๋ค. ์ด ๋ง์ง๋ง ๋จ๊ณ๋ฅผ ์ํํ๋ ค๋ฉด ์ด ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ํํ๋ gatekeeper๋ผ๋ ํน์ ๊ตฌ์ฑ ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ํํ ๋ฆฌ์ผ์์๋ CI ํ์ดํ๋ผ์ธ์ ์๋์ผ๋ก ํธ๋ฆฌ๊ฑฐํ์ง๋ง ์ค์ ๋ก๋ ๊ฐ๋ฐ์๊ฐ Git ์ ์ฅ์์ git push
๋ฅผ ์คํํ ํ์ ์คํ๋๋๋ก ๊ตฌ์ฑํฉ๋๋ค.
๋ชฉํ
- Cloud Build๋ก ์ํ ์ฑ์ CI ํ์ดํ๋ผ์ธ์ ์คํํฉ๋๋ค.
- ์ ์ฑ ์๋ฐ์ผ๋ก ์ธํด ํ์ดํ๋ผ์ธ์ด ์คํจํ๋์ง ํ์ธํฉ๋๋ค.
- ์ ์ฑ ์ ์ค์ํ๋๋ก ์ํ ์ฑ ์ ์ฅ์๋ฅผ ์์ ํฉ๋๋ค.
- CI ํ์ดํ๋ผ์ธ์ ์ฑ๊ณต์ ์ผ๋ก ๋ค์ ์คํํฉ๋๋ค.
๋น์ฉ
์ด ํํ ๋ฆฌ์ผ์์๋ ๋น์ฉ์ด ์ฒญ๊ตฌ๋ ์ ์๋ ๋ค์๊ณผ ๊ฐ์ Google Cloud๊ตฌ์ฑ์์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- Cloud Build
- Google Kubernetes Engine(GKE) Enterprise ๋ฒ์
ํ๋ก์ ํธ ์ฌ์ฉ๋์ ๊ธฐ์ค์ผ๋ก ์์ ๋น์ฉ์ ์ฐ์ถํ๋ ค๋ฉด ๊ฐ๊ฒฉ ๊ณ์ฐ๊ธฐ๋ฅผ ์ฌ์ฉํ์ธ์.
์ด ํํ ๋ฆฌ์ผ์ ๋ง์น ํ์ ๊ณ์ ๋น์ฉ์ด ์ฒญ๊ตฌ๋์ง ์๋๋ก ํ๋ ค๋ฉด ๋ง๋ ๋ฆฌ์์ค๋ฅผ ์ญ์ ํ๋ฉด ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ญ์ ์น์ ์ ์ฐธ์กฐํ์ธ์.
์์ํ๊ธฐ ์ ์
Google Cloud ํ๋ก์ ํธ๋ฅผ ์ ํํ๊ฑฐ๋ ๋ง๋ญ๋๋ค. Google Cloud ์ฝ์์์ ๋ฆฌ์์ค ๊ด๋ฆฌ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ด ํํ ๋ฆฌ์ผ์ ๋์ด๋ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ ค๋ฉด Cloud Shell์ ์ฝ๋๋ค.
Cloud Shell์์
gcloud config get-value project
๋ฅผ ์คํํฉ๋๋ค.๋ช ๋ น์ด๊ฐ ๋ฐฉ๊ธ ์ ํํ ํ๋ก์ ํธ์ ID๋ฅผ ๋ฐํํ์ง ์์ผ๋ฉด Cloud Shell์ด ํ๋ก์ ํธ๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑํฉ๋๋ค.
gcloud config set project PROJECT_ID
PROJECT_ID
๋ฅผ ํ๋ก์ ํธ ID๋ก ๋ฐ๊ฟ๋๋ค.Cloud Shell์์ ํ์ํ Cloud Build API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
gcloud services enable cloudbuild.googleapis.com
์ํ ์ฑ ๊ตฌ์ฑ ์ ํจ์ฑ ๊ฒ์ฌ
์ด ์น์ ์์๋ Google์์ ์ ๊ณตํ๋ ์ํ ์ฑ ์ ์ฅ์์ ๋ํด Cloud Build๋ก CI ํ์ดํ๋ผ์ธ์ ์คํํฉ๋๋ค. ์ด ํ์ดํ๋ผ์ธ์ anthos-config-management-samples ์ ์ฅ์์ ์ ๊ณต๋ ์ ์ฝ์กฐ๊ฑด์ ๋ํด ์ํ ์ฑ ์ ์ฅ์์ ์ ๊ณต๋ Kubernetes ๊ตฌ์ฑ์ ๊ฒ์ฆํฉ๋๋ค.
์ฑ ๊ตฌ์ฑ์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
Cloud Shell์์ ์ํ ์ฑ ์ ์ฅ์๋ฅผ ํด๋ก ํฉ๋๋ค.
git clone https://github.com/GoogleCloudPlatform/anthos-config-management-samples.git
Cloud Build๋ก CI ํ์ดํ๋ผ์ธ์ ์คํํฉ๋๋ค. ๋น๋ ๋ก๊ทธ๊ฐ Cloud Shell์ ์ง์ ํ์๋ฉ๋๋ค.
cd anthos-config-management-samples/ci-app/app-repo gcloud builds submit .
์คํํ๋ ํ์ดํ๋ผ์ธ์ ๋ค์ ํ์ผ์ ์ ์๋์ด ์์ต๋๋ค.
์ ์ฑ ์ปจํธ๋กค๋ฌ์์ ์ ์ฝ์กฐ๊ฑด์ ์ ์ฝ์กฐ๊ฑด ํ ํ๋ฆฟ์ ์ธ์คํด์คํ์ ํด๋นํฉ๋๋ค. ์ ์ฝ์กฐ๊ฑด ํ ํ๋ฆฟ์ ์ ์ฝ์กฐ๊ฑด์ ๊ตฌํํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ค์ Rego ์ฝ๋๋ฅผ ํฌํจํฉ๋๋ค.
gcr.io/kpt-fn/gatekeeper
ํจ์๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ ์ฝ์กฐ๊ฑด ํ ํ๋ฆฟ๊ณผ ์ ์ฝ์กฐ๊ฑด ์ ์๊ฐ ๋ชจ๋ ํ์ํฉ๋๋ค. ์ํ ์ ์ฑ ์ ์ฅ์์๋ ๋ชจ๋ ํฌํจ๋์ด ์์ง๋ง ์ค์ ๋ก๋ ๋ค๋ฅธ ์์น์ ์ ์ฅ๋ ์ ์์ต๋๋ค. ํ์์ ๋ฐ๋ผkpt pkg get
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฝ์กฐ๊ฑด ํ ํ๋ฆฟ๊ณผ ์ ์ฝ์กฐ๊ฑด์ ๋ชจ๋ ๋ค์ด๋ก๋ํ์ธ์.์ด ํํ ๋ฆฌ์ผ์์๋ Cloud Build์ ํจ๊ป
gcr.io/kpt-fn/gatekeeper
๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค๋ฅผ ๊ฒ์ฆํ์ง๋ง ๋ค๋ฅธ ๋ ๊ฐ์ง ๋์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.kpt
์ ํจ๊ปgcr.io/kpt-fn/gatekeeper
๊ธฐ๋ฅ์ ์ฌ์ฉํฉ๋๋ค.
kpt fn eval hydrated-manifests/kpt-manifests.yaml --image gcr.io/kpt-fn/gatekeeper:v0.2
gator
๋ช ๋ น์ค ๋๊ตฌ ์ฌ์ฉ:
gator test -f hydrated-manifests/kpt-manifests.yaml
๋ช ๋ถ ํ์ ํ์ดํ๋ผ์ธ์ด ์คํจํ์ฌ ๋ค์ ์ค๋ฅ๊ฐ ํ์๋๋์ง ํ์ธํฉ๋๋ค.
[...] Step #2 - "Validate against policies": [error] apps/v1/Deployment/nginx-deployment : Deployment objects should have an 'owner' label indicating who created them. Step #2 - "Validate against policies": violatedConstraint: deployment-must-have-owner Finished Step #2 - "Validate against policies" 2022/05/11 18:55:18 Step Step #2 - "Validate against policies" finished 2022/05/11 18:55:19 status changed to "ERROR" ERROR ERROR: build step 2 "gcr.io/kpt-fn/gatekeeper:v0.2" failed: exit status 1 2022/05/11 18:55:20 Build finished with ERROR status
๊ตฌ์ฑ์์ ์๋ฐํ ์ ์ฝ์กฐ๊ฑด์ ๋ค์ ํ์ผ์ ์ ์๋์ด ์์ต๋๋ค. ์ด๋
K8sRequiredLabels
๋ผ๋ Kubernetes ์ปค์คํ ๋ฆฌ์์ค์ ๋๋ค.์ด ์ ์ฝ์กฐ๊ฑด์ ํด๋นํ๋ ์ ์ฝ์กฐ๊ฑด ํ ํ๋ฆฟ์ GitHub์
requiredlabels.yaml
์ ์ฐธ์กฐํ์ธ์.์ ์ฒด Kubernetes ๊ตฌ์ฑ์ ์ง์ ๋น๋ํ๊ณ ์ค์ ๋ก
owner
๋ผ๋ฒจ์ด ์๋์ง ํ์ธํฉ๋๋ค. ๊ตฌ์ฑ์ ๋น๋ํ๋ ค๋ฉด ๋ค์์ ์คํํฉ๋๋ค.kubectl kustomize config/prod
ํ์ฌ ์ ์ฑ ์ ์ค์ํ๋๋ก ์ฑ ์์
์ด ์น์ ์์๋ Kustomize๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฑ ์๋ฐ์ ์์ ํฉ๋๋ค.
Cloud Shell์์
commonLabels
์น์ ์ ๊ธฐ๋ณธ Kustomization ํ์ผ์ ์ถ๊ฐํฉ๋๋ค.cat <<EOF >> config/base/kustomization.yaml commonLabels: owner: myself EOF
์ ์ฒด Kubernetes ๊ตฌ์ฑ์ ๋น๋ํ๊ณ ํ์ฌ
owner
๋ผ๋ฒจ์ด ์๋์ง ํ์ธํฉ๋๋ค.kubectl kustomize config/prod
Cloud Build๋ก CI ํ์ดํ๋ผ์ธ์ ๋ค์ ์คํํฉ๋๋ค.
gcloud builds submit .
์ด์ ํ์ดํ๋ผ์ธ์ด ๋ค์๊ณผ ๊ฐ์ด ์ถ๋ ฅ๋ฉ๋๋ค.
[...] Step #2 - "Validate against policies": [RUNNING] "gcr.io/kpt-fn/gatekeeper:v0" Step #2 - "Validate against policies": [PASS] "gcr.io/kpt-fn/gatekeeper:v0" [...]
์ญ์
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
๋ค์ ๋จ๊ณ
- ๊ทธ ๋ฐ์ ์ฐธ์กฐ ์ํคํ ์ฒ, ๋ค์ด์ด๊ทธ๋จ, ํํ ๋ฆฌ์ผ, ๊ถ์ฅ์ฌํญ์ ์์๋ณด๋ ค๋ฉด Cloud ์ํคํ ์ฒ ์ผํฐ๋ฅผ ํ์ธํ์ธ์.