ํ๋ก์๋ฆฌ์ค gRPC ์๋น์ค๋ก Cloud Service Mesh ์ค์ ์ค๋น
Cloud Service Mesh ์ค์ ์๋ ์ฌ๋ฌ ๋จ๊ณ๊ฐ ํฌํจ๋ฉ๋๋ค. ์ด ๋ฌธ์์์๋ ํ๋ก์๋ฆฌ์ค gRPC ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ์ฌ Cloud Service Mesh ๊ตฌ์ฑ์ ์ค๋นํ๊ธฐ ์ํ ์๋ด์ธ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ ๋ํด ์ค๋ช ํฉ๋๋ค. ์ด ๋ฌธ์๋ ๋ถํ ๋ถ์ฐ API๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ์ ์ฉ๋ฉ๋๋ค. ํ์ง๋ง ์๋น์ค ๋ผ์ฐํ API๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ค๋ฅธ ๋จ๊ณ๋ ์ด ๋ฌธ์์ ๋ท ๋ถ๋ถ์ ๋์ค๋ ์ค์ ํ๋ก์ธ์ค ๊ณ์์ ๋์ด๋ ํ๋ซํผ๋ณ ๊ฐ์ด๋๋ก ์ค๋ช ํฉ๋๋ค.
์ด ๊ฐ์ด๋๋ฅผ ์ฝ๊ธฐ ์ ์ ํ๋ก์๋ฆฌ์ค gRPC ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก Cloud Service Mesh๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ฐ์๋ฅผ ์ ๊ณตํ๋ ๋ค์ ๋ฌธ์๋ฅผ ์์งํ์ธ์.
- Cloud Service Mesh ๊ฐ์
- ํ๋ก์๋ฆฌ์ค gRPC ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ Cloud Service Mesh ๊ฐ์
- Cloud Service Mesh ์ ๊ท ์๋น์ค ๋ผ์ฐํ API ๊ฐ์
๊ธฐ๋ณธ ์๊ฑด
๋ค์ ์์ ์ ์๋ฃํ์ฌ ํ๊ฒฝ์ ์ค๋นํฉ๋๋ค.
- ๊ฒฐ์ ๋ฅผ ์ฌ์ฉํ๋๋ก ์ค์ ํฉ๋๋ค.
- ํ์ ๊ถํ์ ๋ถ์ฌํฉ๋๋ค.
- ํ๋ก์ ํธ์ Traffic Director API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
- ์๋น์ค ๊ณ์ ์ Traffic Director API์ ์ก์ธ์คํ๊ธฐ์ ์ถฉ๋ถํ ๊ถํ์ด ์๋์ง ํ์ธํฉ๋๋ค.
๋ค์ ์น์ ์์๋ ๊ฐ ์์ ์ ๋ํ ์๋ด๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ฒฐ์ ์ฌ์ฉ ์ค์
Google Cloud ํ๋ก์ ํธ์ ๊ฒฐ์ ๊ฐ ์ฌ์ฉ ์ค์ ๋์ด ์๋์ง ํ์ธํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ํ๋ก์ ํธ์ ๊ฒฐ์ ์ฌ์ฉ ์ค์ , ์ฌ์ฉ ์ค์ง, ๋ณ๊ฒฝ์ ์ฐธ์กฐํ์ธ์.
ํ์ IAM ๊ถํ ๋ถ์ฌ
VM ์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ณ Cloud Service Mesh ๊ตฌ์ฑ์ ์ํด ๋คํธ์ํฌ๋ฅผ ์์ ํ ์ ์๋ ์ถฉ๋ถํ Identity and Access Management(IAM) ๊ถํ์ด ์์ด์ผ ํฉ๋๋ค. Cloud Service Mesh๋ฅผ ์ฌ์ฉ ์ค์ ํ๋ ค๋ ํ๋ก์ ํธ์ ์์ ์ ๋๋ ํธ์ง์ ํ๋ก์ ํธ ์ญํ (roles/owner
๋๋ roles/editor
)์ด ์์ผ๋ฉด ์ฌ๋ฐ๋ฅธ ๊ถํ์ด ์๋์ผ๋ก ๋ถ์ฌ๋ฉ๋๋ค.
๊ทธ๋ ์ง ์์ผ๋ฉด ๋ค์ ํ์ ํ์๋ ๋ชจ๋ IAM ์ญํ ์ด ์์ด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์ญํ ์ด ์๋ ๊ฒฝ์ฐ Compute Engine IAM ๋ฌธ์์ ์ค๋ช ๋ ๋๋ก ๊ด๋ จ ๊ถํ๋ ๊ฐ๊ฒ ๋ฉ๋๋ค.
์์ | ํ์ํ ์ญํ |
---|---|
์๋น์ค ๊ณ์ ์ IAM ์ ์ฑ ์ค์ | ์๋น์ค ๊ณ์ ๊ด๋ฆฌ์ ( roles/iam.serviceAccountAdmin ) |
Cloud Service Mesh๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค. | ์๋น์ค ์ฌ์ฉ๋ ๊ด๋ฆฌ์ ( roles/serviceusage.serviceUsageAdmin ) |
๋คํธ์ํฌ, ์๋ธ๋ท, ๋ถํ ๋ถ์ฐ๊ธฐ ๊ตฌ์ฑ์์ ๋ง๋ค๊ธฐ | Compute ๋คํธ์ํฌ ๊ด๋ฆฌ์ ( roles/compute.networkAdmin ) |
๋ฐฉํ๋ฒฝ ๊ท์น ์ถ๊ฐ ๋ฐ ์ญ์ | Compute ๋ณด์ ๊ด๋ฆฌ์ ( roles/compute.securityAdmin ) |
์ธ์คํด์ค ๋ง๋ค๊ธฐ | Compute ์ธ์คํด์ค ๊ด๋ฆฌ์ ( roles/compute.instanceAdmin ) |
ํฌ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ GKE ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค๊ณ ์์ ํฉ๋๋ค. | ํด๋ฌ์คํฐ ๊ด๋ฆฌ์
( roles/container.clusterAdmin ) |
์๋น์ค ๊ณ์ ์ ๋ํ ์ก์ธ์ค๋ฅผ ํ์ฉํฉ๋๋ค. | ์๋น์ค ๊ณ์ ์ฌ์ฉ์
( roles/iam.serviceAccountUser |
Compute Engine VM์ https://www.googleapis.com/auth/cloud-platform
๋ฒ์๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ํ๋ก์๋ฆฌ์ค gRPC๋ฅผ ์ฌ์ฉํ๋ ๋ฐฐํฌ ๋ฌธ์ ํด๊ฒฐ์ ์ฐธ์กฐํ์ธ์.
xDS v3๋ฅผ ์ฌ์ฉํ์ฌ Cloud Service Mesh gRPC ํด๋ผ์ด์ธํธ์ ์ฌ์ฉ๋๋ ์๋น์ค ๊ณ์ ์ roles/trafficdirector.client
์ญํ ์ ๋ถ์ฌํฉ๋๋ค.
Traffic Director API ์ฌ์ฉ ์ค์
์ฝ์
Google Cloud ์ฝ์์์ ํ๋ก์ ํธ์ API ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
API ๋ฐ ์๋น์ค ๊ฒ์ ํ๋์
Traffic Director
๋ฅผ ์ ๋ ฅํฉ๋๋ค.๊ฒ์๊ฒฐ๊ณผ ๋ชฉ๋ก์์ Traffic Director API๋ฅผ ํด๋ฆญํฉ๋๋ค. Traffic Director API๊ฐ ํ์๋์ง ์์ผ๋ฉด Traffic Director API๋ฅผ ์ฌ์ฉ ์ค์ ํ๋ ๋ฐ ํ์ํ ๊ถํ์ด ์๋ ๊ฒ์ ๋๋ค.
Traffic Director API ํ์ด์ง์์ ์ฌ์ฉ ์ค์ ์ ํด๋ฆญํฉ๋๋ค.
gcloud
๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
gcloud services enable trafficdirector.googleapis.com
Traffic Director API์ ์ก์ธ์คํ๋๋ก ์๋น์ค ๊ณ์ ์ฌ์ฉ ์ค์
๋ฐ์ดํฐ ์์ญ์ ์ค์ ํ๊ณ Cloud Service Mesh์ ์ฐ๊ฒฐํ๋ฉด xDS ํด๋ผ์ด์ธํธ๊ฐ trafficdirector.googleapis.com
xDS ์๋ฒ์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ์ด๋ฌํ xDS ํด๋ผ์ด์ธํธ๋ xDS ์๋ฒ์ ์๋น์ค ๊ณ์ ID๋ฅผ ์ ๊ณตํ์ฌ ๋ฐ์ดํฐ ํ๋ ์ธ๊ณผ ์ปจํธ๋กค ํ๋ ์ธ ๊ฐ์ ํต์ ์ด ์ ๋๋ก ์น์ธ๋๋๋ก ํฉ๋๋ค.
Compute Engine VM์ ๊ฒฝ์ฐ xDS ํด๋ผ์ด์ธํธ๋ VM์ ํ ๋น๋ ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํฉ๋๋ค.
๋ค์ ๊ถํ์ด ํ์ํฉ๋๋ค. xDS ํ๋กํ ์ฝ ๋ฒ์ ์ ๋ถํธ์คํธ๋ฉ ํ์ผ์ ์ง์ ๋ฉ๋๋ค. xDS v3๋ง ์ง์๋ฉ๋๋ค.
xDS v2๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ xDS v3๋ก ๋ง์ด๊ทธ๋ ์ด์ ํด์ผ ํฉ๋๋ค. ๋ง์ด๊ทธ๋ ์ด์ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ xDS v2์์ xDS v3๋ก ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฐธ์กฐํ์ธ์.
xDS v3์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ gRPC ์ ํ๋ฆฌ์ผ์ด์
์์ ์ฌ์ฉํ๋ ์๋น์ค ๊ณ์ ์ trafficdirector.networks.reportMetrics
๋ฐ trafficdirector.networks.getConfigs
๊ถํ์ด ์์ด์ผ ํฉ๋๋ค. ๋ ๊ถํ์ ๋ชจ๋ ๋ํํ๋ IAM Cloud Service Mesh ํด๋ผ์ด์ธํธ ์ญํ (roles/trafficdirector.client
)์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ IAM ๋ฐ ๊ด๋ฆฌ์ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํ๋ก์ ํธ๋ฅผ ์ ํํฉ๋๋ค.
์ญํ ์ ์ถ๊ฐํ ์๋น์ค ๊ณ์ ์ ์ฐพ์ต๋๋ค.
- ์๋น์ค ๊ณ์ ์ด ๊ตฌ์ฑ์ ๋ชฉ๋ก์ ์์ง ์๋ ๊ฒฝ์ฐ ์ด๋ ํ ์ญํ ๋ ํ ๋น๋์ง ์์ ๊ฒ์ ๋๋ค. ์ถ๊ฐ๋ฅผ ํด๋ฆญํ๊ณ ์๋น์ค ๊ณ์ ์ ์ด๋ฉ์ผ ์ฃผ์๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- ์๋น์ค ๊ณ์ ์ด ๊ตฌ์ฑ์ ๋ชฉ๋ก์ ์ด๋ฏธ ์๋ ๊ฒฝ์ฐ ๊ธฐ์กด ์ญํ ์ด ์๋ ๊ฒ์ ๋๋ค. ์๋น์ค ๊ณ์ ์ ์ ํํ๊ณ ์ญํ ํญ์ ํด๋ฆญํฉ๋๋ค.
์ญํ ์ ํ์ฅํฉ๋๋ค. ์์ ํ๋ ค๋ ์๋น์ค ๊ณ์ ์ ๋ํด
์์ ์ ํด๋ฆญํฉ๋๋ค.๊ธฐํ > Cloud Service Mesh ํด๋ผ์ด์ธํธ ์ญํ ์ ์ ํํฉ๋๋ค.
์๋น์ค ๊ณ์ ์ ์ญํ ์ ์ ์ฉํ๋ ค๋ฉด ์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
gcloud
๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
gcloud projects add-iam-policy-binding PROJECT \ --member serviceAccount:SERVICE_ACCOUNT_EMAIL \ --role=roles/trafficdirector.client
๋ค์์ ๋ฐ๊ฟ๋๋ค.
PROJECT
:gcloud config get-value project
๋ฅผ ์ ๋ ฅํฉ๋๋ค.SERVICE_ACCOUNT_EMAIL
: ์๋น์ค ๊ณ์ ๊ณผ ์ฐ๊ฒฐ๋ ์ด๋ฉ์ผ์ ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์๋น์ค ๋ฉ์์์ ํ๋ก์๋ฆฌ์ค gRPC ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ ํ๋ ๋ค์ ์ ์ฒด ์ ์ฐจ๋ฅผ ๋ฐ๋ฆ ๋๋ค.
- gRPC ํด๋ผ์ด์ธํธ๋ฅผ ์ต์ ํจ์น๊ฐ ์ ์ฉ๋ ์ต์ ๋ฒ์ ์ gRPC๋ก ์ ๋ฐ์ดํธํฉ๋๋ค.
- ์ฑ๋์ ๋ง๋ค๊ณ Cloud Service Mesh ๋ถํธ์คํธ๋ฉ ํ์ผ์ ์ง์ ํ ๋ ํด๋ผ์ด์ธํธ์ gRPC ์ด๋ฆ ๋ฆฌ์กธ๋ฒ ์คํด์ ์ ๋ฐ์ดํธํฉ๋๋ค.
- Cloud Service Mesh ๋ฐ Cloud Load Balancing ๋ฆฌ์์ค๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
์ด ๋ฌธ์์์๋ ์ฒ์ ๋ ๋จ๊ณ๋ฅผ ์๋ฃํ๊ธฐ ์ํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. 3๋จ๊ณ์์ ์ฌ์ฉํ๋ ๊ตฌ์ฑ ํ๋ก์ธ์ค๋ ๋ฐฐํฌ์ Compute Engine VM์ ์ฌ์ฉํ๋์ง ๋๋GKE ๋คํธ์ํฌ ์๋ํฌ์ธํธ ๊ทธ๋ฃน(NEG)์ ์ฌ์ฉํ๋์ง์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
์ง์๋๋ gRPC ๋ฒ์ ๋ฐ ์ธ์ด
gRPC๋ ์คํ์์ค ํ๋ก์ ํธ์ด๋ฉฐ ์ถ์ ๋ฒ์ ์ง์์ gRPC FAQ์์ ์ค๋ช ๋ฉ๋๋ค. ์๋ ค์ง ๋ณด์ ์ทจ์ฝ์ ์ ํด๊ฒฐํ ์ ์๋๋ก ์ต์ gRPC ๋ฒ์ ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ํ ์ ํ๋ฆฌ์ผ์ด์ ์ด Cloud Service Mesh์์ ์ง์ํ๋ ์ต์ ๊ธฐ๋ฅ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. gRPC์ ๋ค์ํ ๊ตฌํ ๋ฐ ๋ฒ์ ์์ ์ง์๋๋ ์๋น์ค ๋ฉ์ ๊ธฐ๋ฅ์ด GitHub์ ๋์ด๋ฉ๋๋ค. Cloud Service Mesh ๋ฐ ํ๋ก์๋ฆฌ์ค gRPC ์๋น์ค์์ ์ง์ํ๋ gRPC ์ธ์ด ๋ฐ ๊ธฐ๋ฅ์ Cloud Service Mesh ๊ธฐ๋ฅ์ ์ฐธ์กฐํ์ธ์.
Cloud Service Mesh๋Google Cloud Platform ์๋น์ค ์ฝ๊ด์ ๋ฐ๋ผ gRPC์ ํ์ฌ ๋ฐ ์ง์๋๋ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ ์งํ๊ณ 1๋ ๋ฏธ๋ง์ gRPC ๋ฒ์ ๊ณผ ํธํ๋๋๋ก ๋ ธ๋ ฅํฉ๋๋ค.
gRPC ํด๋ผ์ด์ธํธ ์ ๋ฐ์ดํธ
์ ํ๋ฆฌ์ผ์ด์ ์ gRPC ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ํ ๊ธฐ๋ฅ์ ์ง์ํ๋ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ด์ ์น์ ์ ์ฐธ์กฐํ์ธ์.
xDS ์ด๋ฆ ๋ฆฌ์กธ๋ฒ๋ฅผ gRPC ์ ํ๋ฆฌ์ผ์ด์ ์ ์ข ์ ํญ๋ชฉ์ผ๋ก ์ถ๊ฐํฉ๋๋ค. Java ๋ฐ Go์ ์ธ์ด๋ณ ์๊ตฌ์ฌํญ์ ๋ค์ ์น์ ์ ๋์ ์์ต๋๋ค. ๋ค๋ฅธ ์ธ์ด์๋ ์ถ๊ฐ์ ์ธ ์๊ตฌ์ฌํญ์ด ์์ต๋๋ค.
์๋ฐ ์๊ตฌ์ฌํญ
์๋ฐ์์ Gradle์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ grpc-xds
์ข
์ ํญ๋ชฉ์ build.gradle
ํ์ผ์ ์ถ๊ฐํฉ๋๋ค. LATEST_GRPC_VERSION
์ gRPC์ ์ต์ ๋ฒ์ ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
dependencies { runtimeOnly 'io.grpc:grpc-xds:LATEST_GRPC_VERSION' }
Maven์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ pom.xml์ <dependencies>
์น์
์ ๋ค์์ ์ถ๊ฐํฉ๋๋ค. LATEST_GRPC_VERSION
์ gRPC์ ์ต์ ๋ฒ์ ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
<dependency> <groupId>io.grpc</groupId> <artifactId>grpc-xds</artifactId> <version>LATEST_GRPC_VERSION</version> <scope>runtime</scope> </dependency>
Go ์๊ตฌ์ฌํญ
Go๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ xds Go ํจํค์ง๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
xds
๋ฅผ ์ฌ์ฉํ๋๋ก gRPC ์ด๋ฆ ๋ฆฌ์กธ๋ฒ ์ค์
DNS๋ ๋ค๋ฅธ ๋ฆฌ์กธ๋ฒ ์คํค๋ง๊ฐ ์๋ ๋์ URI์์ xds
์ด๋ฆ ๋ณํ ์คํด์ ์ฌ์ฉํ๋๋ก gRPC ์ ํ๋ฆฌ์ผ์ด์
์ ์ค์ ํ๊ฑฐ๋ ๋ณ๊ฒฝํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด gRPC ์ฑ๋์ ๋ง๋ค ๋ ๋์ ์ด๋ฆ์ xds:///
ํ๋ฆฌํฝ์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค.
gRPC ํด๋ผ์ด์ธํธ์ ๋ถํ ๋ถ์ฐ์ ์ฑ๋ ๋จ์๋ก ์ด๋ฃจ์ด์ง๋๋ค.
Cloud Service Mesh ๊ตฌ์ฑ์์ ๋์ URI์ ์ฌ์ฉ๋๋ ์๋น์ค ์ด๋ฆ์ ํฌํจํฉ๋๋ค. ์๋ฅผ ๋ค์ด Java์์๋ ์๋น์ค ์ด๋ฆ์ด helloworld
์ธ ์ด ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ๋์ ๋ง๋ญ๋๋ค.
ManagedChannelBuilder.forTarget("xds:///helloworld[:PORT_NUMBER]")
๋ถํธ์คํธ๋ฉ ํ์ผ ๋ง๋ค๊ธฐ ๋ฐ ๊ตฌ์ฑ
xds
๋ฆฌ์กธ๋ฒ ์คํด์ gRPC ์ ํ๋ฆฌ์ผ์ด์
์ Cloud Service Mesh์ ์ฐ๊ฒฐํ์ฌ ๋์ ์๋น์ค์ ๊ตฌ์ฑ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋๋ก ์ง์ํฉ๋๋ค. ๋ฐ๋ผ์ ๋ค์์ ์ํํ์ธ์.
- ๋ค์ ์ํ์์์ ๊ฐ์ด ๋ถํธ์คํธ๋ฉ ํ์ผ์ ๋ง๋ญ๋๋ค. ์ด ํ์ผ์ gRPC์ xDS ์๋ฒ(Cloud Service Mesh)์ ์ฐ๊ฒฐํ์ฌ ํน์ ์๋น์ค์ ๊ตฌ์ฑ์ ๊ฐ์ ธ์ค๋๋ก ์ง์ํฉ๋๋ค.
- ๋ถํธ์คํธ๋ฉ ํ์ผ ์ด๋ฆ์ ํ๊ฒฝ ๋ณ์์ ๊ฐ์ผ๋ก ์ฌ์ฉํ๋
GRPC_XDS_BOOTSTRAP
์ด๋ผ๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ ์ํฉ๋๋ค.
์ค์ ์๋ด์๋ ๋ถํธ์คํธ๋ฉ ํ์ผ์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ์์๊ฐ ์์ต๋๋ค. ํธ์๋ฅผ ์ํด ์ต์ ๋ฒ์ ์ Cloud Service Mesh gRPC ๋ถํธ์คํธ๋ฉ ์์ฑ๊ธฐ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Cloud Service Mesh์ ์ฐ๊ฒฐํ๋ ๋ฐ ํ์ํ ์ ๋ณด๊ฐ ๋ค์ด ์๋ ๋ถํธ์คํธ๋ฉ ํ์ผ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํจ๊ป ํฌํจ๋์ด์ผ ํฉ๋๋ค. ์ํ ๋ถํธ์คํธ๋ฉ ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
{ "xds_servers": [ { "server_uri": "trafficdirector.googleapis.com:443", "channel_creds": [ { "type": "google_default" } ], "server_features": ["xds_v3"] } ], "node": { "id": "projects/123456789012/networks/default/nodes/b7f9c818-fb46-43ca-8662-d3bdbcf7ec18", "metadata": { "TRAFFICDIRECTOR_NETWORK_NAME": "default" }, "locality": { "zone": "us-central1-a" } } }
๋ค์ ํ์์ ๋ถํธ์คํธ๋ฉ ํ์ผ์ ํ๋๋ฅผ ์ค๋ช ํฉ๋๋ค.
ํ๋ | ๊ฐ ๋ฐ ์ค๋ช |
---|---|
xds_servers |
xDS ์๋ฒ ๋ชฉ๋ก์ ๋๋ค. gRPC๋ ๋ชฉ๋ก์ ์ฒซ ๋ฒ์งธ ํญ๋ชฉ๋ง ์ฌ์ฉํฉ๋๋ค. |
server_uri |
1๊ฐ ์ด์ ์ง์ ํฉ๋๋ค. gRPC๋ xds_servers ๋ชฉ๋ก์ ์ฒซ ๋ฒ์งธ xDS ์๋ฒ์๋ง ์ฐ๊ฒฐ์ ์๋ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ trafficdirector.googleapis.com:443 ์
๋๋ค. |
channel_creds |
xDS ์๋ฒ์์ ์ฌ์ฉํ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด์ ๋๋ค. |
type |
google_default ๊ฐ์ ์ฌ์ฉํฉ๋๋ค. ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ ํ๋ฆฌ์ผ์ด์
๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด ์๋ ๋ฐฉ์์ ์ฐธ์กฐํ์ธ์.
|
server_features |
xDS v3 ์ง์๊ณผ ๊ฐ์ ์๋ฒ์์ ์ง์ํ๋ ๊ธฐ๋ฅ์ ๋ชฉ๋ก์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ ๋น์ด ์์ต๋๋ค. |
node |
xDS ์๋ฒ์ ์ฐ๊ฒฐํ๋ ํด๋ผ์ด์ธํธ์ ๋ํ ์ ๋ณด์ ๋๋ค. |
id |
projects/PROJECT_NUMBER/networks/NETWORK_NAME/nodes/ID
|
metadata |
xDS ์๋ฒ ๊ด๋ จ ์ ๋ณด์ ๋๋ค. |
TRAFFICDIRECTOR_NETWORK_NAME |
ํ๋๊ฐ ๋น์ด ์๊ฑฐ๋ ์ง์ ๋์ง ์์ผ๋ฉด ๊ฐ์ด default ๋ก ์ค์ ๋ฉ๋๋ค. |
locality |
gRPC ํด๋ผ์ด์ธํธ๊ฐ ์คํ๋๋ Google Cloud ์์ญ์ ๋๋ค. |
์ค์ ํ๋ก์ธ์ค ๊ณ์ํ๊ธฐ
์ด ๋ฌธ์์ ์ค๋ช ๋ ๊ธฐ๋ณธ ์๊ฑด์ ์๋ฃํ ํ ๋ค์ ๋ฌธ์ ์ค ํ๋๋ฅผ ์งํํฉ๋๋ค.
- Cloud Service Mesh GKE ๋ฐ ํ๋ก์๋ฆฌ์ค gRPC ์๋น์ค ์ค์ ์ ๊ณ์ ์งํํฉ๋๋ค.
- Cloud Service Mesh Compute Engine ๋ฐ ํ๋ก์๋ฆฌ์ค gRPC ์๋น์ค ์ค์ ์ ๊ณ์ ์งํํฉ๋๋ค.
- Cloud Service Mesh GKE Kubernetes Gateway API ์ค์ ๊ฐ์ด๋๋ฅผ ๊ณ์ ์งํํฉ๋๋ค. Gateway API ๊ธฐ๋ฅ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฒ์ ์ ๋๋ค.