文章目錄
在 Kubernetes 上使用 Helm 安裝 Istio
其實對於 Istio 到底解決了什麼問題,我沒有把握可以講得很清楚,就我粗淺地理解是為了更有效地簡化 Pod 間的溝通與管理,但好壞都要等實際體驗過才說得準,所以先來紀錄一下如何在 Kubernetes 透過 Helm 來安裝 Istio,待我實際使用過後再來分享優缺點
基本環境說明
以下 VM 透過 Azure 建立
CentOS 7.6 * 3
- Standard B2ms
- 2 vcpus, 8 GiB memory
- 200 GB Standard SSD
VM 配置說明
請確保各個 node 間可以透過 host name 連線
Name IP 用途 node1 10.0.0.4 ansible-client,master,etcd node2 10.0.0.5 node,etcd node3 10.0.0.6 node,etcd Kubespray 2.10
Kubernetes 2.14.3
Helm v2.13.1
Istio 1.2.2
Kubernetes cluster 內容請參考之前筆記 透過 Kubespray 來架設 Kubernetes 與 透過 Kubespray 在 Kubernetes 上安裝 Helm
安裝 Istio
下載並解壓 Istio
curl -L https://git.io/getLatestIstio | ISTIO_VERSION=1.2.2 sh -
建立 service account for Tiller
cd istio-1.2.2 kubectl apply -f install/kubernetes/helm/helm-service-account.yaml
安裝 Tiller
helm init --service-account tiller
安裝
istio-init
來啟動 Istio 的所有 CRDhelm install install/kubernetes/helm/istio-init --name istio-init --namespace istio-system
驗證是否有
23
CRD 被加至 Kubernetes 的 api-server 中kubectl get crds | grep 'istio.io\|certmanager.k8s.io' | wc -l
執行結果若為
23
就是正確安裝 istio
helm install install/kubernetes/helm/istio --name istio --namespace istio-system
心得
安裝上難度不高,但在確認正確性卻不如想像中容易
確認 service 是否完整部署
kubectl get svc -n istio-system
可以跟 Installation Configuration Profiles 比對一下,是否對應的 service 都有被部署,以
default
為例總共需要8
個 service確保 Kubenetes 的 Pod 都是
Running
kubectl get pods -n istio-system
經過數次安裝,我一直無法得到所有 Pod 都是 Running:固定三個
istio-init-crd-*
的狀態都是Completed
,同事解釋那是啟動用的,執行階段不影響,幸虧有同事指導,不然我不知道還要在這上面卡多久,嘗試各種安裝方式都是相同結果呀XD
對於 Istio 目前我還在學習安裝階段,不到實際使用,待日後有真正實際經驗再來紀錄相關內容
參考資訊
文章作者 Yowko Tsai
上次更新 2020-12-11
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。