1、什麼是Istio
雲平臺爲使用它們的組織提供了很多好處。但是,不可否認的是,採用雲技術會對DevOps團隊造成壓力。開發人員必須使用微服務來構建可移植性,同時運營商正在管理超大型混合和多雲部署。Istio使您可以連接,保護,控制和觀察服務。
從較高的角度來看,Istio有助於降低這些部署的複雜性,並減輕開發團隊的負擔。它是一個完全開源的服務網格,可以透明地分層到現有的分佈式應用程序上。它也是一個平臺,包括可將其集成到任何日誌記錄平臺,遙測或策略系統中的API。Istio的多樣化功能集使您能夠成功,高效地運行分佈式微服務架構,並提供一種統一的方式來保護,連接和監視微服務。
2、爲什麼要使用Istio
Istio可以輕鬆創建帶有負載平衡,服務到服務的身份驗證,監視等功能的已部署服務網絡,而服務代碼中的代碼更改很少或沒有更改。通過在整個環境中部署一個特殊的sidecar代理來攔截微服務之間的所有網絡通信,然後使用其控制平面功能配置和管理Istio,可以爲服務添加Istio支持,包括:
HTTP,gRPC,WebSocket和TCP通信的自動負載平衡。
通過豐富的路由規則,重試,故障轉移和故障注入對流量行爲進行細粒度控制。
可插拔的策略層和配置API,支持訪問控制,速率限制和配額。
集羣內所有流量的自動度量,日誌和跟蹤,包括集羣的入口和出口。
通過強大的基於身份的身份驗證和授權,在羣集中進行安全的服務間通信。
Istio專爲可擴展性而設計,可滿足多種部署需求。
3、安裝Istio
3.1環境介紹
3.2運行以下命令來自動下載並解壓縮最新版本:
curl -L https://istio.io/downloadIstio | sh -
3.3安裝目錄包含:
中的示例應用程序
samples/
目錄中的客戶端二進制文件。手動注入Envoy作爲Sidecar代理時使用。
istioctl
bin/istioctl
3.4設置環境變量
cat /etc/profile.d/istio
ISTIO_HOME=/root/istio-1.4.3
export PATH=$ISTIO_HOME/bin:$PATH
source /etc/profile.d/istio
chmod 777 istio-1.4.3/bin/istioctl
3.5安裝demo配置文件
istioctl manifest apply --set profile=demo
備註:這裏有的鏡像可能拉不下來,需要自己想辦法,等待時間可能有點長
3.6通過確保已部署以下Kubernetes服務來驗證安裝
kubectl get pod -n istio-system
kubectl get svc -n istio-system
3.7卸載會刪除RBAC權限,istio-system名稱空間以及它下面的層次結構中的所有資源
istioctl manifest generate --set profile=demo | kubectl delete -f -