Connect ๊ฒ์ดํธ์จ์ด๋ก ๋ฑ๋ก๋ ํด๋ฌ์คํฐ์ ์ฐ๊ฒฐ
Google Cloud ์ Fleet์ Google Cloud์ ํด๋ฌ์คํฐ๋ฅผ ๋ฑ๋กํ์ฌ ํจ๊ป ๊ด๋ฆฌํ ์ ์๋ Kubernetes ํด๋ฌ์คํฐ ๋ฐ ๊ธฐํ ๋ฆฌ์์ค์ ๋ ผ๋ฆฌ์ ๊ทธ๋ฃน์ ๋๋ค. Connect ๊ฒ์ดํธ์จ์ด๋ Fleet ์ฑ๋ฅ์ ๊ธฐ๋ฐ์ผ๋ก ๋น๋๋๋ฏ๋ก GKE Enterprise ์ฌ์ฉ์๋ ํด๋ฌ์คํฐ๊ฐ Google Cloud, ๊ธฐํ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋ ๋๋ ์จํ๋ ๋ฏธ์ค์ ์๋์ง์ ๊ด๊ณ์์ด ๊ฐ๋จํ๊ณ , ์ผ๊ด๋๋ฉฐ ์์ ํ ๋ฐฉ์์ผ๋ก Fleet ๊ตฌ์ฑ์ ํด๋ฌ์คํฐ์ ์ฐ๊ฒฐํ๊ณ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉฐ ๋ชจ๋ ํด๋ฌ์คํฐ ๊ฐ์ DevOps ํ๋ก์ธ์ค๋ฅผ ๋์ฑ ์ฝ๊ฒ ์๋ํํ ์ ์์ต๋๋ค.
์ด ๊ฐ์ด๋์์๋ ๊ธฐ๋ณธ์ ์ธ Fleet ๊ฐ๋
๋ฐ Fleet์ ํด๋ฌ์คํฐ ๋ฑ๋ก์ ๋ํด ์ด๋ฏธ ์ต์ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์ต์ํ์ง ์๋ค๋ฉด Fleet ๊ด๋ฆฌ ๊ฐ์, Fleet ๋ง๋ค๊ธฐ ๊ฐ์, ์ฐ๊ฒฐ๋ ๊ฐ์ด๋์์ ์์ธํ ๋ด์ฉ์ ํ์ธํ๋ฉด ๋ฉ๋๋ค. ๋ํ kubectl
, client-go
(์๋ํ๋ฅผ ์ํด ๊ฒ์ดํธ์จ์ด๋ฅผ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ), ์ญํ ๊ธฐ๋ฐ ์ก์ธ์ค ์ ์ด(RBAC), ํต์ฌ Kubernetes ๋ฆฌ์์ค๋ฅผ ๋น๋กฏํ Kubernetes ๋๊ตฌ ๋ฐ ๊ฐ๋
์๋ ์ต์ํด์ผ ํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก Connect ๊ฒ์ดํธ์จ์ด๋ ์ง์ ID ์ ํด๋ฅผ ์ฌ์ฉํ๋ ํ์ฌ ID ๊ณต๊ธ์ ์ฒด๋ฅผ ์ง์ํ๊ณ GKE Identity Service๋ฅผ ํตํ ๊ทธ๋ฃน ๊ธฐ๋ฐ ์ธ์ฆ์ ์ง์ํ๋ Google ID๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ์ ์ธ์ฆํฉ๋๋ค. GKE Identity Service์ ๋ํด ์์ธํ ์์๋ณด๊ฑฐ๋ ์ด๋ฅผ ๋ ๋ฆฝํ ์๋ ํํฐ ์ธ์ฆ ์ต์ ์ผ๋ก ์ฌ์ฉํ๋ ค๋ฉด GKE Identity Service ์๊ฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
Connect ๊ฒ์ดํธ์จ์ด๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
ํด๋ฌ์คํฐ๊ฐ ์ฌ๋ฌ ํด๋ผ์ฐ๋ ๋ฐ ํ์ด๋ธ๋ฆฌ๋ ํ๊ฒฝ์์ ์คํ๋ ๋๋ ์ํฌ๋ก๋๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ๋ง์ ์ด๋ ค์์ด ์์ต๋๋ค. ํด๋ฌ์คํฐ๊ฐ ์๋ก ๋ค๋ฅธ Virtual Private Cloud(VPC)์์ ์คํ๋ ์ ์๊ณ ์ฌ๋ฌ ID ๊ณต๊ธ์ ์ฒด๊ฐ ์ฌ์ฉ๋์ด ์ฐ๊ฒฐ, ์ธ์ฆ, ์น์ธ์ด ๋ ๋ณต์กํด์ง ์ ์์ต๋๋ค. ์ผ๋ถ ๊ฒฝ์ฐ์๋ ์ด๋ฌํ ํ๊ฒฝ ๊ฐ์ ์กด์ฌํ๋ ํด๋ฌ์คํฐ๋ฅผ ์ฐพ๋ ๊ฒ๋ ์ด๋ ค์ด ์ผ์ผ ์ ์์ต๋๋ค.
Connect ๊ฒ์ดํธ์จ์ด๋ก ๋ค์์ ์ฝ๊ฒ ์ํํ ์ ์์ต๋๋ค.
- ๊ฐ๋จํ ์ฟผ๋ฆฌ๋ฅผ ํตํด Google Cloud, ๋ค๋ฅธ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋, ์จํ๋ ๋ฏธ์ค์ ์ด๋ค ํด๋ฌ์คํฐ๊ฐ ์กด์ฌํ๊ณ Fleet์ ์ด๋ค ํด๋ฌ์คํฐ๊ฐ ๋ฑ๋ก๋์๋์ง ํ์ธํฉ๋๋ค.
- Google Cloud ์ฝ์์ ๋ฑ๋ก๋ GKE ํด๋ฌ์คํฐ๋ฅผ ํ์ํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ธํ๋ผ์ ๋์ผํ ์ธํ๋ผ๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ ํด๋ฌ์คํฐ์ ์ฐ๊ฒฐํฉ๋๋ค.
- Google Cloud ์๋น์ค์์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ ID๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฆํฉ๋๋ค.
- ์น์ธ: Fleet์ ๋ฑ๋ก๋ ๋ชจ๋ ํด๋ฌ์คํฐ์์ ์ผ๊ด๋๊ฒ ์น์ธํฉ๋๋ค.
๊ฒ์ดํธ์จ์ด๋ Google Cloud ID๋ฅผ ์ธ์ฆํ๊ณ Connect ์๋น์ค๋ฅผ ํตํด ํด๋ฌ์คํฐ์ API ์๋ฒ์ ๋ํ ์ฐ๊ฒฐ์ ์ ๊ณตํฉ๋๋ค.
kubectl
๊ณผ ๊ฐ์ kubeconfig
๋ฅผ ํ์ฉํ๋ ๋ช
๋ น์ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ดํธ์จ์ด๋ฅผ ํตํด ์ง์ ํด๋ฌ์คํฐ์ ์ํธ์์ฉํ ์ ์์ต๋๋ค. ๋ํ ๋น๋ ํ์ดํ๋ผ์ธ ๋ฐ ๊ธฐํ DevOps ์๋ํ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ดํธ์จ์ด๋ฅผ ์ฝ๊ฒ ํ์ฉํ ์ ์์ต๋๋ค. Cloud Build์ ํตํฉ ํํ ๋ฆฌ์ผ์์ ์ด ๋ฐฉ๋ฒ์ ์คํ ๋ฐฉ๋ฒ ์์๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
Connect ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ Google Cloud ์ฝ์์ Google Cloud ID๋ก Google Cloud ์ธ๋ถ์ ์๋ ๋ฑ๋ก๋ ํด๋ฌ์คํฐ์ ์ฐ๊ฒฐํ ์๋ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด Google Cloud ์ฝ์์์ ํด๋ฌ์คํฐ ์์ ์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
์๋ ๋ฐฉ์
์ฌ๊ธฐ์์๋ ์ ์ ํ ์ธ์ฆ ๋ฐ ์น์ธ์ด ๊ตฌ์ฑ๋ ํ CI/CD ํ์ดํ๋ผ์ธ๊ณผ ๊ฐ์ด ์ผ๋ฐ์ ์ธ ์ฌ์ฉ์ ๋๋ ์๋น์ค๊ฐ Connect ๊ฒ์ดํธ์จ์ด๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ํํ๋ ํ๋ฆ์ ๋ณด์ฌ์ค๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฌ์ฉ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ธ์.
์ฌ์ฉ์๋ ์๋น์ค์์ Google Cloud CLI๋ฅผ ์ฌ์ฉํ์ฌ Fleet ๋ฉค๋ฒ์ญ ๋ฆฌ์์ค๋ฅผ ๋์ดํ์ฌ ํด๋ฌ์คํฐ๋ฅผ ๊ฒ์ํฉ๋๋ค.
gcloud container fleet memberships list
์ฌ์ฉ์๋ ์๋น์ค์์ Google Cloud CLI๋ฅผ ์ฌ์ฉํ์ฌ ์ ํํ ํด๋ฌ์คํฐ์ ์ฐ๊ฒฐํ๋ ๋ฐ ํ์ํ Connect ๊ฒ์ดํธ์จ์ด ๊ด๋ จ
kubeconfig
๋ฅผ ๊ฐ์ ธ์ต๋๋ค.gcloud container fleet memberships get-credentials membership-name
GKE์์ gcloud CLI ์ฌ์ฉ์ ์ด๋ฏธ ์ต์ํ ๊ฒฝ์ฐ ์ด๋ Google Cloud ๊ณ์ ์ ์ฌ์ฉํ์ฌ
gcloud container clusters get-credentials
๋ฅผ ์คํํ๋ ๊ฒ๊ณผ ๋น์ทํ๋ฉฐ, ์น์ธ๋ ๊ฒฝ์ฐ ๋ฑ๋ก๋์๊ณ ํ๋ก์ ํธ์ Fleet ๋ด์์ ์ฐ๊ฒฐ๋ ๋ชจ๋ ํด๋ฌ์คํฐ์ ์ก์ธ์คํ ์ ์๊ฒ ํด์ค๋๋ค.์ฌ์ฉ์ ๋๋ ์๋น์ค๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์ด๋ก๋ํ
kubeconfig
ํ์ผ์ ์ฌ์ฉํ์ฌkubectl
๋๋client-go
์์ ํ๋ ๊ฒ๊ณผ ๊ฐ์ด ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.- ์ฌ์ฉ์/์๋น์ค๋ Connect ๊ฒ์ดํธ์จ์ด์์ ์ธ์ฆ๋๋ฉฐ ๊ฒ์ดํธ์จ์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ถํ์ด ์๋์ง ํ์ธํฉ๋๋ค.
- ์์ฒญ์ Connect ์๋น์ค ๋ฐ Connect ์์ด์ ํธ๋ฅผ ํตํด ํด๋นํ๋ Kubernetes API ์๋ฒ๋ก ์ ๋ฌ๋ฉ๋๋ค.
- Kubernetes API ์๋ฒ๊ฐ ์์ฒญ์ ์น์ธํ๋ฉฐ, ์ด๋ฅผ ์ํด์๋ Connect ์์ด์ ํธ๊ฐ ์ฌ์ฉ์ ๋๋ ์๋น์ค๋ฅผ ๊ฐ์ฅํ๋๋ก ์น์ธ๋์ด์ผ ํ๊ณ , ์ฌ์ฉ์ ๋๋ ์๋น์ค๊ฐ ์ํ๋ ์์ฒญ์ ์ํํ๋๋ก ์น์ธ๋์ด์ผ ํฉ๋๋ค.
Google ๊ทธ๋ฃน ์ง์
์ด์ ์น์ ์์ ์ค๋ช ํ ํ์ค ํ๋ฆ์์ ์ฌ์ฉ์ ์์ฒญ์ ๊ฐ๋ณ ID๋ฅผ ๊ธฐ์ค์ผ๋ก ์น์ธ๋ฉ๋๋ค. ํ์ง๋ง ๋๋ค์์ ๊ฒฝ์ฐ Google ๊ทธ๋ฃน์ค ๋ฉค๋ฒ์ญ์ ๊ธฐ์ค์ผ๋ก ์ฌ์ฉ์๋ฅผ ์น์ธํ๋ ๊ฒ์ด ์ ์ฉํฉ๋๋ค. ๊ทธ๋ฃน ๋ฉค๋ฒ์ญ์ ๊ธฐ์ค์ผ๋ก ์น์ธํ๋ฉด ๊ณ์ ๋ง๋ค ๋ณ๋์ ์น์ธ์ ์ค์ ํ ํ์๊ฐ ์์ผ๋ฏ๋ก ์ ์ฑ ์ ๋ณด๋ค ๊ฐ๋จํ๊ณ ๊ฐํธํ๊ฒ ๊ด๋ฆฌํ๊ณ ๊ฐ์ฌํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์๋ฅผ ๋ค์ด ์ฌ์ฉ์๊ฐ ํ์ ๊ฐ์ ํ๊ฑฐ๋ ํํดํ ๋ ํด๋ฌ์คํฐ์์ ์ง์ ๊ฐ๋ณ ์ฌ์ฉ์๋ฅผ ์ถ๊ฐ/์ญ์ ํ ํ์ ์์ด ํ์ ํด๋ฌ์คํฐ ์ก์ธ์ค ๊ถํ์ ๊ฐํธํ๊ฒ ๊ณต์ ํ ์ ์์ต๋๋ค. GKE Identity Service๋ฅผ ์ฌ์ฉํ ์ถ๊ฐ ์ค์ ์ ํตํด Connect ๊ฒ์ดํธ์จ์ด์์ ์ฌ์ฉ์์ ๋ํ Google ๊ทธ๋ฃน ๋ฉค๋ฒ์ญ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ด ๊ธฐ๋ฅ์ ์๋ ๋ฐฉ์๊ณผ ์ค์ ๋ฐฉ๋ฒ์ Google ๊ทธ๋ฃน์ค๋ฅผ ์ฌ์ฉํ์ฌ Connect ๊ฒ์ดํธ์จ์ด ์ค์ ์ ์ฐธ์กฐํ์ธ์.
์ฐ๊ฒฐ๋ ํด๋ฌ์คํฐ๋ ๋ค๋ฅธ GKE Enterprise ํ๊ฒฝ์์ ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ค๋ฉด Cloud Customer Care ๋๋ Connect ๊ฒ์ดํธ์จ์ดํ์ ๋ฌธ์ํ์ธ์.
์๋ ํํฐ ID ์ง์
Connect ๊ฒ์ดํธ์จ์ด๋ Google Workspace ์ฌ์ฉ์ ๋ฐ ๊ทธ๋ฃน์ ์ง์ํ๋ ๊ฒ ์ธ์๋ Azure Active Directory ๋ฐ Okta์ ๊ฐ์ ํ์ฌ ID๋ฅผ ์ฌ์ฉํ ์น์ธ์ ์ง์ํฉ๋๋ค. ์ง์ ID ์ ํด๋ฅผ ์ฌ์ฉํ๋ฉด Identity and Access Management๋ฅผ ํตํด ์ธ๋ถ ID ๊ณต๊ธ์ ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ์ธ๋ ฅ(์ง์, ํํธ๋, ์ฉ์ญ ์ง์๊ณผ ๊ฐ์ ์ฌ์ฉ์ ๊ทธ๋ฃน)์ ์ธ์ฆํ๊ณ ์น์ธํ ์ ์์ผ๋ฏ๋ก ์ฌ์ฉ์๊ฐ Connect ๊ฒ์ดํธ์จ์ด์ ๊ฐ์Google Cloud ์๋น์ค์ ์ก์ธ์คํ ์ ์์ต๋๋ค. GKE ID Service๋ฅผ ์ฌ์ฉํ ์ถ๊ฐ ์ค์ ์ ํตํด ์ฌ์ฉ์์ ์๋ ํํฐ ๊ทธ๋ฃน ๋ฉค๋ฒ์ญ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋๋ก Connect ๊ฒ์ดํธ์จ์ด๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
Connect ๊ฒ์ดํธ์จ์ด์ ์๋ ํํฐ ID ๊ธฐ๋ฅ์ Anthos(GKE Enterprise) ๋ฒ์ 1.13 ์ด์์ VMware์ฉ, ๋ฒ ์ด๋ฉํ์ฉ Google Distributed Cloud ๋ฐฐํฌ์์ ์ง์๋ฉ๋๋ค. ์ฐ๊ฒฐ๋ ํด๋ฌ์คํฐ์ ๊ฒฝ์ฐ Anthos 1.16 ์ด์์์ ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด ๊ธฐ๋ฅ์ ์๋ ๋ฐฉ์๊ณผ ์ค์ ๋ฐฉ๋ฒ์ ์๋ ํํฐ ID๋ฅผ ์ฌ์ฉํ์ฌ Connect ๊ฒ์ดํธ์จ์ด ์ค์ ์ ์ฐธ์กฐํ์ธ์.
์ํ๋ ๊ฒฝ์ฐ, ํด๋น ๋ฌธ์์ ์๋ด์ ๋ฐ๋ผ GKE Identity Service๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฒด์ ์ผ๋ก ํ์ฌ ์ธ์ฆ์ ์ค์ ํ ์ ์์ต๋๋ค.
์ง์ฐ ์๊ฐ
๊ฒ์ดํธ์จ์ด๋ฅผ ํตํ ์์ฒญ์ ์ด ์ง์ฐ ์๊ฐ์ Connect ๊ฒ์ดํธ์จ์ด ์๋น์ค์์ Connect ์์ด์ ํธ๊น์ง์ RTT(์๋ณต ์๊ฐ)์ ํด๋ฌ์คํฐ ๋ด์์ ์์ฒญ ์คํ ์๊ฐ์ผ๋ก ๊ตฌ๋ถํ ์ ์์ต๋๋ค. RTT๋ก ์ธํ ์ถ๊ฐ ์ง์ฐ ์๊ฐ์ p95<500๋ฐ๋ฆฌ์ด ๋ฐ p99<1์ด์
๋๋ค. ๋๋ถ๋ถ์ kubectl
๋ช
๋ น์ด๋ ์ฌ๋ฌ ๊ฐ์ ๋ค์ํ ์์ฒญ์ ์ํํ๊ณ , ๊ฐ ์์ฒญ์ ์ฌ์ฉ์์๊ฒ ์๋ต์ ๋ ๋๋งํ๊ธฐ ์ ์ ์๋ณต ์๊ฐ์ด ํ์ํฉ๋๋ค.
๋ค์ ๋จ๊ณ
- ์ฌ์ฉ์ ๋ฐ ์๋น์ค ๊ณ์ ์ Connect ๊ฒ์ดํธ์จ์ด ์ค์ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
- Connect ๊ฒ์ดํธ์จ์ด์ ๋ํ Google ๊ทธ๋ฃน์ค ์ง์์ ์ค์ ํ๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
- Connect ๊ฒ์ดํธ์จ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฑ๋ก๋ ํด๋ฌ์คํฐ์ ์ฐ๊ฒฐํ๊ณ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
- Cloud Build์ ํตํฉ ํํ ๋ฆฌ์ผ์์ DevOps ์๋ํ์ ์ผ๋ถ๋ก Connect ๊ฒ์ดํธ์จ์ด๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋ฅผ ์ฐธ์กฐํ์ธ์.