1. GitOps์ ์ค์ ๊ด๋ฆฌ์ ํ์ฌ ๋ฌธ์ ์
1.1. ๊ธฐ์กด GitOps ์ ๊ทผ ๋ฐฉ์์ ํ๊ณ
โข
GitOps๋ ๊ฐ์์ฑ๊ณผ ํ์
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์์น์ ์ ๊ณตํ์ง๋ง, ์ค์ ๊ตฌํ์์ ๋ง์ ํด์์ ์ฌ์ง๊ฐ ์์
โข
Git ์ ์ฅ์ ๊ตฌ์กฐ, ์ค์ ๊ด๋ฆฌ ๋๊ตฌ ์ ํ, ๋ธ๋์น ์ ๋ต ๋ฑ์ ๋ํ ๋ช
ํํ ๊ฐ์ด๋๋ผ์ธ ๋ถ์ฌ
โข
Helm๊ณผ Kustomize ๊ฐ์ ๋๊ตฌ๋ค์ด ์ ๊ณตํ๋ ์ถ์ํ๊ฐ ์๋ก์ด ๋ฌธ์ ๋ฅผ ์ผ๊ธฐ
1.2. ์ค์ ๊ด๋ฆฌ ๋๊ตฌ์ ๋ฌธ์ ์
์์: Helm ์ฐจํธ ๋ฒ์ ๋ณ๊ฒฝ
chartVersion: 1.2.3 -> 1.2.4
์ด๋ฌํ ์์ ๋ณ๊ฒฝ์ด ์ค์ ๋ก๋:
- ์๋ฐฑ ์ค์ ๋งค๋ํ์คํธ ๋ณ๊ฒฝ
- ์ฌ๋ฌ ํ๊ฒฝ์ ๊ฑธ์น ์ํฅ
- ์์ธกํ๊ธฐ ์ด๋ ค์ด ๋ถ์์ฉ์ ์ด๋ํ ์ ์์
Plain Text
๋ณต์ฌ
2. Rendered Manifests ํจํด์ ์์ธ ๊ตฌํ
2.1. ํต์ฌ ์ํคํ ์ฒ
1.
๋ฉ์ธ ๋ธ๋์น ์ํฌํ๋ก์ฐ
โข
์์ค ์ฝ๋ ๋ณ๊ฒฝ
โข
CI ํ์ดํ๋ผ์ธ ํธ๋ฆฌ๊ฑฐ
โข
๋งค๋ํ์คํธ ๋ ๋๋ง
โข
ํ๊ฒฝ๋ณ ๋ธ๋์น์ ๊ฒฐ๊ณผ๋ฌผ ์ ์ฅ
2.
ํ๊ฒฝ๋ณ ๋ธ๋์น ๊ด๋ฆฌ
main (์์ค)
โโโ dev-manifests (๊ฐ๋ฐ ํ๊ฒฝ ๋งค๋ํ์คํธ)
โโโ staging-manifests (์คํ
์ด์ง ํ๊ฒฝ ๋งค๋ํ์คํธ)
โโโ prod-manifests (ํ๋ก๋์
ํ๊ฒฝ ๋งค๋ํ์คํธ)
Plain Text
๋ณต์ฌ
2.2. ์์ธ ํ๋ก์ธ์ค ํ๋ฆ
1.
๊ฐ๋ฐ ๋จ๊ณ
โข
๊ฐ๋ฐ์๊ฐ ๋ฉ์ธ ๋ธ๋์น์ ๋ณ๊ฒฝ์ฌํญ ์ปค๋ฐ
โข
CI ์์คํ
์ด ์๋์ผ๋ก ๋งค๋ํ์คํธ ๋ ๋๋ง
โข
๋นํ๋ก๋์
ํ๊ฒฝ ๋ธ๋์น์ ์๋ ์
๋ฐ์ดํธ
2.
ํ๋ก๋์
๋ฐฐํฌ ๋จ๊ณ
โข
์์ ๋ธ๋์น ์์ฑ
โข
๋ ๋๋ง๋ ๋งค๋ํ์คํธ๋ก PR ์์ฑ
โข
์ฝ๋ ๋ฆฌ๋ทฐ ๋ฐ ์น์ธ ํ๋ก์ธ์ค
โข
prod-manifests ๋ธ๋์น์ ๋จธ์ง
2.3. ๋ณด์ ๋ฐ ์ ๊ทผ ์ ์ด
1.
๋ธ๋์น ๋ณดํธ ์ ์ฑ
๊ฐ๋ฐ ํ๊ฒฝ: ์๋ ๋ฐฐํฌ ํ์ฉ
์คํ
์ด์ง ํ๊ฒฝ: ๊ธฐ๋ณธ์ ์ธ ๋ฆฌ๋ทฐ ํ์
ํ๋ก๋์
ํ๊ฒฝ:
- ํ์ ๋ฆฌ๋ทฐ์ด ์น์ธ
- CI ์ฒดํฌ ํต๊ณผ
- ์ง์ ํธ์ ๊ธ์ง
Plain Text
๋ณต์ฌ
2.
์ํฌ๋ฆฟ ๊ด๋ฆฌ ์ ๋ต
โข
External Secrets Operator ์ฌ์ฉ
โข
SecretStore์์ ์ํฌ๋ฆฟ ์ฐธ์กฐ
โข
ExternalSecret ๋ฆฌ์์ค๋ก ๊ด๋ฆฌ
3. ์ฑ๋ฅ ์ต์ ํ
3.1. Argo CD ์ฑ๋ฅ ํฅ์
1.
๋ฆฌ์์ค ์ฌ์ฉ๋ ๊ฐ์
โข
๊ธฐ์กด: ๋ ํฌ ์๋ฒ์์ ์ง์์ ์ธ ๋งค๋ํ์คํธ ์์ฑ
โข
๊ฐ์ : CI์์ 1ํ ์์ฑ์ผ๋ก ๋ณ๊ฒฝ
2.
์บ์ ํจ์จ์ฑ
โข
๋งค๋ํ์คํธ ์ฌ์์ฑ ํ์์ฑ ๊ฐ์
โข
์บ์ ๋ฌดํจํ ๋น๋ ๊ฐ์
3.2. CI ์ต์ ํ
์ต์ ํ ์ ๋ต:
1. ๋ณ๋ ฌ ๋งค๋ํ์คํธ ๋ ๋๋ง
2. ์ฆ๋ถ ์
๋ฐ์ดํธ ์ง์
3. ์บ์ ํ์ฉ
Plain Text
๋ณต์ฌ
4. ๋ชจ๋ํฐ๋ง ๋ฐ ๋ฌธ์ ํด๊ฒฐ
4.1. ๋ณ๊ฒฝ ์ถ์
1.
๋งค๋ํ์คํธ ๋ณ๊ฒฝ ์ด๋ ฅ
โข
์ปค๋ฐ ํ์คํ ๋ฆฌ๋ก ์๋ฒฝํ ๊ฐ์ฌ ์ถ์
โข
๋ณ๊ฒฝ์ฌํญ์ ๋ช
ํํ ๊ฐ์์ฑ
2.
์ฐจ์ด์ ๋ถ์
๋ณ๊ฒฝ ์ /ํ ๋น๊ต:
- ๋ฆฌ์์ค ๊ตฌ์ฑ ๋ณ๊ฒฝ
- ์ค์ ๊ฐ ๋ณ๊ฒฝ
- ๋ฒ์ ์
๋ฐ์ดํธ
Plain Text
๋ณต์ฌ
4.2. ๋กค๋ฐฑ ์ ๋ต
1.
์ฆ๊ฐ์ ๋กค๋ฐฑ
โข
์ด์ ์ปค๋ฐ์ผ๋ก ๊ฐ๋จํ ๋๋๋ฆฌ๊ธฐ
โข
๋งค๋ํ์คํธ ์ฌ์์ฑ ๋ถํ์
2.
๋ถ๋ถ ๋กค๋ฐฑ
โข
ํน์ ์ปดํฌ๋ํธ๋ง ์ ํ์ ๋กค๋ฐฑ
โข
์ํฅ ๋ฒ์ ์ต์ํ
5. ๋ชจ๋ฒ ์ฌ๋ก ๋ฐ ๊ถ์ฅ ์ฌํญ
5.1. ์ ์ฅ์ ๊ตฌ์กฐ
/
โโโ src/
โ โโโ helm/
โ โโโ kustomize/
โโโ .github/workflows/
โ โโโ render-dev.yaml
โ โโโ render-staging.yaml
โ โโโ render-prod.yaml
โโโ docs/
โโโ deployment-guides/
Plain Text
๋ณต์ฌ
5.2. ๋ฐฐํฌ ์ ๋ต
1.
๋จ๊ณ์ ๋ฐฐํฌ
โข
๊ฐ๋ฐ ํ๊ฒฝ ์๋ ๋ฐฐํฌ
โข
์คํ
์ด์ง ํ๊ฒฝ ๊ฒ์ฆ
โข
ํ๋ก๋์
ํ๊ฒฝ ์น์ธ ๊ธฐ๋ฐ ๋ฐฐํฌ
2.
๊ธด๊ธ ํจ์น ์ ์ฐจ
โข
ํซํฝ์ค ๋ธ๋์น ์์ฑ
โข
์ ์ํ ๋ฆฌ๋ทฐ ํ๋ก์ธ์ค
โข
์๋ํ๋ ํ
์คํธ ์คํ
์ด๋ฌํ ์์ธํ ๊ตฌํ๊ณผ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ํตํด Rendered Manifests ํจํด์ ํฐ ๊ท๋ชจ์ Kubernetes ํ๊ฒฝ์์๋ ์์ ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ GitOps ์คํ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.