Kubernetes๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ๋ฌด๋ฃ PaaS ํ๋ซํผ Cozystack 0.20.0์ด ์ถ์๋์์ต๋๋ค. ์ด ํ๋ก์ ํธ๋ ํธ์คํ ์ ๊ณต์ ์ฒด๋ฅผ ์ํ ๊ธฐ์ฑ ํ๋ซํผ๊ณผ ํ๋ผ์ด๋น ๋ฐ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋ ๊ตฌ์ถ์ ์ํ ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ํ๋ซํผ์ ์๋ฒ์ ์ง์ ์ค์น๋๋ฉฐ ๊ด๋ฆฌํ ์๋น์ค ์ ๊ณต์ ์ํ ์ธํ๋ผ ์ค๋น์ ๋ชจ๋ ์ธก๋ฉด์ ๋ค๋ฃน๋๋ค. Cozystack์ ์ฌ์ฉํ๋ฉด Kubernetes ํด๋ฌ์คํฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ๊ฐ์ ๋จธ์ ์ ์คํํ๊ณ ํ๋ก๋น์ ๋ํ ์ ์์ต๋๋ค. ํ๋ซํผ ์ฝ๋๋ GitHub์์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ Apache-2.0 ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค.
Talos Linux ๋ฐ Flux CD๊ฐ ๊ธฐ๋ณธ ๊ธฐ์ ์คํ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์์คํ , ์ปค๋ ๋ฐ ํ์ํ ๋ชจ๋์ด ํฌํจ๋ ์ด๋ฏธ์ง๊ฐ ๋ฏธ๋ฆฌ ์์ฑ๋๊ณ ์์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋๋ฏ๋ก dkms ๋ฐ ํจํค์ง ๊ด๋ฆฌ์์ ๊ฐ์ ๊ตฌ์ฑ ์์ ์์ด๋ ์์ ์ด ๊ฐ๋ฅํ๊ณ ์์ ์ ์ธ ์๋์ด ๋ณด์ฅ๋ฉ๋๋ค. PXE ๋ฐ Debian๊ณผ ์ ์ฌํ talos-bootstrap ์ค์น ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ฌ ๋น ๋ฐ์ดํฐ ์ผํฐ์ ๊ฐ๋จํ ์ค์น ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
์ด ํ๋ซํผ์๋ ๋ฌด๋ฃ ๊ตฌํ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์์ต๋๋ค. ๋คํธ์ํฌ ์ธํ๋ผ Kube-OVN ๊ธฐ๋ฐ์ ํจ๋ธ๋ฆญ์ผ๋ก, ์๋น์ค ๋ฉ์ ๊ตฌ์ฑ์๋ Cilium์, ์๋น์ค ๊ด๊ณ ์๋ MetalLB๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์คํ ๋ฆฌ์ง๋ LINSTOR์ ๊ตฌํ๋์ด ์์ผ๋ฉฐ, ํ์ ์คํ ๋ฆฌ์ง ๊ณ์ธต์ผ๋ก๋ ZFS๋ฅผ, ๋ณต์ ์๋ DRBD๋ฅผ ์ฌ์ฉํฉ๋๋ค. VictoriaMetrics์ Grafana ๊ธฐ๋ฐ์ ์ฌ์ ๊ตฌ์ฑ๋ ๋ชจ๋ํฐ๋ง ์คํ์ด ํฌํจ๋์ด ์์ต๋๋ค. ์คํํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์. ๊ฐ์ ๊ธฐ๊ธฐ KubeVirt ๊ธฐ์ ์ด ์ฌ์ฉ๋์ด ๊ธฐ์กด ๊ฐ์ ๋จธ์ ์ Kubernetes ์ปจํ ์ด๋์์ ์ง์ ์คํํ ์ ์์ผ๋ฉฐ, ํ๋์จ์ด Kubernetes ํด๋ฌ์คํฐ ๋ด์์ ๊ด๋ฆฌํ Kubernetes ํด๋ฌ์คํฐ๋ฅผ ์์ํ๊ธฐ ์ํ Cluster API์์ ํ์ํ ๋ชจ๋ ํตํฉ ๊ธฐ๋ฅ์ ์ด๋ฏธ ๊ฐ์ถ๊ณ ์์ต๋๋ค.
์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ :
- Kube-OVN์ด 0.13.0 ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
- KubeVirt CCM(ํด๋ผ์ฐ๋ ์ปจํธ๋กค๋ฌ ๊ด๋ฆฌ์)์ ๋ก์ง์ด ๊ฐ์ ๋์์ต๋๋ค. ์ด์ ํ๋ซํผ์ ํ ๋ํธ-Kubernetes์ ๋์ฑ ์์ ์ ์ธ ๋ฐธ๋ฐ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
- OIDC์ ์ฌ์ฉ์ ๊ถํ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
- ํด๋ฌ์คํฐ ๊ด๋ฆฌ์๋ฅผ ์ํ ๊ทธ๋ฃน์ด ์ถ๊ฐ๋์์ต๋๋ค.
- Grafana์ ์๋ฆผ ๋ฐ ๋์๋ณด๋๊ฐ โโ์์ ๋์์ต๋๋ค.
- ์ด์ NATS๋ ์ ํธ์คํธ๋ฆผ ๋ฐ ์ ์ก ๊ตฌ์ฑ์ ํ์ฑํํ ์ ์์ต๋๋ค.
- Terraform์ ์ฌ์ฉํ์ฌ ํ๋ซํผ API์ ์ํธ์์ฉํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
Cozystack 0.19์ ์ด์ ๋ฆด๋ฆฌ์ค์์๋ OIDC(OpenID Connect) ์ง์์ด ๋์
๋์์ผ๋, ์ฝ๋๋ฒ ์ด์ค ์์ ํ ์์
์ผ๋ก ์ธํด ์ด๋ฒ ๋ฆด๋ฆฌ์ค๋ ๋ณ๋์ ๋ฆด๋ฆฌ์ค๋ก ๋ฐํ๋์ง ์์์ต๋๋ค. ์ด์ Cozystack์๋ ๋ก์ปฌ ์ฌ์ฉ์๋ฅผ ์์ฑํ๊ณ ์ธ๋ถ OIDC ๊ณต๊ธ์์์ ํต์ ์ ๊ตฌ์ฑํ ์ ์๋ Cozy ์์ญ์ ์๋์ผ๋ก ๊ตฌ์ฑํ๋ Keycloak์ด ํจ๊ป ์ ๊ณต๋ฉ๋๋ค. ๊ฐ ํ
๋ํธ๋ง๋ค ๊ธฐ๋ณธ์ ์ผ๋ก 4๊ฐ์ ๊ทธ๋ฃน์ด ์ ๊ณต๋๋ฉฐ, ํ
๋ํธ ์ ํ๋ฆฌ์ผ์ด์
์์๋ Keycloak์ ํตํ ์ธ์ฆ์ ์ํด ๊ตฌ์ฑ๋ ์์ฑ๋ kubeconfig ํ์ผ์ ์๋์ผ๋ก ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค. Keycloak Operator๋ฅผ ๋์
ํ์ฌ "Keycloak as Code"๋ฅผ ๊ตฌ์ฑํ๋ ๊ธฐ๋ฅ์ด ์ ๊ณต๋ฉ๋๋ค. K8s ํด๋ฌ์คํฐ ๋ฐ ๋์๋ณด๋์์ Keycloak ํตํฉ์ ์๋์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
์ถ์ฒ : opennet.ru
