Envoy ๋ฐฐํฌ ๋ฌธ์ ํด๊ฒฐ
์ด ๊ฐ์ด๋์์๋ Google API๋ฅผ ์ฌ์ฉํ์ฌ Cloud Service Mesh๋ฅผ ์คํํ ๋ Envoy ํด๋ผ์ด์ธํธ ๊ตฌ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋๋ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. Client State Discovery Service(CSDS) API๋ฅผ ์ฌ์ฉํ์ฌ Cloud Service Mesh ๋ฌธ์ ๋ฅผ ์กฐ์ฌํ๋ ๋ฐฉ๋ฒ์ Cloud Service Mesh ํด๋ผ์ด์ธํธ ์ํ ์ดํด๋ฅผ ์ฐธ์กฐํ์ธ์.
VM์ ์ค์น๋ Envoy ๋ฒ์ ํ์ธ
๋ค์ ์๋ด์ ๋ฐ๋ผ ๊ฐ์ ๋จธ์ (VM) ์ธ์คํด์ค์์ ์คํ ์ค์ธ Envoy ๋ฒ์ ์ ํ์ธํฉ๋๋ค.
Envoy ๋ฒ์ ์ ํ์ธํ๊ฑฐ๋ ๊ฒ์ฌํ๋ ค๋ฉด ๋ค์ ์ค ํ๋๋ฅผ ์ํํ๋ฉด ๋ฉ๋๋ค.
gce-service-proxy/proxy-version
๊ฒฝ๋ก์์ VM์ ๊ฒ์คํธ ์์ฑ์ ํ์ธํฉ๋๋ค.
gcloud compute --project cloud-vm-mesh-monitoring instances get-guest-attributes INSTANCE_NAME
--zone ZONEc --query-path=gce-service-proxy/proxy-versionNAMESPACE KEY VALUE gce-service-proxy proxy-version dc78069b10cc94fa07bb974b7101dd1b42e2e7bf/1.15.1-dev/Clean/RELEASE/BoringSSL
๋ค์๊ณผ ๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ Google Cloud Console์ VM ์ธ์คํด์ค ์ธ๋ถ์ ๋ณด Logging ํ์ด์ง์์ Cloud Logging ์ธ์คํด์ค ๋ก๊ทธ๋ฅผ ํ์ธํฉ๋๋ค.
resource.type="gce_instance" resource.labels.instance_id="3633122484352464042" jsonPayload.message:"Envoy version"
๋ค์๊ณผ ๊ฐ์ ์๋ต์ด ์์ ๋ฉ๋๋ค.
{ "insertId": "9zy0btf94961a", "jsonPayload": { "message": "Envoy Version: dc78069b10cc94fa07bb974b7101dd1b42e2e7bf/1.15.1-dev/Clean/RELEASE/BoringSSL", "localTimestamp": "2021-01-12T11:39:14.3991Z" }, "resource": { "type": "gce_instance", "labels": { "zone": "asia-southeast1-b", "instance_id": "3633122484352464042", "project_id": "cloud-vm-mesh-monitoring" } }, "timestamp": "2021-01-12T11:39:14.399200504Z", "severity": "INFO", "logName": "projects/cloud-vm-mesh-monitoring/logs/service-proxy-agent", "receiveTimestamp": "2021-01-12T11:39:15.407023427Z" }
SSH๋ฅผ ์ฌ์ฉํ์ฌ VM์ ์ฐ๊ฒฐํ๊ณ ๋ฐ์ด๋๋ฆฌ ๋ฒ์ ์ ํ์ธํฉ๋๋ค.
YOUR_USER_NAME@backend-mig-5f5651e1-517a-4269-b457-f6bdcf3d98bc-m3wt:~$ /usr/local/bin/envoy --version/usr/local/bin/envoy version: dc78069b10cc94fa07bb974b7101dd1b42e2e7bf/1.15.1-dev/Clean/RELEASE/BoringSSL
SSH๋ฅผ ์ฌ์ฉํ์ฌ VM ๋ฐ ๊ด๋ฆฌ ์ธํฐํ์ด์ค์ ๋ฃจํธ๋ก ์ฐ๊ฒฐํฉ๋๋ค.
root@backend-mig-5f5651e1-517a-4269-b457-f6bdcf3d98bc-m3wt:~# curl localhost:15000/server_info { "version": "dc78069b10cc94fa07bb974b7101dd1b42e2e7bf/1.15.1-dev/Clean/RELEASE/BoringSSL", "state": "LIVE", "hot_restart_version": "disabled", ... }
Envoy ๋ก๊ทธ ์์น
์ผ๋ถ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด Envoy ํ๋ก์ ๋ก๊ทธ๋ฅผ ์กฐ์ฌํด์ผ ํฉ๋๋ค.
SSH๋ฅผ ์ฌ์ฉํ์ฌ VM ์ธ์คํด์ค์ ์ฐ๊ฒฐํด ๋ก๊ทธ ํ์ผ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ๊ฒฝ๋ก๋ ๋ค์๊ณผ ๊ฐ์ ์ ์์ต๋๋ค.
/var/log/envoy/envoy.err.log
ํ๋ก์๊ฐ Cloud Service Mesh์ ์ฐ๊ฒฐ๋์ง ์์
ํ๋ก์๊ฐ Cloud Service Mesh์ ์ฐ๊ฒฐ๋์ง ์์ผ๋ฉด ๋ค์์ ์ํํฉ๋๋ค.
Envoy ํ๋ก์ ๋ก๊ทธ์
trafficdirector.googleapis.com
์ฐ๊ฒฐ ๊ด๋ จ ์ค๋ฅ๊ฐ ์๋์ง ํ์ธํฉ๋๋ค.๋ชจ๋ ํธ๋ํฝ์ Envoy ํ๋ก์๋ก ๋ฆฌ๋๋ ์ ํ๋๋ก
iptables
๋ฅผ ์ฌ์ฉํ์ฌnetfilter
๋ฅผ ์ค์ ํ ๊ฒฝ์ฐ ํ๋ก์๋ฅผ ์คํํ๋ ์ฌ์ฉ์(UID)๊ฐ ๋ฆฌ๋๋ ์ ์์ ์ ์ธ๋๋์ง ํ์ธํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํธ๋ํฝ์ด ์ง์์ ์ผ๋ก ํ๋ก์๋ก ๋๋์๊ฐ๋๋ค.ํ๋ก์ ํธ์ Cloud Service Mesh API๋ฅผ ์ฌ์ฉ ์ค์ ํ๋์ง ํ์ธํฉ๋๋ค. ํ๋ก์ ํธ์ API ๋ฐ ์๋น์ค์์ Cloud Service Mesh API ์ค๋ฅ๋ฅผ ์ฐพ์ต๋๋ค.
VM์ ๋ง๋ค ๋ ๋ค์์ ์ง์ ํ์ฌ VM์ API ์ก์ธ์ค ๋ฒ์๊ฐGoogle Cloud API์ ๋ํ ์ ์ฒด ์ก์ธ์ค๋ฅผ ํ์ฉํ๋๋ก ์ค์ ๋์ด ์๋์ง ํ์ธํฉ๋๋ค.
--scopes=https://www.googleapis.com/auth/cloud-platform
์๋น์ค ๊ณ์ ์ ์ฌ๋ฐ๋ฅธ ๊ถํ์ด ์๋์ง ํ์ธํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Traffic Director API์ ์ก์ธ์คํ๋๋ก ์๋น์ค ๊ณ์ ์ฌ์ฉ ์ค์ ์ ์ฐธ์กฐํ์ธ์.
VM์์
trafficdirector.googleapis.com:443
์ ์ก์ธ์คํ ์ ์๋์ง ํ์ธํฉ๋๋ค. ์ด ์ก์ธ์ค์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฐฉํ๋ฒฝ ํฌํธ๊ฐ TCP ํฌํธ443
์ ํตํดtrafficdirector.googleapis.com
์ ์ก์ธ์คํ์ง ๋ชปํ๋๋ก ํ๊ฑฐ๋trafficdirector.googleapis.com
ํธ์คํธ ์ด๋ฆ์ DNS ํ์ธ ๋ฌธ์ ์ผ ์ ์์ต๋๋ค.์ฌ์ด๋์นด ํ๋ก์์ Envoy๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ Envoy ์ถ์ ๋ฒ์ ์ด 1.24.9 ์ด์์ธ์ง ํ์ธํฉ๋๋ค.
Cloud Service Mesh๋ก ๊ตฌ์ฑ๋ ์๋น์ค์ ์ฐ๊ฒฐํ ์ ์์
Cloud Service Mesh๋ก ๊ตฌ์ฑ๋ ์๋น์ค์ ์ฐ๊ฒฐํ ์ ์์ผ๋ฉด ์ฌ์ด๋์นด ํ๋ก์๊ฐ ์คํ ์ค์ด๊ณ Cloud Service Mesh์ ์ฐ๊ฒฐํ ์ ์๋์ง ํ์ธํฉ๋๋ค.
Envoy๋ฅผ ์ฌ์ด๋์นด ํ๋ก์๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ์ด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๋ช ๋ น์ค์์ Envoy ํ๋ก์ธ์ค๊ฐ ์คํ ์ค์ธ์ง ํ์ธํฉ๋๋ค.
ps aux | grep envoy
Envoy์ ๋ฐํ์ ๊ตฌ์ฑ์ ๊ฒ์ฌํ์ฌ Cloud Service Mesh์์ ๋์ ๋ฆฌ์์ค๋ฅผ ๊ตฌ์ฑํ๋์ง ํ์ธํฉ๋๋ค. ๊ตฌ์ฑ์ ๋ณด๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
curl http://localhost:15000/config_dump
์ฌ์ด๋์นด ํ๋ก์์ ๋ํ ํธ๋ํฝ ๊ฐ๋ก์ฑ๊ธฐ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์๋์ง ํ์ธํฉ๋๋ค.
iptables
๋ก ๋ฆฌ๋๋ ์ ์ ์ค์ ํ๋ ค๋ฉดiptables
๋ช ๋ น์ด๋ฅผ ์คํํ ํ ์ถ๋ ฅ์grep
ํ์ฌ ๊ท์น์ด ์๋์ง ํ์ธํฉ๋๋ค.sudo iptables -t nat -S | grep ISTIO
๋ค์์ ๊ฐ์ IP ์ฃผ์(VIP)
10.0.0.1/32
๋ฅผ ๊ฐ๋ก์ฑ์ ํฌํธ15001
์ UID1006
์ผ๋ก ์ ๋ฌํ๋iptables
์ ์ถ๋ ฅ ์์์ ๋๋ค.-N ISTIO_IN_REDIRECT -N ISTIO_OUTPUT -N ISTIO_REDIRECT -A OUTPUT -p tcp -j ISTIO_OUTPUT -A ISTIO_IN_REDIRECT -p tcp -j REDIRECT --to-ports 15001 -A ISTIO_OUTPUT -m owner --uid-owner 1006 -j RETURN -A ISTIO_OUTPUT -d 127.0.0.1/32 -j RETURN -A ISTIO_OUTPUT -d 10.0.0.1/32 -j ISTIO_REDIRECT -A ISTIO_OUTPUT -j RETURN
Google Cloud Console์ ํตํด VM ์ธ์คํด์ค๋ฅผ ๋ง๋ ๊ฒฝ์ฐ ์ผ๋ถ IPv6 ๊ด๋ จ ๋ชจ๋์ ๋ค์ ์์ํ๊ธฐ ์ ์ ์ค์น ๋ฐ ์ ๊ณต๋์ง ์์ต๋๋ค. ์ด๋ก ์ธํด ์ข
์ ํญ๋ชฉ์ด ๋๋ฝ๋์ด iptables
๊ฐ ์คํจํฉ๋๋ค. ์ด ๊ฒฝ์ฐ VM์ ๋ค์ ์์ํ๊ณ ์ค์ ํ๋ก์ธ์ค๋ฅผ ๋ค์ ์คํํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค. Google Cloud CLI๋ฅผ ์ฌ์ฉํ์ฌ ๋ง๋ Compute Engine VM์์๋ ์ด๋ฌํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
Envoy ์ก์ธ์ค ๋ก๊น ์ด ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ ์๋น์ค์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
Cloud Service Mesh์ฉ Envoy ๋ถํธ์คํธ๋ฉ ์์ฑ ๊ตฌ์ฑ์ ์ค๋ช
๋๋ก TRAFFICDIRECTOR_ACCESS_LOG_PATH
๋ฅผ ์ฌ์ฉํ์ฌ Envoy ์ก์ธ์ค ๋ก๊ทธ๋ฅผ ๊ตฌ์ฑํ ๊ฒฝ์ฐ Envoy ํ๋ก์๋ฅผ ์คํํ๋ ์์คํ
์ฌ์ฉ์์๊ฒ ์ง์ ๋ ์ก์ธ์ค ๋ก๊ทธ ์์น์ ์์ฑํ ์ ์๋ ๊ถํ์ด ์๋์ง ํ์ธํฉ๋๋ค.
ํ์ํ ๊ถํ์ ์ ๊ณตํ์ง ์์ผ๋ฉด ๋ฆฌ์ค๋๊ฐ ํ๋ก์์์ ํ๋ก๊ทธ๋๋ฐ๋์ง ์์ผ๋ฉฐ Envoy ํ๋ก์ ๋ก๊ทธ์์ ๋ค์ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ํ์ธํ์ฌ ๊ฐ์งํ ์ ์์ต๋๋ค.
gRPC config for type.googleapis.com/envoy.api.v2.Listener rejected: Error adding/updating listener(s) TRAFFICDIRECTOR_INTERCEPTION_PORT: unable to open file '/var/log/envoy.log': Permission denied
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Envoy ์ฌ์ฉ์๊ฐ ์ก์ธ์ค ๋ก๊ทธ์ ์์ฑํ ์ ์๋๋ก ์ ํํ ํ์ผ์ ๊ถํ์ ๋ณ๊ฒฝํฉ๋๋ค.
๊ตฌ์ฑ ๋ฌธ์ ๋ฅผ ํ์ํ๋ Envoy ๋ก๊ทธ์ ์ค๋ฅ ๋ฉ์์ง
์ด ์น์ ์ ๋ถํ ๋ถ์ฐ API๋ฅผ ์ฌ์ฉํ๋ ๋ฐฐํฌ์ ์ ์ฉ๋ฉ๋๋ค.
Cloud Service Mesh ๊ตฌ์ฑ์ ๋ฌธ์ ๊ฐ ์์ผ๋ฉด Envoy ๋ก๊ทธ์ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํ์๋ ์ ์์ต๋๋ค.
warning envoy config StreamAggregatedResources gRPC config stream closed: 5, Cloud Service Mesh configuration was not found for network "VPC_NAME" in project "PROJECT_NUMBER".
warning envoy upstream StreamLoadStats gRPC config stream closed: 5, Cloud Service Mesh configuration was not found for network "VPC_NAME" in project "PROJECT_NUMBER".
warning envoy config StreamAggregatedResources gRPC config stream closed: 5, Requested entity was not found.
warning envoy upstream StreamLoadStats gRPC config stream closed: 5, Requested entity was not found.
Cloud Service Mesh configuration was not found.
๋ง์ง๋ง ์ค๋ฅ ๋ฉ์์ง(Traffic Director configuration was not found
)๋ ์ผ๋ฐ์ ์ผ๋ก Envoy๊ฐ Cloud Service Mesh์์ ๊ตฌ์ฑ์ ์์ฒญํ์ง๋ง ์ผ์นํ๋ ๊ตฌ์ฑ์ ์ฐพ์ ์ ์์์ ๋ํ๋
๋๋ค. Envoy๊ฐ Cloud Service Mesh์ ์ฐ๊ฒฐํ๋ฉด VPC ๋คํธ์ํฌ ์ด๋ฆ(์: my-network
)์ด ํ์๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ Cloud Service Mesh์์ INTERNAL_SELF_MANAGED
๋ถํ ๋ถ์ฐ ์คํด์ด ์๊ณ ๊ฐ์ VPC ๋คํธ์ํฌ ์ด๋ฆ์ ์ฐธ์กฐํ๋ ์ ๋ฌ ๊ท์น์ ์ฐพ์ต๋๋ค.
์ด ์ค๋ฅ๋ฅผ ๊ณ ์น๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
๋คํธ์ํฌ์ ๋ถํ ๋ถ์ฐ ์คํด
INTERNAL_SELF_MANAGED
๊ฐ ์๋ ์ ๋ฌ ๊ท์น์ด ์๋์ง ํ์ธํฉ๋๋ค. ์ ๋ฌ ๊ท์น์ VPC ๋คํธ์ํฌ ์ด๋ฆ์ ๊ธฐ๋กํฉ๋๋ค.Compute Engine์์ ์๋ํ๋ Envoy ๋ฐฐํฌ์ ํจ๊ป Cloud Service Mesh๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
--service-proxy:network
ํ๋๊ทธ์ ์ ๊ณต๋ ๊ฐ์ด ์ ๋ฌ ๊ท์น์ VPC ๋คํธ์ํฌ ์ด๋ฆ๊ณผ ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค.Compute Engine์์ ์๋ Envoy ๋ฐฐํฌ์ ํจ๊ป Cloud Service Mesh๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด Envoy ๋ถํธ์คํธ๋ฉ ํ์ผ์ ํ์ธํฉ๋๋ค.
TRAFFICDIRECTOR_NETWORK_NAME
๋ณ์ ๊ฐ์ด ์ ๋ฌ ๊ท์น์ VPC ๋คํธ์ํฌ ์ด๋ฆ๊ณผ ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค.- ํ๋ก์ ํธ ๋ฒํธ๊ฐ
TRAFFICDIRECTOR_GCP_PROJECT_NUMBER
๋ณ์์ ์ค์ ๋์ด ์๋์ง ํ์ธํฉ๋๋ค.
GKE์ ๋ฐฐํฌํ๊ณ ์๋ ์ธ์ ํฐ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ๊ฒฝ์ฐ ํ๋ก์ ํธ ๋ฒํธ์ VPC ๋คํธ์ํฌ ์ด๋ฆ์ด ์๋ Envoy ์ฝ์ ์ผ๋ก GKE ํฌ๋์ฉ Cloud Service Mesh ์ค์ ์ ์๋ด์ ๋ฐ๋ผ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์๋์ง ํ์ธํฉ๋๋ค.
Compute Engine ๋ฌธ์ ํด๊ฒฐ
์ด ์น์ ์์๋ Compute Engine์ Envoy ๋ฐฐํฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์๋ด๋ฅผ ์ ๊ณตํฉ๋๋ค.
Envoy ๋ฐ VM ๋ถํธ์คํธ๋ฉ ํ๋ก์ธ์ค ๋ฐ ์ถ๊ฐ ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ ์์ ์ ์ผ์์ ์ธ ์ฐ๊ฒฐ ๋ฌธ์ , ์ ์ฅ์ ์์, ๋ถํธ์คํธ๋ฉ ์คํฌ๋ฆฝํธ ๋ฐ VM ๊ธฐ๋ฐ ์์ด์ ํธ์ ๋ฒ๊ทธ, ์๊ธฐ์น ์์ ์ฌ์ฉ์ ์์ ๋ฑ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๋ก ์คํจํ ์ ์์ต๋๋ค.
๋ฌธ์ ํด๊ฒฐ์ ์ํ ์ปค๋ฎค๋์ผ์ด์ ์ฑ๋
Google Cloud ๋ ๋ถํธ์คํธ๋ฉ ํ๋ก์ธ์ค ๋ฐ VM์ ์๋ ๊ตฌ์ฑ์์์ ํ์ฌ ์ํ๋ฅผ ์ดํดํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ํต์ ์ฑ๋์ ์ ๊ณตํฉ๋๋ค.
๊ฐ์ ์ง๋ ฌ ํฌํธ ์ถ๋ ฅ ๋ก๊น
VM์ ์ด์์ฒด์ , BIOS, ๊ธฐํ ์์คํ ์์ค ํญ๋ชฉ์ ์ผ๋ฐ์ ์ผ๋ก ์ง๋ ฌ ํฌํธ์ ์ถ๋ ฅ์ ์์ฑํฉ๋๋ค. ์ด ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ ์์คํ ์ฅ์ , ๋ถํ ์คํจ, ์์ ๋ฌธ์ , ์ข ๋ฃ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ฐ ์ ์ฉํฉ๋๋ค
Compute Engine ๋ถํธ์คํธ๋ฉ ์์ด์ ํธ๋ ์ํ๋ ๋ชจ๋ ์์
์ ์์คํ
ํฌํธ 1์ ๊ธฐ๋กํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ธ์คํด์ค์ ๋ฉํ๋ฐ์ดํฐ ์๋ฒ, iptables
๊ตฌ์ฑ, Envoy ์ค์น ์ํ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ๊ธฐ๋ณธ ํจํค์ง ์ค์น๋ถํฐ ์์ํ๋ ์์คํ
์ด๋ฒคํธ๊ฐ ํฌํจ๋ฉ๋๋ค.
VM ๊ธฐ๋ฐ ์์ด์ ํธ๋ Envoy ํ๋ก์ธ์ค ์ํ, ์๋ก ๋ฐ๊ฒฌ๋ Cloud Service Mesh ์๋น์ค, VM ๋ฌธ์ ๋ฅผ ์กฐ์ฌํ ๋ ์ ์ฉํ ์ ์๋ ๊ธฐํ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ก๊น ํฉ๋๋ค.
Cloud Monitoring ๋ก๊น
์ง๋ ฌ ํฌํธ ์ถ๋ ฅ์ ๋ ธ์ถ๋ ๋ฐ์ดํฐ๋ Monitoring์ ๋ก๊น ๋ฉ๋๋ค. ์ด๋ Golang ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ๋ก๊ทธ๋ฅผ ๋ณ๋์ ๋ก๊ทธ๋ก ๋ด๋ณด๋ด ๋ ธ์ด์ฆ๋ฅผ ์ค์ ๋๋ค. ์ด ๋ก๊ทธ๋ ์ธ์คํด์ค ์์ค ๋ก๊ทธ์ด๋ฏ๋ก, ๋ค๋ฅธ ์ธ์คํด์ค ๋ก๊ทธ์ ๊ฐ์ด ๋์ผํ ํ์ด์ง์์ ์๋น์ค ํ๋ก์ ๋ก๊ทธ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
VM ๊ฒ์คํธ ์์ฑ
๊ฒ์คํธ ์์ฑ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ธ์คํด์ค์์ ์คํ๋๋ ๋์ ์ธ ์ ์๋ ํน์ ์ ํ์ ์ปค์คํ ๋ฉํ๋ฐ์ดํฐ์ ๋๋ค. ์ธ์คํด์ค์ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋๋ ์ฌ์ฉ์๋ ์ด๋ฌํ ๊ฒ์คํธ ์์ฑ ๋ฉํ๋ฐ์ดํฐ ๊ฐ์ ์ฝ๊ณ ์ฌ๊ธฐ์ ๋ฐ์ดํฐ๋ฅผ ์ธ ์ ์์ต๋๋ค.
Compute Engine Envoy ๋ถํธ์คํธ๋ฉ ์คํฌ๋ฆฝํธ์ VM ์์ด์ ํธ๋ ๋ถํธ์คํธ๋ฉ ์ฒ๋ฆฌ ๋ฐ Envoy์ ํ์ฌ ์ํ์ ๋ํ ์ ๋ณด์ ํจ๊ป ์์ฑ์ ๋
ธ์ถํฉ๋๋ค.
๋ชจ๋ ๊ฒ์คํธ ์์ฑ์ gce-service-proxy
๋ค์์คํ์ด์ค์ ๋
ธ์ถ๋ฉ๋๋ค.
gcloud compute instances get-guest-attributes INSTANCE_NAME \ --query-path=gce-service-proxy/ \ --zone=ZONE
๋ฌธ์ ๊ฐ ๋ฐ๊ฒฌ๋๋ฉด ๊ฒ์คํธ ์์ฑ bootstrap-status
๋ฐ bootstrap-last-failure
์ ๊ฐ์ ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค. FINISHED
์ด์ธ์ ๋ชจ๋ bootstrap-status
๊ฐ์ Envoy ํ๊ฒฝ์ด ์์ง ๊ตฌ์ฑ๋์ง ์์์์ ๋ํ๋
๋๋ค. bookstrap-last-failure
๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ๋ํ๋ผ ์ ์์ต๋๋ค.
์๋น์ค ํ๋ก์๊ฐ ์ฌ์ฉ ์ค์ ๋ ์ธ์คํด์ค ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ๋ง๋ VM์์ Cloud Service Mesh ์๋น์ค์ ์ฐ๊ฒฐํ ์ ์์
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
VM์ ์๋น์ค ํ๋ก์ ๊ตฌ์ฑ์์ ์ค์น๊ฐ ์๋ฃ๋์ง ์์๊ฑฐ๋ ์คํจํ์ ์ ์์ต๋๋ค. ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๊ตฌ์ฑ์์๊ฐ ์ ๋๋ก ์ค์น๋์๋์ง ํ์ธํฉ๋๋ค.
gcloud compute instances get-guest-attributes INSTANCE_NAME \ --query-path=gce-service-proxy/ \ --zone=ZONE
bootstrap-status
๊ฒ์คํธ ์์ฑ์ ๋ค์ ์ค ํ๋๋ก ์ค์ ๋ฉ๋๋ค.[none]
์ ์ค์น๊ฐ ์์ง ์์๋์ง ์์์์ ๋ํ๋ ๋๋ค. VM์ด ์์ง ๋ถํ ์ค์ผ ์๋ ์์ต๋๋ค. ์ ์ ํ ์ํ๋ฅผ ๋ค์ ํ์ธํด ๋ณด์ธ์.IN PROGRESS
๋ ์๋น์ค ํ๋ก์ ๊ตฌ์ฑ์์์ ์ค์น ๋ฐ ๊ตฌ์ฑ์ด ์์ง ์๋ฃ๋์ง ์์์์ ๋ํ๋ ๋๋ค. ํ๋ก์ธ์ค ์ ๋ฐ์ดํธ์ ๋ํ ์ํ ํ์ธ์ ๋ฐ๋ณตํฉ๋๋ค.FAILED
๋ ๊ตฌ์ฑ์์ ์ค์น ๋๋ ๊ตฌ์ฑ์ด ์คํจํ์์ ๋ํ๋ ๋๋ค.gce-service-proxy/bootstrap-last-failure1
์์ฑ์ ์ฟผ๋ฆฌํ์ฌ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ํ์ธํฉ๋๋ค.FINISHED
๋ ์ค์น ๋ฐ ๊ตฌ์ฑ ํ๋ก์ธ์ค๊ฐ ์ค๋ฅ ์์ด ์๋ฃ๋์์์ ๋ํ๋ ๋๋ค. ๋ค์ ์๋ด์ ๋ฐ๋ผ ํธ๋ํฝ ๊ฐ๋ก์ฑ๊ธฐ์ Envoy ํ๋ก์๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์๋์ง ํ์ธํฉ๋๋ค.
VM์ ํธ๋ํฝ ๊ฐ๋ก์ฑ๊ธฐ๊ฐ Cloud Service Mesh ๊ธฐ๋ฐ ์๋น์ค์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์ง ์์์ต๋๋ค. VM์ ๋ก๊ทธ์ธํ๊ณ
iptables
๊ตฌ์ฑ์ ํ์ธํฉ๋๋ค.gcloud compute ssh INSTANCE_NAME \ --zone=ZONE \ sudo iptables -L -t nat
๋ค์๊ณผ ๊ฐ์
SERVICE_PROXY_REDIRECT
ํญ๋ชฉ์SERVICE_PROXY_SERVICE_CIDRS
์ฒด์ธ์ ์ดํด๋ด ๋๋ค.Chain SERVICE_PROXY_SERVICE_CIDRS (1 references) target prot opt source destination ... SERVICE_PROXY_REDIRECT all -- anywhere 10.7.240.0/20
๊ฐ ์๋น์ค๋
destination
์ด์ ์ผ์นํ๋ IP ์ฃผ์๋ CIDR์ด ์์ด์ผ ํฉ๋๋ค. ๊ฐ์ IP ์ฃผ์(VIP)์ ๋ํ ํญ๋ชฉ์ด ์๋ ๊ฒฝ์ฐ ์ด๋ Cloud Service Mesh์์ Envoy ํ๋ก์ ๊ตฌ์ฑ์ ์ฑ์ฐ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์๊ฑฐ๋ VM ๊ธฐ๋ฐ ์์ด์ ํธ๊ฐ ์คํจํ ๊ฒ์ ๋๋ค.Envoy ํ๋ก์๊ฐ ์์ง Cloud Service Mesh์์ ๊ตฌ์ฑ์ ๋ฐ์ง ๋ชปํ์ต๋๋ค. VM์ ๋ก๊ทธ์ธํ์ฌ Envoy ํ๋ก์ ๊ตฌ์ฑ์ ํ์ธํฉ๋๋ค.
gcloud compute ssh INSTANCE_NAME \ --zone=ZONE \ sudo curl localhost:15000/config_dump
Cloud Service Mesh์์ ๋ฐ์ ๋ฆฌ์ค๋ ๊ตฌ์ฑ์ ๊ฒ์ฌํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
"dynamic_active_listeners": [ ... "filter_chains": [{ "filter_chain_match": { "prefix_ranges": [{ "address_prefix": "10.7.240.20", "prefix_len": 32 }], "destination_port": 80 }, ... "route_config_name": "URL_MAP/PROJECT_NUMBER.td-routing-rule-1" ... ]
address_prefix
๋ Cloud Service Mesh ์๋น์ค์ ๊ฐ์ IP ์ฃผ์(VIP)์ ๋๋ค.td-routing-rule-1
์ด๋ผ๋ URL ๋งต์ ๊ฐ๋ฆฌํต๋๋ค. ์ฐ๊ฒฐํ๋ ค๋ ์๋น์ค๊ฐ ๋ฆฌ์ค๋ ๊ตฌ์ฑ์ ์ด๋ฏธ ํฌํจ๋์ด ์๋์ง ํ์ธํฉ๋๋ค.VM ๊ธฐ๋ฐ ์์ด์ ํธ๊ฐ ์คํ๋๊ณ ์์ง ์์ต๋๋ค. VM ๊ธฐ๋ฐ ์์ด์ ํธ๋ ์ Cloud Service Mesh ์๋น์ค๊ฐ ์์ฑ๋ ๋ ํธ๋ํฝ ๊ฐ๋ก์ฑ๊ธฐ๋ฅผ ์๋์ผ๋ก ๊ตฌ์ฑํฉ๋๋ค. ์์ด์ ํธ๊ฐ ์คํ๋๊ณ ์์ง ์์ผ๋ฉด ์ ์๋น์ค์ ๋ํ ๋ชจ๋ ํธ๋ํฝ์ด Envoy ํ๋ก์์ ํ์์์์ ์ฐํํ์ฌ VIP๋ก ๋ฐ๋ก ์ ๋ฌ๋ฉ๋๋ค.
๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ VM์ ์์ด์ ํธ ์ํ๋ฅผ ํ์ธํฉ๋๋ค.
gcloud compute instances get-guest-attributes INSTANCE_NAME \ --query-path=gce-service-proxy/ \ --zone=ZONE
VM ๊ธฐ๋ฐ ์์ด์ ํธ ์์ฑ์ ๊ฒ์ฌํฉ๋๋ค.
agent-heartbeat
์์ฑ์ ๊ฐ์๋ ์์ด์ ํธ๊ฐ ๋ง์ง๋ง์ผ๋ก ์์ ๋๋ ํ์ธ์ ์ํํ ์๊ฐ์ด ์์ต๋๋ค. ์ด ๊ฐ์ด 5๋ถ์ ์ด๊ณผํ๋ฉด ์์ด์ ํธ๊ฐ ์ค๋จ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ VM์ ๋ค์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.gcloud compute instance-groups managed recreate-instance
agent-last-failure
์์ฑ์ ์์ด์ ํธ์์ ๋ง์ง๋ง์ผ๋ก ๋ฐ์ํ ์ค๋ฅ๋ฅผ ๋ ธ์ถํฉ๋๋ค. ์ด๋ ๋ค์ ๋ฒ์ ์์ด์ ํธ๊ฐ ํด๋น ์ค๋ฅ๊ฐCannot reach the Cloud Service Mesh API server
์ธ์ง ํน์ ์๊ตฌ์ ์ธ ์ค๋ฅ์ธ์ง ํ์ธํ ๋ ํด๊ฒฐ๋๋ ์ผ์์ ์ธ ๋ฌธ์ ์ผ ์ ์์ต๋๋ค. ๋ช ๋ถ ๊ธฐ๋ค๋ฆฐ ํ์ ์ค๋ฅ๋ฅผ ๋ค์ ํ์ธํฉ๋๋ค.
์ํฌ๋ก๋ ํฌํธ์ ์ธ๋ฐ์ด๋ ํธ๋ํฝ ๊ฐ๋ก์ฑ๊ธฐ๊ฐ ๊ตฌ์ฑ๋์ด ์์ง๋ง VM ์ธ๋ถ์์๋ ํฌํธ์ ์ฐ๊ฒฐํ ์ ์์
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
VM์ ์๋น์ค ํ๋ก์ ๊ตฌ์ฑ์์ ์ค์น๊ฐ ์๋ฃ๋์ง ์์๊ฑฐ๋ ์คํจํ์ ์ ์์ต๋๋ค. ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๊ตฌ์ฑ์์๊ฐ ์ ๋๋ก ์ค์น๋์๋์ง ํ์ธํฉ๋๋ค.
gcloud compute instances get-guest-attributes INSTANCE_NAME \ --query-path=gce-service-proxy/ \ --zone=ZONE
bootstrap-status
๊ฒ์คํธ ์์ฑ์ ๋ค์ ์ค ํ๋๋ก ์ค์ ๋ฉ๋๋ค.[none]
์ ์ค์น๊ฐ ์์ง ์์๋์ง ์์์์ ๋ํ๋ ๋๋ค. VM์ด ์์ง ๋ถํ ์ค์ผ ์๋ ์์ต๋๋ค. ์ ์ ํ ์ํ๋ฅผ ๋ค์ ํ์ธํด ๋ณด์ธ์.IN PROGRESS
๋ ์๋น์ค ํ๋ก์ ๊ตฌ์ฑ์์์ ์ค์น ๋ฐ ๊ตฌ์ฑ์ด ์์ง ์๋ฃ๋์ง ์์์์ ๋ํ๋ ๋๋ค. ํ๋ก์ธ์ค ์ ๋ฐ์ดํธ์ ๋ํ ์ํ ํ์ธ์ ๋ฐ๋ณตํฉ๋๋ค.FAILED
๋ ๊ตฌ์ฑ์์ ์ค์น ๋๋ ๊ตฌ์ฑ์ด ์คํจํ์์ ๋ํ๋ ๋๋ค.gce-service-proxy/bootstrap-last-failure1
์์ฑ์ ์ฟผ๋ฆฌํ์ฌ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ํ์ธํฉ๋๋ค.FINISHED
๋ ์ค์น ๋ฐ ๊ตฌ์ฑ ํ๋ก์ธ์ค๊ฐ ์ค๋ฅ ์์ด ์๋ฃ๋์์์ ๋ํ๋ ๋๋ค. ๋ค์ ์๋ด์ ๋ฐ๋ผ ํธ๋ํฝ ๊ฐ๋ก์ฑ๊ธฐ์ Envoy ํ๋ก์๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์๋์ง ํ์ธํฉ๋๋ค.
VM์ ํธ๋ํฝ ๊ฐ๋ก์ฑ๊ธฐ๊ฐ ์ธ๋ฐ์ด๋ ํธ๋ํฝ์ ๋ง๊ฒ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์ง ์์์ต๋๋ค. VM์ ๋ก๊ทธ์ธํ๊ณ
iptables
๊ตฌ์ฑ์ ํ์ธํฉ๋๋ค.gcloud compute ssh INSTANCE_NAME \ --zone=ZONE \ sudo iptables -L -t nat
๋ค์๊ณผ ๊ฐ์
SERVICE_PROXY_IN_REDIRECT
ํญ๋ชฉ์SERVICE_PROXY_INBOUND
์ฒด์ธ์ ์ดํด๋ด ๋๋ค.Chain SERVICE_PROXY_INBOUND (1 references) target prot opt source destination ... SERVICE_PROXY_IN_REDIRECT tcp -- anywhere anywhere tcp dpt:mysql
service-proxy:serving-ports
์ ์ ์๋ ๊ฐ ํฌํธ์ ๋ํดdestination
์ด์ ์ผ์นํ๋ ํฌํธ๊ฐ ์์ด์ผ ํฉ๋๋ค. ํฌํธ ํญ๋ชฉ์ด ์๋ ๊ฒฝ์ฐ ๋ชจ๋ ์ธ๋ฐ์ด๋ ํธ๋ํฝ์ Envoy ํ๋ก์๋ฅผ ์ฐํํ์ฌ ์ด ํฌํธ๋ก ์ง์ ์ด๋ํฉ๋๋ค.์ด ํฌํธ ๋๋ ํน์ ํฌํธ๋ฅผ ์ ์ธํ ๋ชจ๋ ํฌํธ๋ก ํธ๋ํฝ์ ์ญ์ ํ๋ ๋ค๋ฅธ ๊ท์น์ด ์๋์ง ํ์ธํฉ๋๋ค.
Envoy ํ๋ก์๊ฐ ์์ง Cloud Service Mesh์์ ์ธ๋ฐ์ด๋ ํฌํธ ๊ตฌ์ฑ์ ๋ฐ์ง ๋ชปํ์ต๋๋ค. VM์ ๋ก๊ทธ์ธํ์ฌ Envoy ํ๋ก์ ๊ตฌ์ฑ์ ํ์ธํฉ๋๋ค.
gcloud compute ssh INSTANCE_NAME \ --zone=ZONE \ sudo curl localhost:15000/config_dump
Cloud Service Mesh์์ ๋ฐ์ ์ธ๋ฐ์ด๋ ๋ฆฌ์ค๋ ๊ตฌ์ฑ์ ์ฐพ์ต๋๋ค.
"dynamic_active_listeners": [ ... "filter_chains": [{ "filter_chain_match": { "prefix_ranges": [{ "address_prefix": "10.0.0.1", "prefix_len": 32 }], "destination_port": 80 }, ... "route_config_name": "inbound|default_inbound_config-80" ... ]
inbound
๋ก ์์ํ๋route_config_name
๋ ์ธ๋ฐ์ด๋ ํธ๋ํฝ ๊ฐ๋ก์ฑ๊ธฐ์ฉ์ผ๋ก ์์ฑ๋ ํน์ ์๋น์ค๋ฅผ ๋ํ๋ ๋๋ค. ์ฐ๊ฒฐํ๋ ค๋ ํฌํธ๊ฐdestination_port
์ ๋ฆฌ์ค๋ ๊ตฌ์ฑ์ ์ด๋ฏธ ํฌํจ๋์ด ์๋์ง ํ์ธํฉ๋๋ค.
์ฐ๊ฒฐ์์ ์๋ฒ ์ฐ์ ํ๋กํ ์ฝ์ ์ฌ์ฉํ ๋ ๋ฐ์ํ๋ ๋ฌธ์
MySQL๊ณผ ๊ฐ์ ์ผ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ฒ๊ฐ ์ฒซ ๋ฒ์งธ ํจํท์ ์ ์กํ๋ ํ๋กํ ์ฝ์ ์ฌ์ฉํฉ๋๋ค. ์ฆ, ์ต์ด ์ฐ๊ฒฐ ์์ ์๋ฒ๋ ์ฒซ ๋ฒ์งธ ๋ฐ์ดํธ๋ฅผ ๋ณด๋ ๋๋ค. ์ด๋ฌํ ํ๋กํ ์ฝ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์ 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
๊ตฌ์ฑ์ด ์ต๊ทผ์ ๋ณ๊ฒฝ๋์๋์ง ํ์ธํฉ๋๋ค.
๋ค์ ๋จ๊ณ
- ํ๋ก์๋ฆฌ์ค gRPC ์๋น์ค๋ฅผ ๋ฐฐํฌํ ๋ ๊ตฌ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ํ๋ก์๋ฆฌ์ค gRPC๋ฅผ ์ฌ์ฉํ๋ ๋ฐฐํฌ ๋ฌธ์ ํด๊ฒฐ์ ์ฐธ์กฐํ์ธ์.
- Cloud Service Mesh ์ฌ์ฉ์ ๋ํ ์ถ๊ฐ ์ง์์ ์ง์ ๋ฐ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.