《Istio官方文件》Google Kubernetes引擎快速入門
Google Kubernetes引擎快速入門
這種快速啟動用來建立一個新的GKE叢集,安裝Istio然後部署示例應用程式。它使用Deployment Manager自動執行,在詳細介紹。
注:預設安裝將建立一個GKE ,允許。由於它是一個alpha群集,它不支援自動節點或主升級,將在30天后自動刪除。
先決條件
- 此示例需要啟用具備結算功能且有效的Google雲端平臺專案。如果您不是現有的GCP使用者,則可以註冊300美元的免費試用信用。
- 確保為您的專案啟用了(也可以通過導航欄中的導航到“APIs&Services” – >“Dashboard”找到)。如果您沒有看到“啟用API”,則可以通過單擊“啟用此API”按鈕來啟用API。
- 您必須安裝和配置幷包含kubectl元件(gcloud components install kubectl)。如果你不想在自己的機器上安裝gcloud客戶端,可以使用gcloud通過谷歌雲指令碼執行相同的任務。
- 警告:您必須將您的預設計算服務帳戶設定為包括:
- roles/container.admin (Kubernetes引擎管理員)
- Editor (預設情況下)
要設定此項,請導航到雲控制檯的IAM部分,並以以下形式 [email protected] 查詢預設的GCE / GKE服務帳戶:預設情況下,它應該具有編輯者角色。然後在該帳戶的角色下拉列表中找到Kubernetes引擎
建立
啟動部署管理器
- 一旦啟用了帳戶和專案,請單擊以下連結開啟“部署管理器”。
我們建議您保留預設設定,因為本教程的其餘部分將介紹如何訪問已安裝的功能。預設情況下,工具建立具有指定設定的GKE alpha 叢集,然後安裝Istio 控制面版,BookInfo示例應用程式,Grafana與Prometheus,ServiceGraph,和Zipkin。你會發現更多關於如何訪問下面的所有這些。
- 點選部署: GKE-Istio啟動器
等到Istio完全部署。請注意,這可能需要五分鐘。
Bootstrap gcloud
完成部署後,在已安裝gcloud的工作站上執行以下操作:
- 對剛剛建立的叢集執行bootstrap kubectl,並確認叢集正在執行,istio已啟用
gcloud container clusters list NAME ZONE MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS istio-cluster us-central1-a 1.7.8-gke.0 ALPHA (29 days left) 130.211.216.64 n1-standard-2 1.7.8-gke.0 3 RUNNING
在這種情況下,群集名稱是 istio-cluster
- 現在獲取此群集的證書
gcloud container clusters get-credentials istio-cluster --zone=us-central1-a
驗證安裝
驗證Istio安裝在它自己的名稱空間中
kubectl get deployments,ing -n istio-system
現在確認BookInfo示例應用程式也已安裝:
kubectl get deployments,ing
記下分配給BookInfo產品頁面的IP和埠。(在上面的例子中,它為:35.202.120.89:80。
您還可以使用雲控制檯上的* Kubernetes引擎 – >工作負載部分檢視安裝: GKE-工作負載
訪問BookInfo示例
- 為BookInfo的外部IP地址設定一個環境變數:
kubectl get ingress -o wide export GATEWAY_URL=35.202.120.89
- 確認您可以訪問BookInfo http://${GATEWAY_URL}/productpage:
- 現在與它通訊:
for i in {1..100}; do curl -o /dev/null -s -w "%{http_code}\n" http://${GATEWAY_URL}/productpage; done
驗證已安裝的Istio外掛
一旦您確認了Istio控制面板和示例應用程式正在執行,請嘗試訪問已安裝的Istio外掛。
如果您使用雲端Shell而不是安裝的gcloud客戶端,則可以使用其Web預覽功能進行埠轉發和代理。例如,要從Cloud Shell訪問Grafana,請將kubectl埠對映從3000:3000更改為8080:3000。您可以通過8080到8084範圍內的Web Preview代理同時預覽其他四個控制檯。
Grafana
建立一個通往Grafana的隧道:
kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=grafana -o jsonpath='{.items[0].metadata.name}') 3000:3000 &
然後
http://localhost:3000/dashboard/db/istio-dashboard
您應該會看到您之前傳送請求的一些統計資訊。
Grafana
有關使用Grafana的更多詳細資訊,請參閱。
Prometheus
Prometheus與Grafana一起安裝。您可以使用控制檯檢視Istio和應用程式指標,如下所示:
kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=prometheus -o jsonpath='{.items[0].metadata.name}') 9090:9090 &
檢視控制檯:
http://localhost:9090/graph
Prometheus
ServiceGraph
建立到ServiceGraph的隧道:
kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=servicegraph -o jsonpath='{.items[0].metadata.name}') 8088:8088 &
您應該看到BookInfo服務拓撲在
http://localhost:8088/dotviz
ServiceGraph
追蹤
建立一個隧道到Zipkin:
kubectl port-forward -n istio-system $(kubectl get pod -n istio-system -l app=zipkin -o jsonpath='{.items[0].metadata.name}') 9411:9411 &
您應該看到之前傳送的跟蹤統計資訊:
http://localhost:9411
Zipkin
有關跟蹤的更多細節,請參閱。
下一步是什麼
您可以按照指南部分中的任何教程進一步探索BookInfo應用程式和Istio功能。但是,要做到這一點,你需要安裝istioctl與Istio互動。您可以將其直接安裝在我們的工作站上或在雲端Shell中。
解除安裝
- 選擇部署,然後單擊刪除。
- 部署管理器將刪除所有已部署的GKE工件 – 但是,Ingress和LoadBalancers等專案將保留。您可以通過在網路服務 – > 下再次轉到雲控制檯來刪除這些工件