快速上手 Anthos | GKE 叢集加入 Anthos - 環境與本地測試

概要 #

這個 lab 是以官方 Github 提供的範例 source code 應用程式,打包成 Docker image,以 GCP SDK 推上 GCP repository 後,在 GCP 上的 GKE 進行部署的範例操作流程。

官方提供的流程很簡易,實際上會踩到一些坑,因此這份文件中也會盡量詳細提示一些細部的操作。

Prepare an application for Anthos Service Mesh | Google Cloud

這份 source code 的程式在幹嘛 #

這包裡面其實很多的範例程式,我們要找的是 istio-samples/sample-apps/helloserver 目錄下的程式碼。

https://github.com/GoogleCloudPlatform/istio-samples

整體做的事情其實非常簡單,用白話文說就是:

而 client 端也可直接拜訪 helloserver 的對外 port,瀏覽器將直接顯示 response 回覆的「 hello world」字眼。


準備工作 #

GCP console 操作 #

啟用 Google Container Registry API #

專案建立 #

可以選擇直接在 GCP 上建立一個專案,或用 BOA 的專案。

先不要準備,但讓大家知道的先備操作 #

為了要節費,先不做以下建立與啟用的操作,但其實是 Anthos Cluster 的必要條件。後面流程中會一併處理:

本機環境 #

先自行準備 #

安裝 Google Cloud SDK 在本機端 #

這次因為需要拉專案到本機再推上 GCP repository,所以需要在自己本機環境裝 Cloud SDK,並完成一些設置,讓我們可以順利連上 GCP project。

  1. Mac 以 Homebrew 安裝 Google Cloud SDK,接著就可以使用 gcloud command line tools

    brew install google-cloud-sdk

安裝使用 Google OAuth #

  1. gcloud 安裝 GKE Google Cloud Auth Plugin

    gcloud components install gke-gcloud-auth-plugin
  2. Mac zsh 環境(bash 請自行替換)啟用 Auth Plugin 服務

    echo 'export USE_GKE_GCLOUD_AUTH_PLUGIN=True' >> ~/.zshrc

    source ~/.zshrc

    gcloud components update
  3. 在本機端 auth login

    gcloud auth login **ACCOUNT**

Git 拉下專案 #

或直接下載解壓縮:


本機啟動與建立環境變數 #

啟動 helloserver 服務接受請求 #

istio-samples/sample-apps/helloserver 目錄下進行操作:

python3 server/server.py

出現這些資訊代表服務啟動中。

curl 拜訪 helloserver 服務 #

查看 source code 可以看到服務是使用 8080 port。

開啟另外一個 tab 打它:

curl http://localhost:8080

收到請求將會收到下圖的資訊:

瀏覽器拜訪 helloserver 服務 #

以瀏覽器直接拜訪:

請求資訊如下:

啟動 loadgen 服務產生固定流量 #

使用 virtualenv 啟動 loadgen 服務,產生固定流量:

環境變數設定 #

先在這個 shell scope 中 export 兩個參數:

# helloserver 的位址
export SERVER_ADDR=http://localhost:8080
# loadgen 的 RPS,每秒產生 5 個 request 打向 helloserver
export REQUESTS_PER_SECOND=5

啟用虛擬環境 #

使用 virtualenv 建立 python3 的虛擬環境:

# 使用 virtualenv 建立 python3 的虛擬環境,建立於 loadgen/loadgen-env
virtualenv --python python3 loadgen/loadgen-env

此時會看到 istio-samples/sample-apps/helloserver/loadgen 底下長出 loadgen-env 的目錄。

# 讀取,啟用這個虛擬環境
source loadgen/loadgen-env/bin/activate

啟動 loadgen 服務 #

使用 pip3 安裝 loadgen.py 需要的套件版本:

pip3 install -r loadgen/requirements.txt

啟動 loadgen 服務:

python3 loadgen/loadgen.py

測試完成後停用虛擬環境:

# 同一個 shell
deactivate

閱讀原始碼可以看到程式是有吃環境變數的,因此才會是每秒發出 5 個請求。


下回要幹嘛 #

下篇文章我們會準備 GCP 環境,將應用程式部署在 GKE 中。

🙏🙏🙏

感謝你的閱讀 💖!
歡迎將本篇文章 分享 📋 出去,也歡迎到 我的 LinkedIn 聊聊。

Published