Istio ืืื ืึท ืืึทืงืืืขื ืืขืฆืืึทื ืคึฟืึทืจ ืงืึทื ืขืงืืื ื, ืกืืงืืืจืื ื ืืื ืืึธื ืืืึธืจืื ื ืคืื ืื ืืขืจืืขืืืืื ืึทืคึผืืึทืงืืืฉืึทื ื. Istio ื ืืฆื ืึท ืคืึทืจืฉืืืื ืงืืึทื ืคืื ืืขืงื ืึทืืึทืืืฉืื ืฆื ืืืืคื ืืื ืคืืจื ืืืืืืืืืจื ืืื ืึท ืืืึธื, ืึทืจืืึทื ืืขืจืขืื ื ืงืึทื ืืืื ืขืจื ืฆื ืคึผืขืงื ืึทืคึผืืึทืงืืืฉืึทื ืงืึธื ืืื ืืืคึผืขื ืืึทื ืกืื ืคึฟืึทืจ ืืืคึผืืืืืึทื ื, ืืื Kubernetes ืฆื ืคืืจื ืื ืงืึทื ืืืื ืขืจื. ืืขืจืืืขืจ, ืฆื ืึทืจืืขืื ืืื Istio ืืืจ ืืืื ืืืืกื ืืื ืึท ืึทืคึผืืึทืงืืืฉืึทื ืืื ืงืืืคื ืืึทืืื ืื ืืก ืืืืืจื ืืืืฃ ืื ืืขืงื ืึทืืึทืืืฉืื ืึทืจืืขื ืึธื Istio. ืืืื ืื ืืืฉืืจืื ืืื ืงืึทื ืกืขืคึผืก ืืขื ืขื ืฉืืื ืืึทืงืึทื ื ืฆื ืืืจ, ืคืืื ืคืจืื ืฆื ืืึธืคึผืงืขื ืืขื ืืืืึธืจืืึทื ืืื ืืืื ืืืืื ืฆื ืื ืึธืคึผืืืืืื ื
ืืึธืก ืืื ืึท ืฉืจืื-ืืืจื-ืฉืจืื ืคืืจืขืจ ืืื ืืืึธืก ืืืจ ืืืขืื ืืืื ืืืจื ืื ืืื ืฆืข ืคึผืจืึธืฆืขืก ืคืื ืืงืืจ ืงืึธื ืฆื GKE ืงืึทื ืืืื ืขืจ ืฆื ืืขืื ืืืจ ืึท ืืงืขืจืืืง ืคืืจืฉืืื ื ืคืื ืื ืืขืงื ืึทืืึทืืืฉืื ืืืจื ืึท ืืืืฉืคึผืื. ืืืจ ืืืขื ืืืื ืืขื ืืื Istio ืืขืืืขืจืืืืฉ ืื ืืึทืื ืคืื ืื ืืขืงื ืึทืืึทืืืฉืื. ืืึธืก ืึทืกืืื ืึทื ืืืจ ืืึธื ื ืื ืืืืกื ืขืคึผืขืก ืืืขืื ืงืึทื ืืืื ืขืจื, ืงืืืขืจื ืขืืขืก, ืกืขืจืืืืก ืืขืฉืขืก ืึธืืขืจ Istio.
ืืึทืกืงืก
ืืื ืืขื ืืืืึธืจืืึทื, ืืืจ ืืืขื ืคืึทืจืขื ืืืงื ืื ืคืืืืขื ืืข ืืึทืกืงืก:
- ืืขืจื ืขื ืึท ืคึผืฉืื ืืขืื ืืืขืื ืึทืคึผืืึทืงืืืฉืึทื ืืื ืงืืืคื ืืึทืืื ืื ืืก.
- ืืืืคื ืื ืึทืคึผืืึทืงืืืฉืึทื ืคึฟืื ืืงืืจ ืงืึธื.
- ืคึผืึทืงืงืึทืืื ื ืื ืึทืคึผืืึทืงืืืฉืึทื ืืื ืงืึทื ืืืื ืขืจื.
- ืฉืึทืคึฟื ืึท ืงืืืขืจื ืขืืขืก ืงื ืืื.
- ืืืคึผืืืืื ื ืงืึทื ืืืื ืขืจื ืืื ืึท ืงื ืืื.
ืืืืืขืจ ืืืจ ืึธื ืืืื
ืืื ืื ืื ืกืืจืึทืงืฉืึทื ื ืฆื ืืขืื ืื Kubernetes Engine API:
- ืืื ืฆื
Kubernetes Engine ืืืึทื ืืื ืื Google Cloud Platform ืงืึทื ืกืึธืื. - ืฉืึทืคึฟื ืึธืืขืจ ืืืืกืงืืืึทืื ืึท ืคึผืจืืืขืงื.
- ืืืึทืจืื ืืื ืื ืึทืคึผื ืืื ืคึฟืึทืจืืื ืืขื ืข ืืึทืืื ืื ืืก ืืขื ืขื ืขื ืืืืึทืื. ืืึธืก ืงืขื ื ืขืืขื ืขืืืขืืข ืืื ืื.
- ืืึทืื ืืืืขืจ ืึทื ืืืืื ื ืืื ืืึทืฉืืขืืืงื ืคึฟืึทืจ ืืืื Google ืงืืึธืื ืคึผืืึทืืคืึธืจื ืคึผืจืืืขืงื.
ืืขืจื ืขื ืืื ืฆื ืืขืื ืืืืื ื .
ืืื ืืขื ืืืืึธืจืืึทื, ืืืจ ืงืขื ืขื ื ืืฆื ืงืืึธืื ืฉืขื, ืืืึธืก ืคึผืจืืคึผืขืจื ืื ืืืืจืืืึทื ืืึทืฉืื
ืึธืคึผืฆืืข ื: ื ืืฆื ืงืืึธืื ืฉืขื
ืืขื ืขืคืืฅ ืคืื ื ืืฆื Cloud Shell:
- Python 2 ืืื Python 3 ืึทื ืืืืืงืืื ื ืื ืืืืืจืึทื ืืึทื ืฅ (ืึทืจืืึทื ืืขืจืขืื ื virtualenv) ืืขื ืขื ืืึธืจ ืงืึทื ืคืืืืขืจื.
- ืืึทืคึฟืขืื ืฉืืจื ืืืฉืืจืื gcloud, ืืึธืงืงืขืจ, ืืืื ะธ kubectl, ืืืึธืก ืืืจ ืืืขืื ื ืืฆื ืืขื ืขื ืฉืืื ืืื ืกืืึทืืืจื.
- ืืืจ ืืึธืื ืขืืืขืืข ืฆื ืงืืืึทืื ืคืื
ืืขืงืกื ืจืขืืืงืฆืืข :ืงืึธื ืจืขืืึทืงืืึธืจ , ืืืึธืก ืึธืคึผืขื ืก ืืื ืื ืจืขืืึทืืืจื ืืืืื ืืื ืื ืฉืคึผืืฅ ืคืื ืื ืงืืึธืื ืฉืขื ืคึฟืขื ืฆืืขืจ.- Emacs, Vim ืึธืืขืจ Nano, ืืืึธืก ืขืคืขื ืขื ืคึฟืื ืื ืืึทืคึฟืขืื ืฉืืจื ืืื ืงืืึธืื ืฉืขื.
ืฆื ื ืืฆื
- ืืืื ืฆื ืื GCP ืงืึทื ืกืึธืื.
- ืืจืืงื ืึทืงืืึทืืืืื ืงืืึธืื ืฉืขื (ืึทืงืืึทืืืืื ืงืืึธืื ืฉืขื) ืืื ืื ืฉืคึผืืฅ ืคืื ืื GCP ืงืึทื ืกืึธืื ืคึฟืขื ืฆืืขืจ.
ืืื ืืขืจ ื ืืืขืจืืงืขืจ ืืืื
ืึธืคึผืฆืืข ื: ื ืืฆื ืืึทืคึฟืขืื ืฉืืจื ืืืฉืืจืื ืืึธืืงืึทืื
ืืืื ืืืจ ืืืขื ืึทืจืืขืื ืืืืฃ ืึท ืงืึธืืคึผืืืืขืจ ืืื ืืื ืืงืก ืึธืืขืจ ืืึทืงืึธืก, ืืืจ ืืึทืจืคึฟื ืฆื ืงืึทื ืคืืืืขืจ ืืื ืื ืกืืึทืืืจื ืื ืคืืืืขื ืืข ืงืึทืืคึผืึธืื ืึทื ืฅ:
-
ืงืึทืกืืึทืืืื
Python 3 ืืื Python 2 ืึทื ืืืืืงืืื ื ืกืืืืืืข . -
ืื ืกืืึทืืืจื ืงืืึธืื ืกืืง ืืื ืืึทืคึฟืขืื ืฉืืจื ืืขืฆืืึทื gcloud. -
ืฉืืขืื kubectl - ืืึทืคึฟืขืื ืฉืืจื ืืขืฆืืึทื ืคึฟืึทืจ ืืจืืขืื ืืื
Kubernetes .gcloud components install kubectl
-
ืฉืืขืื
Docker Community Edition (CE) . ืืืจ ืืืขื ื ืืฆื ืื ืืึทืคึฟืขืื ืฉืืจื ืืขืฆืืึทื ืืึธืงืงืขืจืฆื ืฉืึทืคึฟื ืงืึทื ืืืื ืขืจ ืืืืืขืจ ืคึฟืึทืจ ืื ืืืกืืขืจ ืึทืคึผืืึทืงืืืฉืึทื. -
ืื ืกืืึทืืืจื ืื ืืขืฆืืึทื
ืืื ืืืขืจืกืืข ืงืึธื ืืจืึธื ืฆื ืืึทืงืืืขื ืื ืืืกืืขืจ ืึทืคึผืืึทืงืืืฉืึทื ืคึฟืื GitHub.
ืืจืืคืงืืคืืข ืืืกืืขืจ ืงืึธื
-
ืึธืคึผืืึธืืืจื ืื ืืงืืจ ืงืึธื ืืขืืืึธืกืขืจืืืขืจ:
git clone https://github.com/GoogleCloudPlatform/istio-samples
-
ืืืื ืฆื ืื ืืืึทืฉืคึผืื ืงืึธื ืืืขืืืืืึทืืขืจ:
cd istio-samples/sample-apps/helloserver
ืืืกืคืึธืจืฉื ืึท ืึทืคึผืืึทืงืืืฉืึทื ืืื ืงืืืคื ืืึทืืื ืื ืืก
ืืขืจ ืืืกืืขืจ ืึทืคึผืืึทืงืืืฉืึทื ืืื ืืขืฉืจืืื ืืื ืคึผืืืืึธื ืืื ืืืฉืืืื ืคืื ืฆืืืื ืงืึทืืคึผืึธืื ืึทื ืฅ ืืืึธืก ืื ืืขืจืึทืงื ืืื
- ืฉืืื: ืคึผืฉืื ืกืขืจืืืขืจ ืืื ืืืื ืขื ืืคึผืืื ื ืืึทืงืืืขื, /, ืืืึธืก ืคึผืจืื ืฅ "ืืขืื ืืืขืื" ืฆื ืื ืงืึทื ืกืึธืื.
- loadgen: ืฉืจืืคื ืืืึธืก ืกืขื ืื ืคืึทืจืงืขืจ ืฆื ืฉืืื, ืืื ืึท ืงืึทื ืคืืืืขืจืึทืืึทื ื ืืืขืจ ืคืื ืจืืงืืืขืก ืคึผืขืจ ืกืขืงืื ืืข.
ืคืืืกื ืืืง ืึท ืึทืคึผืืึทืงืืืฉืึทื ืคึฟืื ืืงืืจ ืงืึธื
ืฆื ืืืกืคืึธืจืฉื ืื ืืืกืืขืจ ืึทืคึผืืึทืงืืืฉืึทื, ืืืืคื ืขืก ืืื ืงืืึธืื ืฉืขื ืึธืืขืจ ืืืืฃ ืืืื ืงืึธืืคึผืืืืขืจ.
1) ืืื ืืขื ืงืึทืืึทืืึธื istio-samples/sample-apps/helloserver ืืืืคื ืฉืืื:
python3 server/server.py
ืืื ืกืืึทืจืืึทืคึผ ืฉืืื ืื ืคืืืืขื ืืข ืืื ืืขืืืืื:
INFO:root:Starting server...
2) ืขืคึฟืขื ืขื ืื ืื ืืขืจ ืืืึธืงืืึทื ืคึฟืขื ืฆืืขืจ ืฆื ืฉืืงื ืจืืงืืืขืก ืฆื ืฉืืื. ืืืื ืืืจ ื ืืฆื ืงืืึธืื ืฉืขื, ืืื ืื ืืืืื ืืืืื ืฆื ืขืคึฟืขื ืขื ืื ืื ืืขืจ ืกืขืกืืข.
3) ืฉืืงื ืึท ืืงืฉื ืฆื ืฉืืื:
curl http://localhost:8080
ืกืขืจืืืขืจ ืขื ืืคืขืจื:
Hello World!
4) ืคึฟืื ืืขืจ ืืืขืืืืืึทืืขืจ ืืื ืืืจ ืืึทืื ืืึธืืืื ืื ืืืกืืขืจ ืงืึธื, ืืืื ืฆื ืื ืืืขืืืืืึทืืขืจ ืืืึธืก ืึผืืื loadgen:
cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/loadgen
5) ืฉืึทืคึฟื ืื ืคืืืืขื ืืข ืกืืืืืืข ืืืขืจืืึทืืึทืื:
export SERVER_ADDR=http://localhost:8080
export REQUESTS_PER_SECOND=5
6) ืงืึทืืขืจ virtualenv:
virtualenv --python python3 env
7) ืึทืงืืึทืืืืื ืื ืืืืจืืืึทื ืกืืืืืืข:
source env/bin/activate
8) ืฉืืขืื ืืืืขืจืคืขื ืืฉื ืคึฟืึทืจ loadgen:
pip3 install -r requirements.txt
9) ืงืึทืืขืจ loadgen:
python3 loadgen.py
ืืื ืกืืึทืจืืึทืคึผ loadgen ืืืกืคึผืืืื ืขืคึผืขืก ืืื ืื ืคืืืืขื ืืข ืึธื ืืึธื:
Starting loadgen: 2019-05-20 10:44:12.448415
5 request(s) complete to http://localhost:8080
ืืื ืื ืื ืืขืจ ืืืึธืงืืึทื ืคึฟืขื ืฆืืขืจ ืฉืืื ืึทืืืคึผืืฅ ืื ืคืืืืขื ืืข ืึทืจืืืงืืขื ืฆื ืื ืงืึทื ืกืึธืื:
127.0.0.1 - - [21/Jun/2019 14:22:01] "GET / HTTP/1.1" 200 -
INFO:root:GET request,
Path: /
Headers:
Host: localhost:8080
User-Agent: python-requests/2.22.0
Accept-Encoding: gzip, deflate
Accept: */*
ืคึฟืื ืึท ื ืขืืืืึธืจืงืื ื ืคึผืขืจืกืคึผืขืงืืืื, ืื ืืื ืฆืข ืึทืคึผืืึทืงืืืฉืึทื ืืืืคื ืืืืฃ ืึท ืืืื ืืึทืืขืืึธืก (ืืืืข ืงืึธืืคึผืืืืขืจ ืึธืืขืจ ืงืืึธืื ืฉืขื ืืืืจืืืึทื ืืึทืฉืื). ืืขืจืืืขืจ ืืืจ ืงืขื ืขื ื ืืฆื ืืึธืงืึทืืืึธืกืืฆื ืฉืืงื ืจืืงืืืขืก ืฆื ืฉืืื.
10) ืฆื ืืึทืืื loadgen ะธ ืฉืืื, ืึทืจืืึทื ืงืืจื-c ืืื ืืขืืขืจ ืืืึธืงืืึทื ืคึฟืขื ืฆืืขืจ.
11) ืืื ืื ืืืึธืงืืึทื ืคึฟืขื ืฆืืขืจ loadgen ืืืึทืงืืืืืืื ืื ืืืืจืืืึทื ืกืืืืืืข:
deactivate
ืคึผืึทืงืงืึทืืื ื ืึท ืึทืคึผืืึทืงืืืฉืึทื ืืื ืงืึทื ืืืื ืขืจื
ืฆื ืืืืคื ืื ืึทืคึผืืึทืงืืืฉืึทื ืืืืฃ GKE, ืืืจ ืืึทืจืคึฟื ืฆื ืคึผืขืงื ืื ืืืืฉืคึผืื ืึทืคึผืืึทืงืืืฉืึทื - ืฉืืื ะธ loadgen - ืืืึท
ืฆื ืคึผืขืงื ืึท ืึทืคึผืืึทืงืืืฉืึทื ืืื ืึท ืงืึทื ืืืื ืขืจ, ืืืจ ืืึทืจืคึฟื dockerfile. dockerfile ืืื ืึท ืืขืงืกื ืืขืงืข ืืืึธืก ืืืคืืื ื ืงืึทืืึทื ืื ืคึฟืึทืจ ืื ืื ืื ืืงืืจ ืงืึธื ืคืื ืื ืึทืคึผืืึทืงืืืฉืึทื ืืื ืืืึทื ืืืคึผืขื ืืึทื ืกืื
ืืขืจ ืืฉื ืืื ืฉืืื dockerfile ืคืึทืจ ืฉืืื ะธ loadgen ืืื ืึทืืข ืื ื ืืืืืง ืงืึทืืึทื ืื ืฆื ืืึทืืืขื ืืืืืขืจ. ืืื ืื โ dockerfile ืคืึทืจ ืฉืืื:
FROM python:3-slim as base
FROM base as builder
RUN apt-get -qq update
&& apt-get install -y --no-install-recommends
g++
&& rm -rf /var/lib/apt/lists/*
# Enable unbuffered logging
FROM base as final
ENV PYTHONUNBUFFERED=1
RUN apt-get -qq update
&& apt-get install -y --no-install-recommends
wget
WORKDIR /helloserver
# Grab packages from builder
COPY --from=builder /usr/local/lib/python3.7/ /usr/local/lib/python3.7/
# Add the application
COPY . .
EXPOSE 8080
ENTRYPOINT [ "python", "server.py" ]
- ืงืึธืืขืงืืืื ืคึฟืื ืคึผืืืืึธื:3-ืฉืืึทื ืง ืืื ืืึทืืข ืืขืจืฆืืืื Docker ืฆื ื ืืฆื ืื ืืขืฆืืข
ืคึผืืืืึธื 3 ืืืื ืืื ืึท ืืึทืืข. - ืงืึธืืขืงืืืื ืงืึธืคึผื. . ืงืืคืืขืก ืื ืืงืืจ ืืขืงืขืก ืฆื ืื ืงืจืึทื ื ืึทืจืืขื ืืืขืืืืืึทืืขืจ (ืืืืื ืืื ืืื ืืืขืจ ืคืึทื server.py) ืฆื ืื ืืขืงืข ืกืืกืืขื ืคืื ืืขื ืงืึทื ืืืื ืขืจ.
- ENTRYPOINT ืืืคืืื ื ืื ืืึทืคึฟืขื ืืืึธืก ืืื ืืขื ืืฆื ืฆื ืึธื ืืืืื ืืขื ืงืึทื ืืืื ืขืจ. ืืื ืืื ืืืขืจ ืคืึทื, ืืขื ืืึทืคึฟืขื ืืื ืึผืืขื ืื ืืขืืืข ืืื ืื ืืืึธืก ืืืจ ืืขืืืืื ื ืฆื ืืืืคื server.py ืคึฟืื ืืงืืจ ืงืึธื.
- ืงืึธืืขืงืืืื ืืืกืฉืืขืื ืื ืืืงืืืฅ ืึทื ืฉืืื ืืืืืฅ ืคึฟืึทืจ ืืึทืื ืืืจื ืื ืคึผืึธืจื 8080. ืืขื ืงืึธืืขืงืืืื ืืื ื ืืฉื
ืืื ืคึผืึธืจืฅ . ืืึธืก ืืื ืึท ืืื ืคืื ืืึทืงืืืืขื ืืืืฉืึทื ืืืึธืก ืืื ืืืจืฃ ืฆื ืขืคึฟืขื ืขื ืืขื ืคึผืึธืจื 8080 ืืืขื ืกืืึทืจืืื ื ืืขื ืงืึทื ืืืื ืขืจ.
ืคึผืจืืคึผืขืจืื ื ืฆื ืงืึทื ืืึทืืึทื ืืื ืืืื ืึทืคึผืืึทืงืืืฉืึทื
1) ืฉืืขืื ืื ืคืืืืขื ืืข ืกืืืืืืข ืืืขืจืืึทืืึทืื. ืคืึทืจืืืึทืื PROJECT_ID ืฆื ืืืื GCP ืคึผืจืืืขืงื ืฉืืึทื.
export PROJECT_ID="PROJECT_ID"
export GCR_REPO="preparing-istio"
ื ืืฆื ืืืึทืืืขืก PROJECT_ID ะธ GCR_REPO ืืืจ ืคืึทืจืืื ืื ืื ืืึธืงืงืขืจ ืืืื ืืืขื ืืืจ ืืืืขื ืขืก ืืื ืฉืืืคึผื ืขืก ืฆื ืึท ืคึผืจืืืืึทื ืงืึทื ืืืื ืขืจ ืจืขืืืกืืจื.
2) ืืึทืฉืืขืืืง ืื ืคืขืืืงืืึทื GCP ืคึผืจืืืขืงื ืคึฟืึทืจ ืื ืืึทืคึฟืขืื ืฉืืจื ืืขืฆืืึทื gcloud.
gcloud config set project $PROJECT_ID
3) ืืึทืฉืืขืืืง ืื ืคืขืืืงืืึทื ืืึธื ืข ืคึฟืึทืจ ืื ืืึทืคึฟืขืื ืฉืืจื ืืขืฆืืึทื gcloud.
gcloud config set compute/zone us-central1-b
4) ืืึทืื ืืืืขืจ ืึทื ืื ืงืึทื ืืืื ืขืจ ืจืขืืืกืืจื ืืื ืกื ืืื ืขื ืืืืึทืื ืืื ืื GCP ืคึผืจืืืขืงื.
gcloud services enable containerregistry.googleapis.com
ืงืึทื ืืืื ืขืจืืืึทืืืึธื ืกืขืจืืืขืจ
-
ืืืื ืฆื ืื ืืืขืืืืืึทืืขืจ ืืื ืื ืืืึทืฉืคึผืื ืืื ืืืื ืฉืืื:
cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/server/
-
ืึทืกืขืืืึทื ืื ืืืื ื ืืฆื dockerfile ืืื ืื ืกืืืืืืข ืืืขืจืืึทืืึทืื ืืืจ ืืืคืืื ื ืคืจืืขืจ:
docker build -t gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1 .
ืคึผืึทืจืึทืืขืืขืจ -t ืจืขืคึผืจืึทืืขื ืฅ ืื ืืึธืงืงืขืจ ืงืืืืื. ืืึธืก ืืื ืืขืจ ื ืึธืืขื ืคืื ืื ืืืื ืืืจ ื ืืฆื ืืืขื ืืืคึผืืืืื ื ืืขื ืงืึทื ืืืื ืขืจ.
- ืฆืืคึฟืขืืืงืขืจ ืื ืืืื ืฆื ืื ืงืึทื ืืืื ืขืจ ืจืขืืืกืืจื:
docker push gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1
ืงืึทื ืืึทืืึทื ืืืืืฉืึทื ืคืื ืืึธืื
1) ืืืื ืฆื ืื ืืืขืืืืืึทืืขืจ ืืื ืื ืืืึทืฉืคึผืื ืืื ืืืื loadgen:
cd ../loadgen
2) ืงืืืึทืื ืื ืืืื:
docker build -t gcr.io/$PROJECT_ID/$GCR_REPO/loadgen:v0.0.1 .
3) ืฆืืคึฟืขืืืงืขืจ ืื ืืืื ืฆื ืื ืงืึทื ืืืื ืขืจ ืจืขืืืกืืจื:
docker push gcr.io/$PROJECT_ID/$GCR_REPO/loadgen:v0.0.1
ืืขื ืึท ืจืฉืืื ืคืื ืืืืืขืจ
ืืืืขืจืืืืง ืื ืจืฉืืื ืคืื ืืืืืขืจ ืืื ืื ืจืืคึผืึทืืึทืืึธืจื ืืื ืืึทืฉืืขืืืงื ืึทื ืื ืืืืืขืจ ืืขื ืขื ืืคึผืืึธืึทืืขื:
gcloud container images list --repository gcr.io/$PROJECT_ID/preparing-istio
ืืขืจ ืืึทืคึฟืขื ืืืกืคึผืืืื ืื ื ืขืืขื ืคืื ืื ื ืื ืืคึผืืึธืึทืืขื ืืืืืขืจ:
NAME
gcr.io/PROJECT_ID/preparing-istio/helloserver
gcr.io/PROJECT_ID/preparing-istio/loadgen
ืฉืึทืคึฟื ืึท GKE ืงื ืืื.
ืื ืงืึทื ืืืื ืขืจื ืงืขื ืืืื ืืืืคื ืืืืฃ ืึท ืงืืึธืื ืฉืขื ืืืืจืืืึทื ืืึทืฉืื ืึธืืขืจ ืืืืฃ ืึท ืงืึธืืคึผืืืืขืจ ืืื ืื ืืึทืคึฟืขื ืืึธืงืขืจ ืืืืคื. ืึธืืขืจ ืืื ืึท ืคึผืจืึธืืืงืฆืืข ืกืืืืืืข, ืืืจ ืืึทืจืคึฟื ืึท ืืืขื ืฆื ืกืขื ืืจืึทืื ืึธืจืงืขืกืืจืืจื ืงืึทื ืืืื ืขืจื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืืจ ืืึทืจืคึฟื ืึท ืกืืกืืขื ืืืึธืก ืืืื ืืืืขืจ ืึทื ืงืึทื ืืืื ืขืจื ืืขื ืขื ืฉืืขื ืืืง ืคืืืกื ืืืง, ืืื ืืืจ ืืึทืจืคึฟื ืึท ืืืขื ืฆื ืคืึทืจืืืืขืจื ืืื ืืืืจืื ื ืึธื ืงืึทืกืขืก ืืืื ืคืึทืจืงืขืจ ืื ืงืจืืกืื.
ืฆื ืืืืคื ืงืึทื ืืืื ืขืจืืขื ืึทืคึผืืึทืงืืืฉืึทื ื ืืืจ ืงืขื ืขื ื ืืฆื
ืฉืึทืคึฟื ืึท GKE ืงื ืืื:
1) ืฉืึทืคึฟื ืึท ืงื ืืื:
gcloud container clusters create istioready
--cluster-version latest
--machine-type=n1-standard-2
--num-nodes 4
ืงืึธืืขืงืืืื gcloud ืงืจืืืืฅ ืึทื ื ืึธื ืงื ืืื ืืื ืื GCP ืคึผืจืืืขืงื ืืื ืคืขืืืงืืึทื ืืึธื ืข ืืืจ ืกืคึผืขืกืืคืืขื. ืฆื ืืืืคื Istio, ืืืจ ืจืขืงืึธืืขื ืืืจื ืฆื ืืึธืื ืืืึท ืืื ืืกืืขืจ 4 ื ืึธืืื ืืื ืึท ืืืืจืืืึทื ืืึทืฉืื
ืื ืืึทื ืฉืึทืคึฟื ืงืจืืืืฅ ืืขื ืงื ืืื ืืื ืึท ืืืกื ืืื ืื. ืืืขื ืืขืจ ืงื ืืื ืืื ืืจืืื, ืืขืจ ืืึทืคึฟืขื ืืืขื ืจืขืืืืืึทื ืขืคึผืขืก ืืื ืืึธืก
2) ืฆืืฉืืขืื ืงืจืึทืืขื ืืฉืึทืื ืืื ืื ืืึทืคึฟืขืื ืฉืืจื ืืขืฆืืึทื
gcloud container clusters get-credentials istioready
3) ืืืฆื ืืืจ ืงืขื ืขื ืืืขืจืืขืื ืืื Kubernetes ืืืจื kubectl. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืื ืคืืืืขื ืืข ืืึทืคึฟืขื ืงืขื ืขื ืืขืคึฟืื ืขื ืื ืกืืึทืืืก ืคืื ื ืึธืืื:
kubectl get nodes
ืืขืจ ืืึทืคึฟืขื ืืจืืื ืึท ืจืฉืืื ืคืื ื ืึธืืื:
NAME STATUS ROLES AGE VERSION
gke-istoready-default-pool-dbeb23dc-1vg0 Ready <none> 99s v1.13.6-gke.13
gke-istoready-default-pool-dbeb23dc-36z5 Ready <none> 100s v1.13.6-gke.13
gke-istoready-default-pool-dbeb23dc-fj7s Ready <none> 99s v1.13.6-gke.13
gke-istoready-default-pool-dbeb23dc-wbjw Ready <none> 99s v1.13.6-gke.13
ืงืืืขืจื ืขืืขืก ืฉืืืกื ืงืึทื ืกืขืคึผืก
ืื ืืืึทืืจืึทืืข ืืืืืื ืึทื ืึทืคึผืืึทืงืืืฉืึทื ืืืืฃ GKE:
ืืืืืขืจ ืืืจ ืฆืขืืืืงืืขื ืงืึทื ืืืื ืขืจื ืืื GKE, ืืขืจื ืขื ืื ืฉืืืกื ืงืึทื ืกืขืคึผืก ืคืื Kubernetes. ืขืก ืืขื ืขื ืืื ืงืก ืืื ืื ืกืืฃ ืืืื ืืืจ ืืืืื ืฆื ืืขืจื ืขื ืืขืจ.
- ื ืึธืืื ืืื ืงืืึทืกืืขืจื. ืืื GKE, ืึท ื ืึธืืข ืืื ืึท ืืืืจืืืึทื ืืึทืฉืื. ืืืืฃ ืื ืืขืจืข Kubernetes ืคึผืืึทืืคืึธืจืืก, ืึท ื ืึธืืข ืงืขื ืขื ืืืื ืึท ืงืึธืืคึผืืืืขืจ ืึธืืขืจ ืึท ืืืืจืืืึทื ืืึทืฉืื. ื ืงื ืืื ืืื ืึท ืืึทืืืื ื ืคืื ื ืึธืืื ืืืึธืก ืงืขื ืขื ืืืื ืืขืจืขืื ื ืืื ืึท ืืืื ืึทืคึผืึทืจืึทื ืืื ืืืจ ืฆืขืืืืงืืขื ืึท ืงืึทื ืืืื ืขืจืืืื ืึทืคึผืืึทืงืืืฉืึทื.
- ืคึผืึธืืก. ืืื Kubernetes, ืงืึทื ืืืื ืขืจื ืืืืคื ืืื ืคึผืึธืืก. ื ืคึผืึธื ืืื ืงืืืขืจื ืขืืขืก ืืื ืึทื ืื ืืืืืืืืฉืึทืืึทื ืึทืคึผืึทืจืึทื. ื ืคึผืึธื ืืืื ืืืื ืขืจ ืึธืืขืจ ืืขืจ ืงืึทื ืืืื ืขืจื. ืืืจ ืฆืขืืืืงืืขื ืกืขืจืืืขืจ ืงืึทื ืืืื ืขืจื ืืื loadgen ืืื ืืึทืืื ืืขืจ ืคึผืึธืืก. ืืืขื ืขืก ืืขื ืขื ืขืืืขืืข ืงืึทื ืืืื ืขืจื ืืื ืึท ืคึผืึธื (ืืืฉื, ืึท ืึทืคึผืืึทืงืืืฉืึทื ืกืขืจืืืขืจ ืืื
ืคืจืืงืกื ืกืขืจืืืขืจ ), ืงืึทื ืืืื ืขืจื ืืขื ืขื ืืขืจืืื ืืื ืึท ืืืื ืขื ืืืื ืืื ืืืืื ืคึผืึธื ืจืขืกืืจืกื. - ืืืคึผืืืืืึทื ืฅ. ืืื Kubernetes, ืึท ืืืคึผืืืืืึทื ื ืืื ืึท ืืืืคืขืฅ ืืืึธืก ืืื ืึท ืืึทืืืื ื ืคืื ืืืืขื ืืงืึทื ืคึผืึธืืก. ืืืคึผืืืืืึทื ื ืืึธื ืืฉืื ืงืืืคื ืจืขืคึผืืึทืงืึทื ืคืื ืคึผืึธืืก ืคืื ืื ืืขืจืืขืืืืื ืึทืจืืืขืจ ืงื ืืื ื ืึธืืื. ืืืคึผืืืืืึทื ื ืืืืืึธืืึทืืืฉ ืจืืคึผืืืืกืื ืคึผืึธืืก ืืืึธืก ืืึธืื ื ืื ืึทื ืืขืจืฉ ืึธืืขืจ ื ืื ืจืืกืคึผืึทื ืืื ื.
- Kubernetes ืืื ืกื. ืืืขื ืคืืืกื ืืืง ืึทืคึผืืึทืงืืืฉืึทื ืงืึธื ืืื GKE, ืื ืงืฉืจ ืฆืืืืฉื loadgen ะธ ืฉืืื. ืืืขื ืืืจ ืกืืึทืจืืขื ืืึทืืื ืื ืืก ืืืืฃ ืึท ืงืืึธืื ืฉืขื ืืืืจืืืึทื ืืึทืฉืื ืึธืืขืจ ืืขืกืงืืึทืคึผ, ืืืจ ืืขืฉืืงื ืจืืงืืืขืก ืฆื ืฉืืื ืืื ืืึธืงืึทืืืึธืกื: ืงืกื ืืืงืก. ืึทืืึธื ืืืคึผืืืื ืฆื GKE, ืคึผืึธืืก ืืขื ืขื ืขืงืกืึทืงืืืืึทื ืืืืฃ ืคืึทืจืึทื ืขื ื ืึธืืื. ืืืจื ืคืขืืืงืืึทื, ืืืจ ืืึธืื ืงืืื ืงืึธื ืืจืึธื ืืืืขืจ ืืืึธืก ื ืึธืืข ืื ืคึผืึธื ืืื ืคืืืกื ืืืง ืืืืฃ, ืึทืืื ืืืจ
ืคึผืึธืืก ื ืื ืฉืืขื ืืืง IP ืึทืืจืขืกืขืก.
ืฆื ืืึทืงืืืขื ืึทื IP ืึทืืจืขืก ืคึฟืึทืจ ืฉืืื, ืืืจ ืืึทืจืคึฟื ืฆื ืืขืคืื ืืจื ืึท ื ืขืฅ ืึทืืกืืจืึทืงืฆืืข ืืืืฃ ืฉืคึผืืฅ ืคืื ืื ืคึผืึธืืก. ืึทื ืก ืืืึธืก ืขืก ืืืKubernetes ืืื ืกื . ืื Kubernetes ืืื ืกื ืืื ืึท ืคึผืขืจืกืืกืืขื ื ืขื ืืคึผืืื ื ืคึฟืึทืจ ืึท ืกืืื ืคืื ืคึผืึธืืก. ืขืก ืืขื ืขื ืขืืืขืืขืืืืคึผืก ืคืื ืืึทืืื ืื ืืขื . ืฉืืื ื ืืฆื LoadBalancer, ืืืึธืก ืืื ืึท ืคืื ืืจืืืกื ืืืง IP ืึทืืจืขืก ืฆื ืงืึธื ืืึทืงื ืฉืืื ืคืื ืึทืจืืืก ืื ืงื ืืื.
Kubernetes ืืืื ืืื ืึท ืืขืืืื-ืืื ืื ืก ืกืืกืืขื ืืืึธืก ืึทืกืืื ื ืื ืก ื ืขืืขื (ืืืฉื, helloserver.default.cluster.local) ืืึทืืื ืื ืืขื. ืืึทื ืง ืฆื ืืขื, ืคึผืึธืืก ืืื ืืขื ืงื ืืื ืืืขืจืืขืื ืืื ืื ืืขืจืข ืคึผืึธืืก ืืื ืืขื ืงื ืืื ืืื ืึท ืฉืืขื ืืืง ืึทืืจืขืก. ืื ืื ืก ื ืึธืืขื ืงืขื ืขื ื ืื ืืืื ืืขืืืืื ื ืึทืจืืืก ืื ืงื ืืื, ืึทืืึท ืืื ืืื ืงืืึธืื ืฉืขื ืึธืืขืจ ืืืืฃ ืึท ืงืึธืืคึผืืืืขืจ.
ืงืืืขืจื ืขืืขืก ืืึทื ืึทืคืขืกื ืืื
ืืืขื ืืืจ ืืืืคื ืื ืึทืคึผืืึทืงืืืฉืึทื ืคึฟืื ืืงืืจ, ืืืจ ืืขืืืืื ื ืื ืืืคึผืขืจืึทืืืื ืืึทืคึฟืขื ืคึผืืืืึธื ืงืกื ืืืงืก
server.py
ืืืคึผืขืจืึทืืืื ืืืคึผืืืื ืึท ืืืขืจื: "ืืึธื ืืึธืก."
Kubernetes ื ืืฆื
ืืืจ ืึธื ืืืืึทืื ืื ืืขืืขืื ืฉืืึทื ืืื ืืึทื ืืคืขืกืฅ ืึธืืขืจ ืืขืงืขืก
ืืขืจ ืืืืฉืคึผืื ืึผืืื ืึท YAML ืืขืงืข ืคึฟืึทืจ ืฉืืื ะธ loadgen. ืืขืืขืจ YAML ืืขืงืข ืกืคึผืขืฆืืคืืฆืืจื ืื ืืขืืขืื ืฉืืึทื ืคืื ืื ืืืคึผืืืืืึทื ื ืืืืคืขืฅ ืืื Kubernetes ืืื ืกื.
server.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: helloserver
spec:
selector:
matchLabels:
app: helloserver
replicas: 1
template:
metadata:
labels:
app: helloserver
spec:
terminationGracePeriodSeconds: 5
restartPolicy: Always
containers:
- name: main
image: gcr.io/google-samples/istio/helloserver:v0.0.1
imagePullPolicy: Always
- ืืื ืื ืืืงืืืฅ ืืขื ืืืคึผ ืคืื ืื ืืืืคืขืฅ.
- ืืขืืึทืืึทืืึท.ื ืึทืืข ืกืคึผืขืฆืืคืืฆืืจื ืื ืืืคึผืืืืืึทื ื ื ืึธืืขื.
- ืขืจืฉืืขืจ ืคืขืื spec ืึผืืื ืึท ืืึทืฉืจืืึทืืื ื ืคืื ืื ืืขืืขืื ืฉืืึทื.
- ืกืคึผืขืง.ืจืขืคึผืืึทืงืึทื ืื ืืืงืืืฅ ืื ืืขืืขืื ื ืืืขืจ ืคืื ืคึผืึธืืก.
- ืกืขืงืฆืืข ืกืคึผืขืง. ืืืกืืขืจ ืืืคืืื ื ืึท ืคึผืึธื ืืืกืืขืจ. ืขืก ืืื ืึท ืคืขืื ืืื ืื ืคึผืึธื ืืึทืฉืจืืึทืืื ื ืืืื, ืืืึธืก ืกืคึผืขืฆืืคืืฆืืจื ืื ื ืึธืืขื ืคืื ืื ืืืื ืืืึธืก ืืึทืจืฃ ืืืื ืืงืกืืจืึทืงืืื ืคืื ืื ืงืึทื ืืืื ืขืจ ืจืขืืืกืืจื.
ืื ืกืขืจืืืืก ืืื ืืืคืืื ื ืืื ืืืื:
apiVersion: v1
kind: Service
metadata:
name: hellosvc
spec:
type: LoadBalancer
selector:
app: helloserver
ports:
- name: http
port: 80
targetPort: 8080
- LoadBalancer: ืงืืืืึทื ืฅ ืฉืืงื ืจืืงืืืขืก ืฆื ืื IP ืึทืืจืขืก ืคืื ืื ืืึทืกืข ืืึทืืึทื ืกืขืจ, ืืืึธืก ืืื ืึท ืคึผืขืจืกืืกืืขื ื IP ืึทืืจืขืก ืืื ืืื ืฆืืืจืืืืขื ืคึฟืื ืึทืจืืืก ืื ืงื ืืื.
- targetPort: ืืื ืืืจ ืืขืืขื ืงืขื, ืื ืืึทื ืฉืึทืคึฟื ืืืกืฉืืขืื 8080 ะฒ dockerfile ืืื ื ืืฉื ืฆืืฉืืขืื ืคึผืึธืจืฅ. ืืืจ ืฆืืฉืืขืื ืื ืคึผืึธืจื 8080ืึทืืื ืึทื ืืืจ ืงืขื ืขื ืงืึธื ืืึทืงื ืืขื ืงืึทื ืืืื ืขืจ ืฉืืื ืึทืจืืืก ืื ืงื ืืื. ืืื ืืื ืืืขืจ ืคืึทื hellosvc.default.cluster.local:80 (ืงืืจืฅ ื ืึธืืขื: hellosvc) ืงืึธืจืึทืกืคึผืึทื ืื ืฆื ืื ืคึผืึธืจื 8080 ืคึผืึธื IP ืึทืืจืขืกืขืก ืืขืืืึธืกืขืจืืืขืจ.
- ืคึผืึธืจื: ืืึธืก ืืื ืื ืคึผืึธืจื ื ืืืขืจ ืืื ืื ืืขืจืข ืืึทืืื ืื ืืก ืืื ืืขื ืงื ืืื ืืืขื ืฉืืงื ืจืืงืืืขืก.
loadgen.yaml
ืืืคึผืืืืืึทื ื ืืืืคืขืฅ ืฆื loadgen.yaml ืืขื ืืืืก ืืื server.yaml. ืืขืจ ืืืืืง ืืื ืึทื ืื ืืืคึผืืืืืึทื ื ืืืืคืขืฅ ืึผืืื ืึท ืึธืคึผืืืืืื ื ืฉืืงื. ืขืก ืืืคืืื ื ืื ืกืืืืืืข ืืืขืจืืึทืืึทืื ืืืึธืก ืืขื ืขื ืืืจืฃ loadgen ืืื ืืืึธืก ืืืจ ืืึธื ืืื ืกืืึทืืืจื ืืืขื ืืืจ ืืืืคื ืื ืึทืคึผืืึทืงืืืฉืึทื ืคึฟืื ืืงืืจ.
apiVersion: apps/v1
kind: Deployment
metadata:
name: loadgenerator
spec:
selector:
matchLabels:
app: loadgenerator
replicas: 1
template:
metadata:
labels:
app: loadgenerator
spec:
terminationGracePeriodSeconds: 5
restartPolicy: Always
containers:
- name: main
image: gcr.io/google-samples/istio/loadgen:v0.0.1
imagePullPolicy: Always
env:
- name: SERVER_ADDR
value: "http://hellosvc:80/"
- name: REQUESTS_PER_SECOND
value: "10"
resources:
requests:
cpu: 300m
memory: 256Mi
limits:
cpu: 500m
memory: 512Mi
ืฆืืึทื loadgen ืืื ื ืืฉื ืึธื ื ืขืืขื ืื ืงืึทืืื ื ืจืืงืืืขืก ืคึฟืึทืจ ืื ืคืขืื ืืืคึผ ืื ืืขืืืืื ClusterIP. ืืขืจ ืืืคึผ ืืื ืึท ืคึผืขืจืกืืกืืขื ื IP ืึทืืจืขืก ืืืึธืก ืกืขืจืืืืกืขืก ืืื ืืขื ืงื ืืื ืงืขื ืขื ื ืืฆื, ืึธืืขืจ ืื IP ืึทืืจืขืก ืืื ื ืืฉื ืืงืกืคึผืึธืืื ืฆื ืคืื ืืจืืืกื ืืืง ืงืืืืึทื ืฅ.
apiVersion: v1
kind: Service
metadata:
name: loadgensvc
spec:
type: ClusterIP
selector:
app: loadgenerator
ports:
- name: http
port: 80
targetPort: 8080
ืืืคึผืืืืื ื ืงืึทื ืืืื ืขืจื ืืื GKE
1) ืืืื ืฆื ืื ืืืขืืืืืึทืืขืจ ืืื ืื ืืืึทืฉืคึผืื ืืื ืืืื ืฉืืื:
cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/server/
2) ืขืคืขื ืขื server.yaml ืืื ืึท ืืขืงืกื ืจืขืืึทืงืืึธืจ.
3) ืคืึทืจืืืึทืื ืืขื ื ืึธืืขื ืืื ืืขื ืคืขืื ืืืื ืฆื ืื ื ืึธืืขื ืคืื ืืืื ืืึธืงืงืขืจ ืืืื.
image: gcr.io/PROJECT_ID/preparing-istio/helloserver:v0.0.1
ืคืึทืจืืืึทืื PROJECT_ID ืฆื ืืืื GCP ืคึผืจืืืขืงื ืฉืืึทื.
4) ืืื ืืื ื ืึธืขื ื server.yaml.
5) ืฆืขืืืืงืืขื ืื YAML ืืขืงืข ืฆื Kubernetes:
kubectl apply -f server.yaml
ื ืึธื ืืฆืืื ืงืึทืืคึผืืืฉืึทื, ืื ืืึทืคึฟืขื ืืจืืื ืื ืคืืืืขื ืืข ืงืึธื:
deployment.apps/helloserver created
service/hellosvc created
6) ืืืื ืฆื ืื ืืืขืืืืืึทืืขืจ ืืื loadgen:
cd ../loadgen
7) ืขืคืขื ืขื loadgen.yaml ืืื ืึท ืืขืงืกื ืจืขืืึทืงืืึธืจ.
8) ืคืึทืจืืืึทืื ืืขื ื ืึธืืขื ืืื ืืขื ืคืขืื ืืืื ืฆื ืื ื ืึธืืขื ืคืื ืืืื ืืึธืงืงืขืจ ืืืื.
image: gcr.io/PROJECT_ID/preparing-istio/loadgenv0.0.1
ืคืึทืจืืืึทืื PROJECT_ID ืฆื ืืืื GCP ืคึผืจืืืขืงื ืฉืืึทื.
9) ืืื ืืื ื ืึธืขื ื loadgen.yaml, ื ืึธืขื ื ืื ืืขืงืกื ืจืขืืึทืงืืึธืจ.
10) ืฆืขืืืืงืืขื ืื YAML ืืขืงืข ืฆื Kubernetes:
kubectl apply -f loadgen.yaml
ื ืึธื ืืฆืืื ืงืึทืืคึผืืืฉืึทื, ืื ืืึทืคึฟืขื ืืจืืื ืื ืคืืืืขื ืืข ืงืึธื:
deployment.apps/loadgenerator created
service/loadgensvc created
11) ืงืืง ืื ืกืืึทืืืก ืคืื ืื ืคึผืึธืืก:
kubectl get pods
ืืขืจ ืืึทืคึฟืขื ืืืืืื ืื ืกืืึทืืืก:
NAME READY STATUS RESTARTS AGE
helloserver-69b9576d96-mwtcj 1/1 Running 0 58s
loadgenerator-774dbc46fb-gpbrz 1/1 Running 0 57s
12) ืขืงืกืืจืึทืงื ืึทืคึผืืึทืงืืืฉืึทื ืืึธืืก ืคืื ืื ืคึผืึธื loadgen. ืคืึทืจืืืึทืื POD_ID ืฆื ืื ืืืืขื ืืืคืืฆืืจื ืคืื ืื ืคืจืืขืจืืืงืข ืขื ืืคืขืจ.
kubectl logs loadgenerator-POD_ID
13) ืืึทืงืืืขื ืคืื ืืจืืืกื ืืืง IP ืึทืืจืขืกืขืก hellosvc:
kubectl get service
ืืขืจ ืืึทืคึฟืขื ืขื ืืคืขืจ ืงืืงื ืขืคึผืขืก ืืื ืืึธืก:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hellosvc LoadBalancer 10.81.15.158 192.0.2.1 80:31127/TCP 33m
kubernetes ClusterIP 10.81.0.1 <none> 443/TCP 93m
loadgensvc ClusterIP 10.81.15.155 <none> 80/TCP 4m52s
14) ืฉืืงื ืึท ืืงืฉื ืฆื hellosvc: ืคืึทืจืืืึทืื EXTERNAL_IP ืฆื ืคืื ืืจืืืกื ืืืง IP ืึทืืจืขืก hellosvc.
curl http://EXTERNAL_IP
ืืึธืืืจ ื ืขืืขื ืืืืฃ Istio
ืืืจ ืฉืืื ืืึธืื ืึท ืึทืคึผืืึทืงืืืฉืึทื ืืืคึผืืืื ืฆื GKE. loadgen ืงืขื ืขื ื ืืฆื Kubernetes DNS (hellosvc:80) ืฆื ืฉืืงื ืจืืงืืืขืก ืฆื ืฉืืืืืื ืืืจ ืงืขื ืขื ืฉืืงื ืจืืงืืืขืก ืฆื ืฉืืื ืืืจื ืคืื ืืจืืืกื ืืืง IP ืึทืืจืขืก. ืืึธืืฉ Kubernetes ืืื ืคืืืข ืคึฟืขืึดืงืืืื, ืขืก ืืื ืคืขืื ืืืง ืขืืืขืืข ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืื ืกืขืจืืืืกืขืก:
- ืืื ืืึธื ืกืขืจืืืืกืขืก ืื ืืขืจืึทืงื? ืืืึธืก ืืขื ืขื ืื ืืึทืฆืืื ืืขื ืฆืืืืฉื ืกืขืจืืืืกืขืก? ืืื ืืื ืคืึทืจืงืขืจ ืืืืคื ืฆืืืืฉื ืกืขืจืืืืกืขืก? ืืขื ื ืืืจ ืึทืืืขืจ ืึทื loadgen ืกืขื ืื ืจืืงืืืขืก ืฆื ืฉืืื, ืึธืืขืจ ืืืึทืืืฉืึทื ืึทื ืืืจ ืืึธื ื ืื ืืืืกื ืขืคึผืขืก ืืืขืื ืื ืึทืคึผืืึทืงืืืฉืึทื. ืฆื ืขื ืืคึฟืขืจื ืื ืคึฟืจืืื, ืืึธืื ืืื ืื ืงืืง ืืื ืืขืจ ืจืฉืืื ืคืื ืคืืืกื ืืืง ืคึผืึธืืก ืืื GKE.
- ืืขืืจืืงืก. ืืื ืืื ื ืฉืืื ืจืืกืคึผืึทื ืื ืฆื ืึท ืื ืงืึทืืื ื ืืงืฉื? ืืื ืคืืืข ืจืืงืืืขืก ืคึผืขืจ ืกืขืงืื ืืข ืืขื ืขื ืืืงืืืขื ืืืจื ืื ืกืขืจืืืขืจ? ืืื ืขืก ืืขืื ืืขืืช ืึทืจืืืงืืขื?
- ืืืืขืจืืืื ืืื ืคึฟืึธืจืืึทืฆืืข. ืคืึทืจืงืขืจ ืฆืืืืฉื loadgen ะธ ืฉืืื ื ืึธืจ ืคึผืึทืกืื ืืืจื ืืืืคึผ ืึธืืขืจ ืืืจื
mTLS ?
Istio ืขื ืืคึฟืขืจืก ืึทืืข ืื ืคึฟืจืืื. ืฆื ืืึธื ืืึธืก, Istio ืฉืืขืื ืึท ืกืืืืงืึทืจ ืคึผืจืึทืงืกื
ืงืึทื ืขืงืฉืึทื ื ืฆืืืืฉื ืึทื ืืืื ืคึผืจืึทืงืกืื ืคืึธืจืขื ืึท ืกืขืจืืืืก ืืืื. ืื ืกืขืจืืืืก ืืขืฉ ืึทืจืงืึทืืขืงืืฉืขืจ ืืื ืึท ืฉืืืืข ืคืื โโืงืึธื ืืจืึธื ืืืืฃ ืฉืคึผืืฅ ืคืื Kubernetes.
ืืื ื ืขื ืืืื ืคึผืจืึทืงืกืื ืืืืคื ืืื ืืืืขืจ ืืืืืขื ืข ืงืึทื ืืืื ืขืจื, Istio ืงืขื ืขื ืืืื ืืื ืกืืึทืืืจื ืืืืฃ ืฉืคึผืืฅ ืคืื ืึท GKE ืงื ืืื ืืื ืึผืืขื ืงืืื ืขื ืืขืจืื ืืขื ืฆื ืื ืึทืคึผืืึทืงืืืฉืึทื ืงืึธื. ืึธืืขืจ ืืืจ ืืึธื ืืืจืืืขืงืึธืื ืขืืืขืืข ืึทืจืืขื ืฆื ืืึทืงืืืขื ืืืื ืึทืคึผืืึทืงืืืฉืึทื ืืจืืื ืฆื ืืืื ืืขืจืืื ืืืจื Istio:
- ืกืขืจืืืืกืขืก ืคึฟืึทืจ ืึทืืข ืงืึทื ืืืื ืขืจื. ืฆื ืืืคึผืืืืืึทื ืฅ ืฉืืื ะธ loadgen ืคืืจืืื ืื ืฆื ืื Kubernetes ืืื ืกื. ืืคืืื loadgen, ืืืึธืก ืืื ื ืืฉื ืืึทืงืืืขื ืื ืงืึทืืื ื ืจืืงืืืขืก, ืขืก ืืื ืึท ืืื ืกื.
- ืคึผืึธืจืฅ ืืื ืกืขืจืืืืกืขืก ืืืื ืืึธืื ื ืขืืขื. ืืึธืืฉ ืกืขืจืืืืก ืคึผืึธืจืฅ ืงืขื ืขื ืืืื ืึทื ื ืืืื ืืื GKE, Istio ืจืืงืืืืืขืจื ืืืจ ืฆื ืกืคึผืขืฆืืคืืฆืืจื
ืคึผืึธืจื ื ืึธืืขื ืืื ืืืื ืืื ืืืื ืคึผืจืึธืืึธืงืึธื. ืืื ืื YAML ืืขืงืข ืื ืคึผืึธืจื ืคึฟืึทืจ ืฉืืื ืืขืจืืคื ืืืืคึผืืืืึทื ืกืขืจืืืขืจ ื ืืฆื ืืขื ืคึผืจืึธืืึธืงืึธื ืืืืคึผ... ืืืื ืืื ืกื ืืขื ืืฆื ืืจืคึผืง, ืืืจ ืืืึธืื ื ืึธืืขื ืื ืคึผืึธืจื grpc. - ืืืคึผืืืืืึทื ืฅ ืืขื ืขื ืคืืึทืื. ืืขืจืืืขืจ, ืืืจ ืงืขื ืขื ื ืืฆื Istio ืก ืคืึทืจืงืขืจ ืคืึทืจืืืึทืืืื ื ืคึฟืขืึดืงืืืื, ืึทืืึท ืืื ืกืคึผืืืืื ื ืคืึทืจืงืขืจ ืฆืืืืฉื ืืืขืจืกืืขืก ืคืื ืืขืจ ืืขืืืืงืขืจ ืืื ืกื.
ืื ืกืืึทืืืจื Istio
ืขืก ืืขื ืขื ืฆืืืื ืืืขืื ืฆื ืื ืกืืึทืืืจื Istio. ืงืขื ืขื
ืกืขืืขืงืืืจื ืึทื ืึธืคึผืฆืืข, ืจืขืฆืขื ืืืข ืื ืฆืื ืขืืขื ืคืืจืขืจ ืืื ื ืึธืืืืื ืื ืื ืกืืจืึทืงืฉืึทื ื ืฆื ืื ืกืืึทืืืจื Istio ืืืืฃ ืืืื ืงื ืืื. ืืืื ืืืจ ืืืืื ืฆื ื ืืฆื Istio ืืื ืืืื ื ืื ืืืคึผืืืื ืึทืคึผืืึทืงืืืฉืึทื,
Cleanup
ืฆื ืืืกืืืืื ืืฉืึทืจืืืฉืื ื ืืืื Google ืงืืึธืื ืคึผืืึทืืคืึธืจื ืืฉืืื ืคึฟืึทืจ ืื ืจืขืกืืจืกื ืืืจ ืืขืืืืื ื ืืื ืืขื ืืืืึธืจืืึทื, ืืืกืืขืงื ืืขื ืงืึทื ืืืื ืขืจ ืงื ืืื ืึทืืึธื ืืืจ ืืึธื ืืื ืกืืึทืืืจื Istio ืืื ืคึผืืืึทืขื ืืื ืื ืืืกืืขืจ ืึทืคึผืืึทืงืืืฉืึทื. ืืึธืก ืืืขื ืืึทืืืึทืืืงื ืึทืืข ืงื ืืื ืจืขืกืืจืกื, ืึทืืึท ืืื ืงืึทืืคึผืืืืื ื ืื ืกืืึทื ืกืื, ืืืกืงืก ืืื ื ืขืฅ ืจืขืกืืจืกื.
ืืืึธืก ืก ืืืืึทืืขืจ?
-
ืืืกืคืึธืจืฉื ืื ืคืืืืขื ืืข ืืขืงื ืึทืืึทืืืฉืื:
ืืึธืงืงืขืจ ืงืึทื ืืืื ืขืจื ืงืึทื ืืืื ืขืจ ืจืขืืืกืืจื Kubernetes G.K.E. ืกืขืจืืืืก ืืืื ืืกืืืึธ
-
ืืืกืคืึธืจืฉื ืื ืคืืืืขื ืืข ืืืฉืืจืื:
-
ืืขืจื ืขื Kubernetes ืงืึทื ืกืขืคึผืก:
ืืงืืจ: www.habr.com