Istio แแ แแก แแแกแแฎแแ แฎแแแแแ แแแกแขแ แฃแแแแขแ แแแแแฌแแแแแฃแแ แแแแแแแชแแแแแก แแแกแแแแแจแแ แแแแแ, แแแกแแชแแแแ แแ แแแแแขแแ แแแแแกแแแแก. Istio แแงแแแแแก แแ แแแแแคแแ แแแแ แขแแฅแแแแแแแแก แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแก แแแกแจแขแแแฃแ แ แแแกแแจแแแแแ แแ แกแแแแ แแแแแ, แแแ แจแแ แแก แแแแขแแแแแ แแแก แแแแแแแชแแแก แแแแแก แจแแกแแคแฃแแแ แแ แแแแแแแแแแฃแแแแแแแก แแแกแแงแแแแแแแ, แฎแแแ Kubernetes แแ แแแแขแแแแแ แแแแก แแแ แแแแกแแแแก. แแแแขแแ, Istio-แกแแแ แแฃแจแแแแแกแแแแก แแฅแแแ แฃแแแ แแชแแแแ แ แแแแ แแฃแจแแแแก แแ แขแแฅแแแแแแแแแแ แแแคแฃแซแแแแฃแแ แแ แแแแแ แกแแ แแแกแแก แแฅแแแ แแแแแแแชแแ แแแ แแจแ แแกแขแแ. แแฃ แแก แฎแแแกแแฌแงแแแแ แแ แชแแแแแแ แฃแแแ แแแชแแแแแ แแฅแแแแแแแก, แแแแแ แแแแแแ แแแแแขแแแแ แแก แกแแฎแแแแซแฆแแแแแแ แแ แแแแแแแ แแแ แแแแแ แแแแงแแคแแแแแแจแ
แแก แแ แแก แแแแแฏ-แแแแแฏ แกแแฎแแแแซแฆแแแแแแ, แกแแแแช แฉแแแ แแแแแแฎแแแแแ แแแแ แแ แแชแแกแก แฌแงแแ แแก แแแแแแแ GKE แแแแขแแแแแ แแแแ, แ แแแ แแแแชแแ แแ แขแแฅแแแแแแแแแแก แซแแ แแแแแ แแแแแแ แแแแแแแแแก แกแแจแฃแแแแแแ. แแฅแแแ แแกแแแ แแแฎแแแ, แแฃ แ แแแแ แแงแแแแแก Istio แแ แขแแฅแแแแแแแแแแก แซแแแแก. แแก แแแ แแฃแแแแก, แ แแ แแฅแแแ แแ แแคแแ แ แแชแแ แแแแขแแแแแ แแแแก, แแฃแแแ แแแขแแแแก, แกแแ แแแกแแก แแแแแแแแก แแ แแกแขแแแก แจแแกแแฎแแ.
แแแแชแแแแแ
แแ แแแแแแแแแแ แแฅแแแ แจแแแกแ แฃแแแแ แจแแแแแ แแแแแแแแแแก:
- แแแ แขแแแ hello world แแแแแแแชแแแก แกแฌแแแแ แแ แแแแแ แกแแ แแแกแแ.
- แแแฃแจแแแ แแแแแแแชแแ แกแแฌแงแแกแ แแแแแแแ.
- แแแแแชแฎแแแแก แจแแคแฃแแแ แแแแขแแแแแ แแแจแ.
- Kubernetes แแแแกแขแแ แแก แจแแฅแแแ.
- แแแแขแแแแแ แแแแก แแแแแแแแแ แแแแกแขแแ แจแ.
แฒกแแแแ แแแแฌแงแแ
แแแฐแงแแแแ แแแกแขแ แฃแฅแชแแแก Kubernetes Engine API-แแก แฉแแกแแ แแแแแ:
- แแแแแแแ
Kubernetes Engine แแแแ แแ Google Cloud Platform-แแก แแแแกแแแจแ. - แจแแฅแแแแแ แแ แจแแแ แฉแแแ แแ แแแฅแขแ.
- แแแแแแแแ แกแแแแ API แแ แแแกแแแ แแแแแแจแแ แแแฃแแ แกแแ แแแกแแแ แแแแฅแขแแฃแ แแแแ. แแแแก แจแแแซแแแแ แ แแแแแแแแ แฌแฃแแ แแแกแญแแ แแแก.
- แแแ แฌแแฃแแแแ, แ แแ แแแแแแแ แแแงแแแแแฃแแแ แแฅแแแแ Google Cloud Platform แแ แแแฅแขแแกแแแแก.
แแกแฌแแแแแ แ แแแแ แฉแแ แแแ แแแแแแแ .
แแ แแแแแแแแแจแ แจแแแแซแแแแ แแแแแแงแแแแ Cloud Shell, แ แแแแแแช แแแแแแแแก แแแ แขแฃแแแฃแ แแแแฅแแแแก
แแแ แแแแขแ A: Cloud Shell-แแก แแแแแงแแแแแ
Cloud Shell-แแก แแแแแงแแแแแแก แฃแแแ แแขแแกแแแแแ:
- Python 2 แแ Python 3 แแแแแแแแ แแแแก แแแ แแแ (แแแ แจแแ แแก แแแ แขแฃแแแฃแ แ) แกแ แฃแแแ แแ แแก แแแแคแแแฃแ แแ แแแฃแแ.
- แแ แซแแแแแแก แฎแแแแก แแแกแขแ แฃแแแแขแแแ gcloud, docker, แขแฃแ แแแแ ะธ แแฃแแแฅแขแแ, แ แแแแแกแแช แฉแแแ แแแแแแแงแแแแแ, แฃแแแ แแแแแกแขแแแแ แแแฃแแแ.
- แแฅแแแ แแแฅแแ แ แแแแแแแแ แแ แฉแแแแแ
แขแแฅแกแขแแก แ แแแแฅแขแแ แแแ :แแแแแก แ แแแแฅแขแแ แ , แ แแแแแแช แแฎแกแแแแ Cloud Shell-แแก แคแแแฏแ แแก แแแแ แ แแแแฅแขแแ แแแแก แฎแแขแฃแแแแ.- Emacs, Vim แแ Nano, แ แแแแแแแช แแฎแกแแแแ Cloud Shell-แแก แแ แซแแแแแแก แฎแแแแแแ.
แฒแแแแงแแแแแ
- แแแแแแแ GCP แแแแกแแแแ.
- แแแแญแแ แแ แฆแแแแแก Cloud Shell-แแก แแแแฅแขแแฃแ แแแ (แแแแฅแขแแฃแ แแ Cloud Shell) GCP แแแแกแแแแก แคแแแฏแ แแก แแแแ แแแฌแแแจแ.
แฅแแแแ แแแฌแแแจแ
แแแ แแแแขแ B: แแ แซแแแแแแก แฎแแแแก แแแกแขแ แฃแแแแขแแแแก แแแแแแแแ แแแแ แแแแแงแแแแแ
แแฃ แแแฃแจแแแแแ แแแแแแฃแขแแ แแ, แ แแแแแแช แแฃแจแแแแก Linux แแ macOS-แแ, แแแแแฌแแแ แจแแแแแแ แแแแแแแแแขแแแแก แแแแคแแแฃแ แแชแแ แแ แแแกแขแแแแชแแ:
-
แแแ แแแแ
Python 3 แแ Python 2 แแแแแแแแ แแแแก แแแ แแแ . -
แแแแแแกแขแแแแ แแ Cloud SDK แแ แซแแแแแแก แฎแแแแก แฎแแแกแแฌแงแแแ gcloud. -
แฃแชแแแแแ แแฃแแแฅแขแแ - แแ แซแแแแแแก แฎแแแแก แแแกแขแ แฃแแแแขแ แแฃแจแแแแแกแแแแก
แแฃแแแ แแแขแแแ .gcloud components install kubectl
-
แฃแชแแแแแ
Docker Community Edition (CE) . แแฅแแแ แแแแแแงแแแแแ แแ แซแแแแแแก แฎแแแแก แฎแแแกแแฌแงแแก dockerแแแแฃแจแแก แแแแแชแฎแแแแกแแแแก แแแแขแแแแแ แแก แกแฃแ แแแแแแก แจแแกแแฅแแแแแแ. -
แแแแแแกแขแแแแ แแ แแแกแขแ แฃแแแแขแ
Git แแแ แกแแแก แแแแขแ แแแ GitHub-แแแ แแแแแแแชแแแก แแแแฃแจแแก แแแกแแฆแแแแ.
แฉแแแแขแแแ แแแ แแแแแก แแแแฃแจแ
-
แฉแแแแขแแแ แแแ แกแแฌแงแแกแ แแแแ helloserver:
git clone https://github.com/GoogleCloudPlatform/istio-samples
-
แแแแแแแ แแแแแก แแแแแแแแแก แแแ แแฅแขแแ แแแจแ:
cd istio-samples/sample-apps/helloserver
แแแแแแแชแแแก แจแแกแฌแแแแ แแ แแแแแ แกแแ แแแกแแ
แแแแแชแฎแแแแก แแแแฃแจแ แแแฌแแ แแแแ แแแแแแจแ แแ แจแแแแแแ แแ แ แแแแแแแแแขแแกแแแ, แ แแแแแแแช แฃแ แแแแ แแฅแแแแแแแ แแแแแงแแแแแแ
- แกแแ แแแ แแ: แแแ แขแแแ แกแแ แแแ แ แแ แแ แแแแ แฌแแ แขแแแแ แแแแฆแแ, /, แ แแแแแแช แแแแกแแแแ แแแแญแแแแ "hello world".
- แฉแแแขแแแ แแแแ: แกแแ แแแขแ, แ แแแแแแช แแแแแแแแก แขแ แแคแแแก แกแแ แแแ แแ, แแแแฎแแแแแก แแแแคแแแฃแ แแ แแแแแ แ แแแแแแแแแ แฌแแแจแ.
แแแแแแแชแแแก แแแจแแแแ แกแแฌแงแแกแ แแแแแแแ
แแแแฃแจแแก แแแแแแแชแแแก แจแแกแแกแฌแแแแแ, แแแฃแจแแแ แแก Cloud Shell-แจแ แแ แแฅแแแแก แแแแแแฃแขแแ แจแ.
1) แแแขแแแแแจแ istio-samples/sample-apps/helloserver แแแจแแแแ แกแแ แแแ แแ:
python3 server/server.py
แแแจแแแแแก แแ แแก แกแแ แแแ แแ แแแฉแแแแแแแ แจแแแแแแ:
INFO:root:Starting server...
2) แแแฎแกแแแแ แกแฎแแ แขแแ แแแแแแแก แคแแแฏแแ แ แแแแฎแแแแแแแก แแแกแแแแแแแแ แกแแ แแแ แแ. แแฃ แแงแแแแแ Cloud Shell-แก, แแแแฌแแแแฃแแแ แแแแแขแแแแก แฎแแขแฃแแแแ แกแฎแแ แกแแกแแแก แแแกแแฎแกแแแแแ.
3) แแแแแแแแแ แแแแฎแแแแ แกแแ แแแ แแ:
curl http://localhost:8080
แกแแ แแแ แแก แแแกแฃแฎแแแ:
Hello World!
4) แแ แแแ แแฅแขแแ แแแแแ, แกแแแแช แแแแแแฌแแ แแ แแแแแก แแแแฃแจแ, แแแแแแแ แแแ แแฅแขแแ แแแจแ, แ แแแแแแช แจแแแชแแแก แฉแแแขแแแ แแแแ:
cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/loadgen
5) แจแแฅแแแแแ แจแแแแแแ แแแ แแแแก แชแแแแแแแ:
export SERVER_ADDR=http://localhost:8080
export REQUESTS_PER_SECOND=5
6) แแแจแแแแ แแแ แขแฃแแแฃแ แ:
virtualenv --python python3 env
7) แแแแฅแขแแฃแ แแ แแแ แขแฃแแแฃแ แ แแแ แแแ:
source env/bin/activate
8) แแแแงแแแแ แแแแฎแแแแแแ แฉแแแขแแแ แแแแ:
pip3 install -r requirements.txt
9) แแแจแแแแ แฉแแแขแแแ แแแแ:
python3 loadgen.py
แแแจแแแแแก แแ แแก แฉแแแขแแแ แแแแ แแฉแแแแแแก แ แแฆแแช แจแแแแแ แจแแขแงแแแแแแแแก:
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: */*
แฅแกแแแแก แแแแแกแแแ แแกแแ, แแแแแ แแแแแแแชแแ แแฃแจแแแแก แแ แ แฐแแกแขแแ (แแแแแแฃแ แ แแแแแแฃแขแแ แ แแ Cloud Shell แแแ แขแฃแแแฃแ แ แแแแฅแแแ). แแแแขแแ แจแแแแซแแแแ แแแแแแงแแแแ localhostแแแแฎแแแแแก แแแแแแแแ แกแแ แแแ แแ.
10) แแแฉแแ แแแ แฉแแแขแแแ แแแแ ะธ แกแแ แแแ แแ, แจแแแ Ctrl-c แงแแแแ แขแแ แแแแแแแก แคแแแฏแแ แแจแ.
11) แขแแ แแแแแแแก แคแแแฏแแ แแจแ แฉแแแขแแแ แแแแ แแแแแ แแแ แแแ แขแฃแแแฃแ แ แแแ แแแ:
deactivate
แแแแแชแฎแแแแก แจแแคแฃแแแ แแแแขแแแแแ แแแจแ
แแแแแแแชแแแก GKE-แแ แแแกแแจแแแแแ, แแฅแแแ แฃแแแ แจแแคแฃแแแ แแแแแแแแแก แแแแแแแชแแ โ แกแแ แแแ แแ ะธ แฉแแแขแแแ แแแแ - แจแ
แแแแแชแฎแแแแก แแแแขแแแแแ แจแ แจแแกแแคแฃแแแ แแญแแ แแแแแ dockerfile. dockerfile แแ แแก แขแแฅแกแขแฃแ แ แคแแแแ, แ แแแแแแช แแแแกแแแฆแแ แแแก แแ แซแแแแแแแก แแแแแแแชแแแก แฌแงแแ แแก แแแแแกแ แแ แแแกแ แแแแแแแแแแฃแแแแแก แจแแกแแฅแแแแแแ
แแแแแแแแ แฃแแแ แแฅแแก dockerfile แแแแกแแแแก แกแแ แแแ แแ ะธ แฉแแแขแแแ แแแแ แงแแแแ แกแแญแแ แ แแ แซแแแแแแ แกแฃแ แแแแแแก แจแแกแแแ แแแแแแแ. แฒฅแแแแแ - 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-แกแแแแ, แ แแแแ แช แแแแ แแฃแแแแแ แแแแแ แก แแแแแแงแแแแก แฃแแฎแแแกแ
แแแแแแแก 3 แกแฃแ แแแ แ แแแแ แช แแแแ. - แแฃแแแ แแกแแ. . แแแแแแ แแแก แฌแงแแ แแก แคแแแแแแก แแแแแแแแ แ แกแแแฃแจแแ แแแ แแฅแขแแ แแแจแ (แแฎแแแแ แฉแแแแก แจแแแแฎแแแแแจแ server.py) แแแแขแแแแแ แแก แคแแแแฃแ แกแแกแขแแแแจแ.
- แฒจแฒแฒกแฒแฒแฒแฒก แฒฌแฒแฒ แฒขแฒแฒแฒ แแแแกแแแฆแแ แแแก แแ แซแแแแแแก, แ แแแแแแช แแแแแแงแแแแแ แแแแขแแแแแ แแก แแแกแแฌแงแแแแ. แฉแแแแก แจแแแแฎแแแแแจแ, แแก แแ แซแแแแแ แแแแฅแแแก แแแแแแ, แ แแช แแฅแแแ แแงแแแแแแแ server.py แกแแฌแงแแกแ แแแแแแแ.
- แแฃแแแ แแแแแแจแแแ แแแแแ แแแฃแแแแแแก แแแแแ แกแแ แแแ แแ แแแแแแแ แแแแแชแแแแแก แแแ แขแแก แกแแจแฃแแแแแแ 8080. แแก แแฃแแแ แแ แแ แแก
แฃแแ แฃแแแแแงแแคแก แแแ แขแแแก . แแก แแ แแก แแ แแแแแ แ แแแแฃแแแแขแแชแแ, แ แแแแแแช แกแแญแแ แแ แแแ แขแแก แแแกแแฎแกแแแแแ 8080 แแแแขแแแแแ แแก แแแจแแแแแกแแก.
แแฅแแแแ แแแแแชแฎแแแแก แแแแขแแแแแ แแแแชแแแกแแแแก แแแแแแแ
1) แแแแงแแแแ แจแแแแแแ แแแ แแแแก แชแแแแแแแ. แฉแแแแชแแแแแ PROJECT_ID แแฅแแแแ GCP แแ แแแฅแขแแก ID-แแ.
export PROJECT_ID="PROJECT_ID"
export GCR_REPO="preparing-istio"
แฆแแ แแแฃแแแแแแแก แแแแแงแแแแแ PROJECT_ID ะธ GCR_REPO แแฅแแแ แแแแจแแแแ Docker แกแฃแ แแแก, แ แแแแกแแช แฅแแแแ แแแก แแ แแงแแแแแ แแแก แแแ แซแ แแแแขแแแแแ แแแแก แ แแแกแขแ แจแ.
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 แขแแแก. แแก แแ แแก แกแฃแ แแแแก แกแแฎแแแ, แ แแแแแกแแช แแงแแแแแ แแแแขแแแแแ แแก แแแแแแแแแแกแแก.
- แแขแแแ แแแ แกแฃแ แแแ แแแแขแแแแแ แแก แ แแแกแขแ แจแ:
docker push gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1
loadgen-แแก แแแแขแแแแแ แแแแชแแ
1) แแแแแแแ แแแ แแฅแขแแ แแแจแ, แกแแแแช แแแแแแแแ แแแแแแ แแแแก แฉแแแขแแแ แแแแ:
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 แแแแกแขแแ แแก แจแแฅแแแ.
แแก แแแแขแแแแแ แแแ แจแแแซแแแแ แแแจแแแแฃแแ แแงแแก Cloud Shell-แแก แแแ แขแฃแแแฃแ แแแแฅแแแแแ แแ แแแแแแฃแขแแ แแ แแ แซแแแแแแ แแแแแ แแก แแแจแแแแ. แแแแ แแ แกแแฌแแ แแแ แแแ แแแแจแ, แแฅแแแ แแญแแ แแแแแ แแแแขแแแแแ แแแแก แชแแแขแ แแแแแแแฃแแ แแ แแแกแขแ แแ แแแแก แกแแจแฃแแแแแ. แแแแแแแแแ, แแญแแ แแแแแ แกแแกแขแแแ, แ แแแแแแช แแแ แฌแแฃแแแแแ, แ แแ แแแแขแแแแแ แแแ แงแแแแแแแแก แแฃแจแแแแแ, แแ แแฅแแแ แแญแแ แแแแแ แแแ, แ แแ แแแแคแแ แแแแแ แแ แแแแแ แแแ แแแแขแแแแแ แแก แแแแแขแแแแแ แจแแแแฎแแแแแแ, แแฃ แขแ แแคแแแ แแแแแ แแแแ.
แแแแขแแแแแ แแ แแแฃแแ แแแแแแแชแแแแแก แแแกแแจแแแแแ แจแแแแซแแแแ แแแแแแงแแแแ
GKE แแแแกแขแแ แแก แจแแฅแแแ:
1) แจแแฅแแแแแ แแแแกแขแแ แ:
gcloud container clusters create istioready
--cluster-version latest
--machine-type=n1-standard-2
--num-nodes 4
แแฃแแแ gcloud แฅแแแแก istioready แแแแกแขแแ แก GCP แแ แแแฅแขแจแ แแ แแฅแแแ แแแแ แแแแแแแแฃแ แแแแฃแแแกแฎแแแ แแแแแจแ. Istio-แก แแแกแแจแแแแแ, แฉแแแ แแแ แฉแแแ แแฅแแแแแ แแแแแแฃแ 4 แแแแแซแ แแ แแแ แขแฃแแแฃแ แ แแแแฅแแแ
แแฃแแแ แฅแแแแก แแแแกแขแแ แก แ แแแแแแแแ แฌแฃแแจแ. แ แแแแกแแช แแแแกแขแแ แ แแแแ แแ แแก, แแ แซแแแแแ แแแแแกแชแแแก แแกแแแแก แ แแฆแแชแแก
2) แแแฃแแแแแ แ แฌแแฃแแแแแแ แกแแแแแแแ แแ แซแแแแแแก แฎแแแแก แฎแแแกแแฌแงแแจแ
gcloud container clusters get-credentials istioready
3) แแฎแแ แแฅแแแ แจแแแแซแแแแ แแแฃแแแแจแแ แแแ Kubernetes-แแก แแแจแแแแแแ แแฃแแแฅแขแแ. แแแแแแแแแ, แจแแแแแ แแ แซแแแแแแก แจแแฃแซแแแ แแแแ แแแแแก แแแแแซแแแแก แกแขแแขแฃแกแ:
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-แจแ แแแแขแแแแแ แแแ แฎแแ แแแแแแก แกแแฎแแ แแฃแจแแแแก. Pod แแฃแแแ แแแขแจแ แแ แแก แแแแฃแงแแคแแแ แแ แแแฃแแ. Pod แแขแแแก แแ แ แแ แแแข แแแแขแแแแแ แก. แแฅแแแ แแแแแแแแกแแแ แกแแ แแแ แแก แแแแขแแแแแ แแแก แแ แฉแแแขแแแ แแแแ แชแแแแแฃแ แแฃแแแแแจแ. แ แแแแกแแช แแแแจแ แ แแแแแแแแ แแแแขแแแแแ แแ (แแแแแแแแแ, แแแแแแแชแแแก แกแแ แแแ แ แแ
แแ แแฅแกแ แกแแ แแแ แ ), แแแแขแแแแแ แแแ แแแแ แแแแ แ แแแแ แช แแ แแแแแ แแ แแแแแ แแแแ แแแ แ แแกแฃแ แกแแแก. - แแแแแแแแแ. Kubernetes-แจแ, แแแแแแแแแ แแ แแก แแแแแฅแขแ, แ แแแแแแช แฌแแ แแแแแแแแก แแแแแขแฃแ แ แฏแแ แแแแแแแก แแ แแแฃแแก. Deployment แแฌแแ แแแแแก แแแแแซแแแแก แแ แแแแ แแกแแก, แ แแแแแแแช แแแฌแแแแแแ แแแแกแขแแ แฃแ แแแแแซแแแจแ. แแแแแแแแแ แแแขแแแแขแฃแ แแ แชแแแแก แแแแแแก, แ แแแแแแแช แแแ แแแฎแแ แฎแแ แแ แแ แ แแแแแ แแแก.
- Kubernetes แกแแ แแแกแ. GKE-แจแ แแแแแแแชแแแก แแแแแก แแแจแแแแแกแแก, แแแแจแแ แ แฉแแแขแแแ แแแแ ะธ แกแแ แแแ แแ. แ แแแแกแแช แแแแฌแงแแ แกแแ แแแกแแแ Cloud Shell-แแก แแแ แขแฃแแแฃแ แแแแฅแแแแแ แแ แแแกแแขแแแแ, แแฅแแแ แแแแแแแแแ แแแแฎแแแแแแ แกแแ แแแ แแ แแ แแแแแฐแแกแขแ: 8080. GKE-แแ แแแแแแแแแแก แจแแแแแ, แแแแแแ แจแแกแ แฃแแแแฃแแแ แฎแแแแแกแแฌแแแแ แแแแแซแแแแ. แแแแฃแแแกแฎแแแแแ, แแฅแแแ แแ แแแฅแแ แแแแขแ แแแ แแแแแ, แแฃ แ แแแแ แแแแแซแแ แแฃแจแแแแก pod, แแกแ แ แแ แแฅแแแ
แแแแแแแแ แแ แแ แแก แแฃแแแแแ IP แแแกแแแแ แแแแ.
IP แแแกแแแแ แแแก แแแกแแฆแแแแ แกแแ แแแ แแ, แแฅแแแ แฃแแแ แแแแกแแแฆแแ แแ แฅแกแแแแก แแแกแขแ แแฅแชแแ แแแแแแแก แแแแแ. แกแฌแแ แแ แแก แแ แแกKubernetes แกแแ แแแกแ . Kubernetes แกแแ แแแกแ แฃแแ แฃแแแแแงแแคแก แแฃแแแแ แกแแแแแแ แฌแแ แขแแแก แแแแแแแก แแแแ แแแแกแแแแก. แฒแ แแก แชแแขแแแแแแแแแแกแแฎแฃแ แแแแก แกแแฎแแแแ . แกแแ แแแ แแ แแงแแแแแก LoadBalancer, แ แแแแแแช แฃแแ แฃแแแแแงแแคแก แแแ แ IP แแแกแแแแ แแก แแแกแแแแแจแแ แแแแแ แกแแ แแแ แแ แแแแกแขแแ แแก แแแ แแแแ.
Kubernetes-แก แแกแแแ แแฅแแก แฉแแจแแแแแฃแแ DNS แกแแกแขแแแ, แ แแแแแแช แแแแญแแแก DNS แกแแฎแแแแแก (แแแแแแแแแ, helloserver.default.cluster.local) แแแแกแแฎแฃแ แแแ. แแแแก แฌแงแแแแแแ, แแแแกแขแแ แจแ แจแแแแแแแ แแแแแแแ แแฃแแแแ แแแกแแแแ แแแ แแแแฃแแแแแชแแแก แฃแฌแแแแ แแแแกแขแแ แจแ แแ แกแแแฃแ แกแฎแแ แแแแแแก. DNS แกแแฎแแแแก แแแแแงแแแแแ แจแแฃแซแแแแแแแ แแแแกแขแแ แแก แแแ แแ, แแแแแแแแแ, Cloud Shell-แจแ แแ แแแแแแฃแขแแ แจแ.
Kubernetes แแแแแแแแ
แ แแแแกแแช แแแแแแแชแแแก แฌแงแแ แแแแ แแแฃแจแแแ, แแงแแแแแแแ แแแแแ แแขแแฃแ แแ แซแแแแแแก python3
server.py
แแแแแ แแขแแแ แแฃแแแกแฎแแแแก แแแแแก: "แแแแแแแ แแก".
Kubernetes แแงแแแแแก
แแฅแแแ แแแฃแแแแแแ แกแแกแฃแ แแแ แแแแแแแ แแแแแก แแแแแคแแกแขแแแจแ แแ แคแแแแแแจแ
แแแแแแแแ แจแแแชแแแก YAML แคแแแแก แกแแ แแแ แแ ะธ แฉแแแขแแแ แแแแ. แแแแแแฃแแ 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
- แกแแฎแแก แแแฃแแแแแแก แแแแแฅแขแแก แขแแแแ.
- แแแขแแแแแแชแแแแแ.แกแแฎแแแ แแแแกแแแฆแแ แแแก แแแแแแแแแแก แกแแฎแแแก.
- แแแ แแแแ แแแแ แกแแแช แจแแแชแแแก แกแแกแฃแ แแแแ แแแแแแแ แแแแแก แแฆแฌแแ แแก.
- แกแแแช.แ แแแแแแ แแแฃแแแแแแก แฌแแแฌแแแแก แกแแกแฃแ แแแ แ แแแแแแแแแแ.
- แกแแฅแชแแ แกแแแช.แแแ แแ แแแแกแแแฆแแ แแแก pod แจแแแแแแก. แแแแแก แกแแแชแแคแแแแชแแแจแ แแ แแก แแแแ แกแฃแ แแแ, แ แแแแแแช แแแแกแแแฆแแ แแแก แแ แกแฃแ แแแแก แกแแฎแแแก, แ แแแแแแช แฃแแแ แแงแแก แแแแฆแแแฃแแ แแแแขแแแแแ แแก แ แแแกแขแ แแแแ.
แกแแ แแแกแ แแแแแกแแแฆแแ แแแ แจแแแแแแแแแ แแ:
apiVersion: v1
kind: Service
metadata:
name: hellosvc
spec:
type: LoadBalancer
selector:
app: helloserver
ports:
- name: http
port: 80
targetPort: 8080
- LoadBalancer: แแแแแแขแแแ แแแแแแแแแ แแแแฎแแแแแแก แแแขแแแ แแแแก แแแแแแกแแ แแก IP แแแกแแแแ แแแ, แ แแแแแกแแช แแฅแแก แแฃแแแแแ IP แแแกแแแแ แแ แแ แฎแแแแแกแแฌแแแแแแ แแแแกแขแแ แแก แแแ แแแแ.
- targetPort: แ แแแแ แช แแแฎแกแแแ, แแฃแแแ EXPOSE 8080 ะฒ dockerfile แแ แฃแแ แฃแแแแแงแ แแแ แขแแแ. แแฅแแแ แแฌแแแแ แแแ แขแก 8080แแกแ แ แแ แแฅแแแ แจแแแแซแแแแ แแแฃแแแแจแแ แแแ แแแแขแแแแแ แก แกแแ แแแ แแ แแแแกแขแแ แแก แแแ แแ. แฉแแแแก แจแแแแฎแแแแแจแ hellosvc.default.cluster.local:80 (แแแแแ แกแแฎแแแ: hellosvc) แจแแแกแแแแแแแ แแแ แขแก 8080 แแแ IP แแแกแแแแ แแแแ helloserver.
- แแแ แขแ: แแก แแ แแก แแแ แขแแก แแแแแ แ, แกแแแแช แแแแกแขแแ แจแ แกแฎแแ แกแแ แแแกแแแ แแแแแแแแแแ แแแแฎแแแแแแก.
loadgen.yaml
แแแแแแแแแแก แแแแแฅแขแ loadgen.yaml แแแแแแงแฃแ แแแ แ แแแแ แช server.yaml. แแแแกแฎแแแแแแ แแกแแ, แ แแ แแแแแแแแแแก แแแแแฅแขแ แจแแแชแแแก แแแแงแแคแแแแแแก env. แแก แแแแกแแแฆแแ แแแก แแแ แแแแก แชแแแแแแแก, แ แแแแแแแช แกแแญแแ แแ แฉแแแขแแแ แแแแ แแ แ แแแแแแช แแแแแแกแขแแแแ แแ แแแแแแแชแแแก แฌแงแแ แแแแ แแแจแแแแแกแแก.
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
แแ แ แฉแแแขแแแ แแแแ แแ แแฆแแแก แจแแแแกแฃแ แแแแฎแแแแแแก, แกแคแแ แแกแแแแก แขแแแ แแแแแแแแฃแแ 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) แจแแชแแแแแ แกแแฎแแแ แแแแจแ แกแฃแ แแแ แแฅแแแแ Docker แกแฃแ แแแแก แกแแฎแแแแ.
image: gcr.io/PROJECT_ID/preparing-istio/helloserver:v0.0.1
แฉแแแแชแแแแแ PROJECT_ID แแฅแแแแ GCP แแ แแแฅแขแแก ID-แแ.
4) แจแแแแแฎแแ แแ แแแฎแฃแ แแ server.yaml.
5) แแแแแแแแกแแ YAML แคแแแแ Kubernetes-แจแ:
kubectl apply -f server.yaml
แฌแแ แแแขแแแแ แแแกแ แฃแแแแแก แจแแแแแ, แแ แซแแแแแ แแฌแแ แแแแแก แจแแแแแ แแแแก:
deployment.apps/helloserver created
service/hellosvc created
6) แแแแแแแ แแแ แแฅแขแแ แแแจแ, แกแแแแช แฉแแแขแแแ แแแแ:
cd ../loadgen
7) แแแฎแกแแแแ loadgen.yaml แขแแฅแกแขแฃแ แ แแแแฅแขแแ แจแ.
8) แจแแชแแแแแ แกแแฎแแแ แแแแจแ แกแฃแ แแแ แแฅแแแแ Docker แกแฃแ แแแแก แกแแฎแแแแ.
image: gcr.io/PROJECT_ID/preparing-istio/loadgenv0.0.1
แฉแแแแชแแแแแ PROJECT_ID แแฅแแแแ GCP แแ แแแฅแขแแก ID-แแ.
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) แแแแแฆแแ แแแแแแแชแแแก แแฃแ แแแแแแ แแแแแแแ แฉแแแขแแแ แแแแ. แฉแแแแชแแแแแ 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
แแแแฆแแ แแกแขแแ
แแฅแแแ แฃแแแ แแแฅแแ แแแแแแแชแแ แแแแแแแแแฃแแ GKE-แแ. แฉแแแขแแแ แแแแ แจแแแแซแแแแ แแแแแแงแแแแ Kubernetes DNS (hellosvc: 80) แแแแฎแแแแแแแก แแแแแแแแ แกแแ แแแ แแแแ แแฅแแแ แจแแแแซแแแแ แแแแแแแแแ แแแแฎแแแแแแ แกแแ แแแ แแ แแแ แ IP แแแกแแแแ แแแ. แแแฃแฎแแแแแแ แแแแกแ, แ แแ Kubernetes-แก แแแแ แ แคแฃแแฅแชแแ แแฅแแก, แกแแ แแแกแแแแก แจแแกแแฎแแ แแแ แแแแฃแแ แแแคแแ แแแชแแ แแแแแ:
- แ แแแแ แฃแ แแแแ แแฅแแแแแแแ แกแแ แแแกแแแ? แ แแแแ แแ แฃแ แแแแ แแแแ แกแแ แแแกแแแก แจแแ แแก? แ แแแแ แแแแแแแแแ แขแ แแคแแแ แกแแ แแแกแแแก แจแแ แแก? แฎแแ แแชแ แ แแ แฉแแแขแแแ แแแแ แแแแแแแแก แแแแฎแแแแแแก แกแแ แแแ แแ, แแแแ แแ แฌแแ แแแแแแแแแ, แ แแ แแฅแแแ แแ แแคแแ แ แแชแแ แแแแแแแชแแแก แจแแกแแฎแแ. แแ แแแแฎแแแแแ แแแกแฃแฎแแก แแแกแแชแแแแ, แแแแแ แแแแแแฎแแแแ GKE-แจแ แแแจแแแแฃแแ แแแแแแแก แกแแแก.
- แแแขแ แแแ. แฒ แแแแแ แฎแแแก แกแแ แแแ แแ แแแกแฃแฎแแแก แจแแแแกแฃแ แแแแฎแแแแแก? แ แแแแแ แแแแฎแแแแแก แแฆแแแก แกแแ แแแ แ แฌแแแจแ? แจแแชแแแแแก แจแแขแงแแแแแแแแแก แแซแแแแ?
- แฃแกแแคแ แแฎแแแแแก แแแคแแ แแแชแแ. แแแซแ แแแแแก แจแแ แแก แฉแแแขแแแ แแแแ ะธ แกแแ แแแ แแ แฃแแ แแแแ แแแแแก HTTP แแ แแแก แแแแ
mTLS ?
แแกแขแแ แแแกแฃแฎแแแก แงแแแแ แแ แแแแฎแแแก. แแแแกแแแแแก Istio แแแแแกแแแก sidecar proxy-แก
แแแแจแแ แแแ Envoy แแแ แแแแแขแแแก แจแแ แแก แฅแแแแแ แกแแ แแแกแแก แฅแกแแแก. แกแแ แแแกแแก แฅแกแแแแก แแ แฅแแขแแฅแขแฃแ แ แฃแแ แฃแแแแแงแแคแก แแแแขแ แแแแก แคแแแแก Kubernetes-แแก แแแแแ.
แแแแแแแแ Envoy proxies แแฃแจแแแแก แกแแแฃแแแ แแแแขแแแแแ แแแจแ, Istio แจแแแซแแแแ แแแแแกแขแแแแ แแแก GKE แแแแกแขแแ แแก แแแแแ, แแแแแแแชแแแก แแแแจแ แแแแฅแแแก แชแแแแแแแแแแก แแแ แแจแ. แแแแ แแ แแฅแแแ แแแแแแแแ แแแ แแแแฃแแ แกแแแฃแจแแ แแแแกแแแแแก, แ แแ แแฅแแแแ แแแแแแแชแแ แแแแแแแแแก Istio-แก แแแแ แกแแแแ แแแแแ:
- แแแแกแแฎแฃแ แแแ แงแแแแ แแแแขแแแแแ แแกแแแแก. แแแแแแแแแแกแแแ แกแแ แแแ แแ ะธ แฉแแแขแแแ แแแแ แแแแแฃแแ แแฃแแแ แแแขแแก แกแแแกแแฎแฃแ แแแ. แแฃแแแแช แฉแแแขแแแ แแแแ, แ แแแแแแช แแ แแฆแแแก แจแแแแกแฃแ แแแแฎแแแแแแก, แแ แแก แกแแ แแแกแ.
- แกแแ แแแกแแแจแ แแแ แขแแแก แฃแแแ แฐแฅแแแแแ แกแแฎแแแแแ. แแแฃแฎแแแแแแ แแแแกแ, แ แแ แกแแ แแแกแแก แแแ แขแแแ แจแแแซแแแแ แแแ แฉแแก แฃแกแแฎแแแ GKE-แจแ, Istio แแแแแฎแแแก, แ แแ แแแฃแแแแแ
แแแ แขแแก แกแแฎแแแ แแแกแ แแ แแขแแแแแแก แจแแกแแแแแแกแแ. YAML แคแแแแจแ แแแ แขแ for แกแแ แแแ แแ แแแฃแฌแแแ httpแ แแแแแ แกแแ แแแ แ แแงแแแแแก แแ แแขแแแแแก HTTP. แแฃ แแแแกแแฎแฃแ แแแ แแแแแแงแแแแแ gRPCแแแ แขแก แแแแ แฅแแแแแแ grpc. - แแแแแแแแแ แแแแแจแแฃแแแ. แแแแขแแ, แจแแแแซแแแแ แแแแแแงแแแแ Istio-แก แขแ แแคแแแแก แแแ แแแแก แคแฃแแฅแชแแแแ, แ แแแแ แแชแแ แขแ แแคแแแแก แแแงแแคแ แแแแแ แกแแ แแแกแแก แแแ แกแแแแก แจแแ แแก.
แแแกแขแแแแชแแ
Istio-แก แแแงแแแแแแก แแ แ แแแ แแ แกแแแแแก. แจแแฃแซแแแ
แแแ แฉแแแ แแแ แแแแขแ, แแแแแฎแแแแ แจแแกแแแแแแก แกแแฎแแแแซแฆแแแแแแแก แแ แแแฐแงแแแแ แแแกแขแ แฃแฅแชแแแแก, แ แแ แแแแแแกแขแแแแ แแ Istio แแฅแแแแก แแแแกแขแแ แแ. แแฃ แแกแฃแ แ แแแแแแงแแแแ Istio แแฅแแแแก แแฎแแแ แแแแแแแแแฃแ แแแแแแแชแแแจแ,
แแแกแฃแคแแแแแแแก
แแแแกแแแแแก, แ แแ แแแแแแแ แแแชแแแแ แแแแฎแ แแฅแแแแก Google Cloud Platform-แแก แแแแแ แแจแแ แแ แกแแฎแแแแซแฆแแแแแแแจแ แแแแแงแแแแแฃแแ แ แแกแฃแ แกแแแแกแแแแก, แฌแแจแแแแ แแแแขแแแแแ แแแแก แแแแกแขแแ แ, แ แแแแ แช แแ แแแแแแกแขแแแแ แแแ Istio-แก แแ แแแแแแจแแแ แแแแฃแจแแก แแแแแแแชแแแกแแแ. แแก แฌแแจแแแก แงแแแแ แแแกแแขแฃแ แ แแกแฃแ แกแก, แ แแแแ แแชแแ แแแแแแแแแแ แจแแแแฎแแแแแแ, แแแกแแแแ แแ แฅแกแแแแก แ แแกแฃแ แกแแแ.
แ แ แแ แแก แจแแแแแแ?
-
แจแแแกแฌแแแแแ แจแแแแแแ แขแแฅแแแแแแแแแ:
docker แแแแขแแแแแ แแแ แแแแขแแแแแ แแก แ แแแกแขแ แ แแฃแแแ แแแขแแแ แ.แ.แ. แกแแ แแแกแแก แแแแ แแกแขแแ
-
แจแแแกแฌแแแแแ แจแแแแแแ แแแกแขแ แฃแแแแขแแแ:
-
แแกแฌแแแแแ Kubernetes แชแแแแแแ:
แแแแกแขแแ แแแ แแแแแซแแแ แฌแแแฌแแแ แแแแกแแฎแฃแ แแแ แแแแแแแแแ
แฌแงแแ แ: www.habr.com