ํ๋ก์๋ฆฌ์ค gRPC ๋ฐฐํฌ ๋ฌธ์ ํด๊ฒฐ
์ด ๋ฌธ์์์๋ Cloud Service Mesh๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์๋ฆฌ์ค gRPC ์๋น์ค๋ฅผ ๋ฐฐํฌํ ๋ ๊ตฌ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋๋ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. Client State Discovery Service(CSDS) API๋ฅผ ์ฌ์ฉํ์ฌ Cloud Service Mesh ๋ฌธ์ ๋ฅผ ์กฐ์ฌํ๋ ๋ฐฉ๋ฒ์ Cloud Service Mesh ํด๋ผ์ด์ธํธ ์ํ ์ดํด๋ฅผ ์ฐธ์กฐํ์ธ์.
gRPC ์ ํ๋ฆฌ์ผ์ด์ ์ RPC ์คํจ ๋ฌธ์ ํด๊ฒฐ
gRPC ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฆฌ๋ชจํธ ํ๋ก์์ ธ ์ฝ(RPC) ์คํจ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ ๊ฐ์ง ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
RPC๊ฐ ์คํจํ๋ฉด ๋ฐํ๋ ์ํ๋ฅผ ๊ฒํ ํฉ๋๋ค. ๋ณดํต, ์ํ์๋ RPC ์คํจ์ ์์ธ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋๋ ์ถฉ๋ถํ ์ ๋ณด๊ฐ ํฌํจ๋ฉ๋๋ค.
gRPC์ ์ํ ์ค๋ฅ ์ฒ๋ฆฌ๋ gRPC ์ค๋ฅ ์ฒ๋ฆฌ ๋ฌธ์์ ์ค๋ช ๋์ด ์์ต๋๋ค.
gRPC-์๋ฐ์์์ ์ํ ์ค๋ฅ ์ฒ๋ฆฌ ์์ ์์ธ๋ก ์ธํด ๋ค๋ฅธ ์์ธ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฉฐ ์ด ๊ฒฝ์ฐ ์ถ๊ฐ ์ ๋ณด๊ฐ ์ ๊ณต๋ ์ ์์ต๋๋ค.
gRPC ๋ฐํ์์์ ๋ก๊น ์ ์ฌ์ฉ ์ค์ ํฉ๋๋ค. RPC ๋ฐํ ์ํ๋ก ๋ค์ ์ ํ๋์ง ์์ ์ ์๋ ์คํจ๋ฅผ ์ดํดํ๊ธฐ ์ํด gRPC ๋ฐํ์ ๋ก๊ทธ๋ฅผ ๊ฒํ ํด์ผ ํ ๋๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด RPC๊ฐ ๊ธฐํ์ ์ด๊ณผํ์์ ๋ํ๋ด๋ ์ํ๋ก ์คํจํ๋ฉด ๋ก๊ทธ๋ฅผ ํตํด ๊ธฐํ ์ด๊ณผ๊ฐ ๋ฐ์ํ ๊ทผ๋ณธ์ ์ธ ์คํจ๋ฅผ ์ดํดํ ์ ์์ต๋๋ค.
gRPC์ ๋ค๋ฅธ ์ธ์ด ๊ตฌํ์๋ gRPC ๋ฐํ์์์ ๋ก๊น ์ ์ฌ์ฉ ์ค์ ํ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
์๋ฐ์์์ gRPC: gRPC๋ ๋ก๊น ์
java.util.logging
์ ์ฌ์ฉํฉ๋๋ค. gRPC ๋ฐํ์์์ ์ถฉ๋ถํ ์์ธ ๋ก๊น ์ ์ฌ์ฉ ์ค์ ํ๋ ค๋ฉดio.grpc.level
์FINE
์์ค์ผ๋ก ์ค์ ํฉ๋๋ค. ์๋ฐ์์ ๋ก๊น ์ ์ฌ์ฉ ์ค์ ํ๋ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ ํ์ผ์์ ๋ก๊น ๊ตฌ์ฑ์ ๋ก๋ํ๊ณ ๋ช ๋ น์ค ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ JVM์ ํ์ผ ์์น๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.# Create a file called logging.properties with the following contents: handlers=java.util.logging.ConsoleHandler io.grpc.level=FINE io.grpc.xds.level=FINEST java.util.logging.ConsoleHandler.level=ALL java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter # Pass the location of the file to JVM by using this command-line flag: -Djava.util.logging.config.file=logging.properties
xDS ๋ชจ๋์ ํน์ ํ ๋ก๊น ์ ์ฌ์ฉ ์ค์ ํ๋ ค๋ฉด
io.grpc.xds.level
์FINE
์ผ๋ก ์ค์ ํฉ๋๋ค. ์์ธํ ๋ก๊น ์ ๋ณด๋ ค๋ฉด ์์ค์FINER
๋๋FINEST
๋ก ์ค์ ํฉ๋๋ค.Go์์์ gRPC: ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์ฌ ๋ก๊น ์ ์ฌ์ฉํฉ๋๋ค.
GRPC_GO_LOG_VERBOSITY_LEVEL=99 GRPC_GO_LOG_SEVERITY_LEVEL=info
C++์์์ gRPC: C++์์ gRPC๋ก ๋ก๊น ์ ์ฌ์ฉ ์ค์ ํ๋ ค๋ฉด gRPC ๋ฌธ์ ํด๊ฒฐ์ ์๋ด๋ฅผ ์ฐธ์กฐํ์ธ์. xDS ๋ชจ๋๋ณ ๋ก๊น ์ ์ฌ์ฉ ์ค์ ํ๋ ค๋ฉด
xds_client
,xds_resolver
,cds_lb
,eds_lb
,priority_lb
,weighted_target_lb
,lrs_lb
์GRPC_TRACE
ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ ์ถ์ ๊ธฐ๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.Node.js์ gRPC: Node.js์์ gRPC๋ฅผ ์ฌ์ฉํ ๋ก๊น ์ ์ฌ์ฉ ์ค์ ํ๋ ค๋ฉด gRPC-JS ๋ฌธ์ ํด๊ฒฐ์ ์๋ด๋ฅผ ์ฐธ์กฐํ์ธ์. xDS ๋ชจ๋๋ณ ๋ก๊น ์ ์ฌ์ฉ ์ค์ ํ๋ ค๋ฉด
xds_client
,xds_resolver
,cds_balancer
,eds_balancer
,priority
,weighted_target
์GRPC_TRACE
ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ ์ถ์ ๊ธฐ๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
RPC ์ํ ๋๋ ๋ฐํ์ ๋ก๊ทธ์ ์ค๋ฅ์ ๋ฐ๋ผ ๋ฌธ์ ๊ฐ ๋ค์ ์นดํ ๊ณ ๋ฆฌ ์ค ํ๋์ ํด๋นํ ์ ์์ต๋๋ค.
Cloud Service Mesh์ ์ฐ๊ฒฐํ ์ ์์
์ฐ๊ฒฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ๋ค์์ ์๋ํด ๋ณด์ธ์.
- ๋ถํธ์คํธ๋ฉ ํ์ผ์ server_uri ๊ฐ์ด
trafficdirector.googleapis.com:443
์ธ์ง ํ์ธํฉ๋๋ค. - ํ๊ฒฝ ๋ณ์
GRPC_XDS_BOOTSTRAP
์ด ์ ์๋์ด ์๊ณ ๋ถํธ์คํธ๋ฉ ํ์ผ์ ๊ฐ๋ฆฌํค๋์ง ํ์ธํฉ๋๋ค. - gRPC ์ฑ๋์ ๋ง๋ค ๋ URI์
xds
์คํค๋ง๋ฅผ ์ฌ์ฉํ๋์ง ํ์ธํฉ๋๋ค. - Compute ์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ณ ํ๋ก์ ํธ์์ ๋คํธ์ํฌ๋ฅผ ์์ ํ๋ ๋ฐ ํ์ํ IAM ๊ถํ์ ๋ถ์ฌํ๋์ง ํ์ธํฉ๋๋ค.
- ์๋น์ค ๊ณ์ ์ด Traffic Director API์ ์ก์ธ์คํ๋๋ก ์ฌ์ฉ ์ค์ ๋์๋์ง ํ์ธํฉ๋๋ค. ํ๋ก์ ํธ์ Google Cloud ์ฝ์ API ๋ฐ ์๋น์ค์์ Traffic Director API์ ์ค๋ฅ๋ฅผ ํ์ธํฉ๋๋ค.
- ์๋น์ค ๊ณ์ ์ ์ฌ๋ฐ๋ฅธ ๊ถํ์ด ์๋์ง ํ์ธํฉ๋๋ค. VM ๋๋ pod์์ ์คํ๋๋ gRPC ์ ํ๋ฆฌ์ผ์ด์ ์ Compute Engine VM ํธ์คํธ ๋๋ Google Kubernetes Engine(GKE) ๋ ธ๋ ์ธ์คํด์ค์ ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํฉ๋๋ค.
Compute Engine VM ๋๋ GKE ํด๋ฌ์คํฐ์ API ์ก์ธ์ค ๋ฒ์๊ฐ Compute Engine API์ ๋ํ ์ ์ฒด ์ก์ธ์ค๋ฅผ ํ์ฉํ๋๋ก ์ค์ ๋์ด ์๋์ง ํ์ธํฉ๋๋ค. VM ๋๋ ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค ๋ ๋ค์์ ์ง์ ํ์ฌ ์ด๋ฅผ ์ํํฉ๋๋ค.
--scopes=https://www.googleapis.com/auth/cloud-platform
VM์์
trafficdirector.googleapis.com:443
์ ์ก์ธ์คํ ์ ์๋์ง ํ์ธํฉ๋๋ค. ์ก์ธ์ค ๋ฌธ์ ๊ฐ ์๋ค๋ฉด TCP ํฌํธ443
์ ํตํดtrafficdirector.googleapis.com
์ ๋ํ ์ก์ธ์ค๋ฅผ ์ฐจ๋จํ๋ ๋ฐฉํ๋ฒฝ์ด๋trafficdirector.googleapis.com
ํธ์คํธ ์ด๋ฆ์ DNS ํ์ธ ๋ฌธ์ ๊ฐ ์์ธ์ผ ์ ์์ต๋๋ค.
URI์ ์ง์ ๋ ํธ์คํธ ์ด๋ฆ์ ํ์ธํ ์ ์์
๋ก๊ทธ์ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํ์๋ ์ ์์ต๋๋ค.
[Channel<1>: (xds:///my-service:12400)] Failed to resolve name. status=Status{code=UNAVAILABLE, description=NameResolver returned no usable address. addrs=[], attrs={}
ํธ์คํธ ์ด๋ฆ ํ์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ๋ค์์ ์๋ํด ๋ณด์ธ์.
- ์ง์๋๋ gRPC ๋ฒ์ ๊ณผ ์ธ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์๋์ง ํ์ธํฉ๋๋ค.
- gRPC ์ฑ๋์ ๋ง๋ค๊ธฐ ์ํด URI์ ์ฌ์ฉ๋ ํฌํธ๊ฐ ๊ตฌ์ฑ์์ ์ฌ์ฉ๋๋ ์ ๋ฌ ๊ท์น์ ํฌํธ ๊ฐ๊ณผ ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค. ํฌํธ๊ฐ URI์ ์ง์ ๋์ง ์์ ๊ฒฝ์ฐ ์ ๋ฌ ๊ท์น๊ณผ ์ผ์นํ๋ ๋ฐ
80
๊ฐ์ด ์ฌ์ฉ๋ฉ๋๋ค. - gRPC ์ฑ๋์ ๋ง๋ค๊ธฐ ์ํด URI์ ์ฌ์ฉ๋ ํธ์คํธ ์ด๋ฆ๊ณผ ํฌํธ๊ฐ ๊ตฌ์ฑ์์ ์ฌ์ฉ๋ URL๋งต์ ํธ์คํธ ๊ท์น๊ณผ ์ ํํ๊ฒ ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค.
- ๋ ๊ฐ ์ด์์ URL ๋งต์์ ๋์ผํ ํธ์คํธ ๊ท์น์ผ๋ก ๊ตฌ์ฑ๋์ง ์์๋์ง ํ์ธํฉ๋๋ค.
- ์์ผ๋ ์นด๋๊ฐ ์ฌ์ฉ ์ค์ธ์ง ํ์ธํฉ๋๋ค.
*
์์ผ๋ ์นด๋ ๋ฌธ์๋ฅผ ํฌํจํ๋ ํธ์คํธ ๊ท์น์ ๋ฌด์๋ฉ๋๋ค.
์๋น์ค๋ฅผ ์ฌ์ฉํ ์ ์์ด RPC๊ฐ ์คํจํจ
์๋น์ค๋ฅผ ์ฌ์ฉํ ์ ์์ ๋ RPC ์คํจ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ๋ค์์ ์๋ํด ๋ณด์ธ์.
Google Cloud ์ฝ์์์ Cloud Service Mesh์ ์ ๋ฐ์ ์ธ ์ํ์ ๋ฐฑ์๋ ์๋น์ค ์ํ๋ฅผ ํ์ธํฉ๋๋ค.
- ์ฐ๊ฒฐ๋ ๋ผ์ฐํ ๊ท์น ๋งต ์ด์์ ์ฌ๋ฐ๋ฅธ URL ๋งต์ด ๋ฐฑ์๋ ์๋น์ค๋ฅผ ์ฐธ์กฐํ๋์ง ํ์ธํฉ๋๋ค. ์ด์ ํด๋ฆญํ์ฌ ํธ์คํธ ์ผ์น ๊ท์น์ ์ง์ ๋ ๋ฐฑ์๋ ์๋น์ค๊ฐ ์ฌ๋ฐ๋ฅธ์ง ํ์ธํฉ๋๋ค.
- ๋ฐฑ์๋ ์ด์์ ๋ฐฑ์๋ ์๋น์ค์ ์ฐ๊ฒฐ๋ ๋ฐฑ์๋๊ฐ ์ ์์ธ์ง ํ์ธํฉ๋๋ค.
- ๋ฐฑ์๋๊ฐ ๋น์ ์์ธ ๊ฒฝ์ฐ ํด๋น ๋ฐฑ์๋ ์๋น์ค๋ฅผ ํด๋ฆญํ๊ณ ์ฌ๋ฐ๋ฅธ ์ํ ํ์ธ์ด ๊ตฌ์ฑ๋์๋์ง ํ์ธํฉ๋๋ค. ์ํ ํ์ธ์ ์ผ๋ฐ์ ์ผ๋ก ๋ฐฉํ๋ฒฝ ๊ท์น์ด ์๋ชป๋์๊ฑฐ๋ ๋๋ฝ๋ ๊ฒฝ์ฐ ๋๋ VM๊ณผ ๋ฐฉํ๋ฒฝ ๊ท์น์์ ์ง์ ๋ ํ๊ทธ์ ๋ถ์ผ์น๋ก ์ธํด ์คํจํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ํ ํ์ธ ๋ง๋ค๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
gRPC ์ํ ํ์ธ์ด ์ ๋๋ก ์๋ํ๋ ค๋ฉด gRPC ๋ฐฑ์๋๊ฐ gRPC ์ํ ํ์ธ ํ๋กํ ์ฝ์ ๊ตฌํํด์ผ ํฉ๋๋ค. ์ด ํ๋กํ ์ฝ์ด ๊ตฌํ๋์ง ์์์ผ๋ฉด ๋์ TCP ์ํ ํ์ธ์ ์ฌ์ฉํฉ๋๋ค. HTTP, HTTPS ๋๋ HTTP/2 ์ํ ์ ๊ฒ์ gRPC ์๋น์ค์ ํจ๊ป ์ฌ์ฉํ์ง ๋ง์ธ์.
์ธ์คํด์ค ๊ทธ๋ฃน์ ์ฌ์ฉํ ๋ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ง์ ๋ ์ด๋ฆ์ด ์ง์ ๋ ํฌํธ๊ฐ ์ํ ํ์ธ์ ์ฌ์ฉ๋๋ ํฌํธ์ ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค. ๋คํธ์ํฌ ์๋ํฌ์ธํธ ๊ทธ๋ฃน(NEG)์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ GKE ์๋น์ค ์ฌ์์ ์ฌ๋ฐ๋ฅธ NEG ์ฃผ์์ด ์๊ณ ์ํ ํ์ธ์ด NEG ์ ๊ณต ํฌํธ๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑ๋์ด ์๋์ง ํ์ธํฉ๋๋ค.
์๋ํฌ์ธํธ ํ๋กํ ์ฝ์ด
GRPC
๋ก ๊ตฌ์ฑ๋์๋์ง ํ์ธํฉ๋๋ค.
๋ถํ ๋ถ์ฐ ์ ์ฑ ์ด ์ง์๋์ง ์์ผ๋ฏ๋ก RPC๊ฐ ์คํจํจ
๋ก๊ทธ์ ๋ค์ ์ค ํ๋์ ๊ฐ์ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํ์๋ ์ ์์ต๋๋ค.
error parsing "CDS" response: resource "cloud-internal-istio:cloud_mp_248715": unexpected lbPolicy RING_HASH in response
error={"description":"errors parsing CDS response", "file":"external/com_github_grpc_grpc/src/core/ext/xds/xds_api.cc", "file_line":3304, "referenced_errors":[{"description":"cloud-internal-istio:cloud_mp_248715: LB policy is not supported."
WARNING: RPC failed: Status{code=INTERNAL, description=Panic! This is a bug!, cause=java.lang.NullPointerException: provider at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:910) at io.grpc.internal.ServiceConfigUtil$PolicySelection.<init>(ServiceConfigUtil.java:418) at io.grpc.xds.CdsLoadBalancer2$CdsLbState.handleClusterDiscovered(CdsLoadBalancer2.java:190)
RING_HASH๊ฐ ์ฌ์ฉ ์ค์ธ ํด๋ผ์ด์ธํธ์ ํน์ ์ธ์ด ๋ฐ ๋ฒ์ ์์ ์ง์๋์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ์ง์๋๋ ๋ถํ ๋ถ์ฐ ์ ์ฑ ๋ง ์ฌ์ฉํ๋๋ก ๋ฐฑ์๋ ์๋น์ค ๊ตฌ์ฑ์ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ํด๋ผ์ด์ธํธ๋ฅผ ์ง์๋๋ ๋ฒ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋ํฉ๋๋ค. ์ง์๋๋ ํด๋ผ์ด์ธํธ ๋ฒ์ ์ ๊ฒฝ์ฐ gRPC์ xDS ๊ธฐ๋ฅ์ ์ฐธ์กฐํ์ธ์.
๋ณด์ ๊ตฌ์ฑ์ด ์์๋๋ก ์์ฑ๋์ง ์์
์๋น์ค ๋ณด์์ ๊ตฌ์ฑํ์ง๋ง ๋ณด์ ๊ตฌ์ฑ์ด ์์๋๋ก ์์ฑ๋์ง ์์ผ๋ฉด ๋ฐฐํฌ์ ์๋ํฌ์ธํธ ์ ์ฑ ์ ๊ฒ์ฌํฉ๋๋ค.
Cloud Service Mesh๋ ์๋ํฌ์ธํธ์ ์ผ์นํ๋ ์๋ํฌ์ธํธ ์ ์ฑ ๋ฆฌ์์ค๊ฐ 2๊ฐ ์ด์ ์๋ ์๋๋ฆฌ์ค๋ฅผ ์ง์ํ์ง ์์ต๋๋ค(์: ๊ฐ์ ๋ผ๋ฒจ๊ณผ ํฌํธ๊ฐ ์๋ ์ ์ฑ 2๊ฐ ๋๋ ์๋ํฌ์ธํธ ๋ผ๋ฒจ๊ณผ ์ผ์นํ๋ ์๋ก ๋ค๋ฅธ ๋ผ๋ฒจ์ด ์๋ ์ ์ฑ 2๊ฐ ์ด์). ์๋ํฌ์ธํธ ์ ์ฑ ์ ์๋ํฌ์ธํธ ๋ผ๋ฒจ๊ณผ ์ผ์น์ํค๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ EndpointPolicy.EndpointMatcher.MetadataLabelMatcher์ API๋ฅผ ์ฐธ์กฐํ์ธ์. ์ด๋ฌํ ๊ฒฝ์ฐ Cloud Service Mesh๋ ์ถฉ๋ํ๋ ์ ์ฑ ์์ ๋ณด์ ๊ตฌ์ฑ์ ์์ฑํ์ง ์์ต๋๋ค.
์๋น์ค ๋ฉ์ ์ํ ๋ฌธ์ ํด๊ฒฐ
์ด ๊ฐ์ด๋์์๋ Cloud Service Mesh ๊ตฌ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋๋ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋๋ถ๋ถ์ ์๋ํฌ์ธํธ๊ฐ ๋น์ ์์ธ ๊ฒฝ์ฐ์ Cloud Service Mesh ๋์
์๋ํฌ์ธํธ์ 99%๊ฐ ๋น์ ์์ด๋ฉด ์ ๋ขฐ์ฑ์ ๋์ด๊ธฐ ์ํด Cloud Service Mesh์์ ๋ฐ์ดํฐ ์์ญ์ ๊ตฌ์ฑํ์ฌ ์๋ํฌ์ธํธ์ ์ ์ ์ํ๋ฅผ ๋ฌด์ํฉ๋๋ค. ๋์ ๋ฐ์ดํฐ ์์ญ์ ๋ชจ๋ ์๋ํฌ์ธํธ ๊ฐ์ ํธ๋ํฝ์ ๋ถ์ฐํ๋ฉฐ ์ด๋ ์๋น ํฌํธ๊ฐ ๊ณ์ ์๋ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋น์ ์ ๋ฐฑ์๋๋ก ์ธํด ํธ๋ํฝ ๋ถ์ฐ์ด ์ต์ ํ๋์ง ์์
Cloud Service Mesh๋ ๋ฐฑ์๋ ์๋น์ค์ ์ฐ๊ฒฐ๋ HealthCheck
๋ฆฌ์์ค์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฑ์๋ ์ํ๋ฅผ ํ๊ฐํฉ๋๋ค.
Cloud Service Mesh๋ ์ด ์ ์ ์ํ๋ฅผ ์ฌ์ฉํ์ฌ ํธ๋ํฝ์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ ์ ๋ฐฑ์๋๋ก ๋ผ์ฐํ
ํฉ๋๋ค. ์ผ๋ถ ๋ฐฑ์๋๊ฐ ๋น์ ์์ด๋ฉด ํธ๋ํฝ์ด ๊ณ์ ์ฒ๋ฆฌ๋๋๋ผ๋ ๋ถํฌ๊ฐ ์ต์ ์ด ์๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํธ๋ํฝ์ด ์ ์ ๋ฐฑ์๋๊ฐ ๊ณ์ ์๋ ๋ฆฌ์ ์ ์ ๋ฌ๋ ์ ์์ง๋ง ํด๋ผ์ด์ธํธ์์ ๋ฉ๋ฆฌ ๋จ์ด์ ธ ์์ด ์ง์ฐ ์๊ฐ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ฐฑ์๋ ์ ์ ์ํ๋ฅผ ์๋ณํ๊ณ ๋ชจ๋ํฐ๋งํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
- Google Cloud Console์์ ๋ฐฑ์๋ ์๋น์ค ์ํ๋ฅผ ์ ๊ฒํฉ๋๋ค.
Cloud Service Mesh ์๋น์ค๋ก ์ด๋ HealthCheck
๋ฆฌ์์ค์ ๋ก๊น ์ด ์ฌ์ฉ ์ค์ ๋์ด ์๋์ง ํ์ธํฉ๋๋ค.- ์ํ ์ ๊ฒ์ด ์ต๊ทผ์ ์คํจํ๊ธฐ ์์ํ์ผ๋ฉด Cloud ๊ฐ์ฌ ๋ก๊ทธ๋ฅผ ๊ฒ์ฌํ์ฌ
HealthCheck
๊ตฌ์ฑ์ด ์ต๊ทผ์ ๋ณ๊ฒฝ๋์๋์ง ํ์ธํฉ๋๋ค.
๋ค์ ๋จ๊ณ
- Cloud Service Mesh ์๋ ๋ฐฉ์์ Cloud Service Mesh ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
- ํ๋ก์๋ฆฌ์ค gRPC ์๋น์ค์์ Cloud Service Mesh๊ฐ ์๋ํ๋ ๋ฐฉ์์ ํ๋ก์๋ฆฌ์ค gRPC ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ Cloud Service Mesh ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์ผ๋ฐ์ ์ธ Cloud Service Mesh ๋ฌธ์ ํด๊ฒฐ ์ ๋ณด๋ Envoy๋ฅผ ์ฌ์ฉํ๋ ๋ฐฐํฌ ๋ฌธ์ ํด๊ฒฐ์ ์ฐธ์กฐํ์ธ์.
- Cloud Service Mesh ์ฌ์ฉ์ ๋ํ ์ถ๊ฐ ์ง์์ ์ง์ ๋ฐ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.