安裝步驟
- 準備Kubernetes環境
- 下載Istio
- 安裝Istio
準備Kubernetes環境
根據Istio官網給出的信息,當前最新的Istio1.5支持以下多種平臺的Kubernetes環境(1.14~1.16),我本地安裝的是docker-desktop,安裝方法參考https://github.com/AliyunContainerService/k8s-for-docker-desktop
下載Istio
curl -L https://istio.io/downloadIstio | sh -
下載完成後如提示所示,將bin路徑加入到PATH變量。
###安裝Istio
安裝demo配置檔案
istioctl manifest apply --set profile=demo
爲default命名空間添加istio-injection=enabled標籤,開啓自動 sidecar 注入
kubectl label namespace default istio-injection=enabled
部署示例應用
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
查看service與pod資源
確保所有的pod都ready之後進行下一步
驗證部署是否成功
kubectl exec -it $(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}') -c ratings -- curl productpage:9080/productpage | grep -o "<title>.*</title>"
對外暴露應用
應用部署成功之後還無法從外部訪問,需要創建Istio Ingress Gateway來對外暴露應用。Istio Ingress Gateway在網格邊緣進行路徑映射。
- 將應用與Istio gateway聯合:
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
- 確認gateway已經創建成功:
kubectl get gateway
確認示例應用可以訪問
export GATEWAY_URL=localhost:80
curl -s http://${GATEWAY_URL}/productpage | grep -o "<title>.*</title>"
可以通過瀏覽器訪問 http://localhost/productpage
查看dashboard
Istio的demo配置檔案包含多種可選的dashboard,其中kiali dashboard可以通過呈現網格拓撲信息來幫助你瞭解服務網格的結構。
- 輸入命令
istioctl dashboard kiali
打開kiali dashboard,默認的用戶名密碼爲admin/admin。 - 訪問http://localhost/productpage可以觀察到kiali呈現出了示例應用Bookinfo服務間的關係。
卸載
刪除實例應用
samples/bookinfo/platform/kube/cleanup.sh
卸載 Istio
istioctl manifest generate --set profile=demo | kubectl delete -f -
https://istio.io/docs/setup/getting-started/