Istio的安裝與部署

安裝步驟

  • 準備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 -

image.png
下載完成後如提示所示,將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資源
image.png
確保所有的pod都ready之後進行下一步
image.png
驗證部署是否成功

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在網格邊緣進行路徑映射。

  1. 將應用與Istio gateway聯合:
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
  1. 確認gateway已經創建成功:
kubectl get gateway

確認示例應用可以訪問

export GATEWAY_URL=localhost:80
curl -s http://${GATEWAY_URL}/productpage | grep -o "<title>.*</title>"

可以通過瀏覽器訪問 http://localhost/productpage
image.png

查看dashboard

Istio的demo配置檔案包含多種可選的dashboard,其中kiali dashboard可以通過呈現網格拓撲信息來幫助你瞭解服務網格的結構。

  1. 輸入命令istioctl dashboard kiali打開kiali dashboard,默認的用戶名密碼爲admin/admin。
  2. 訪問http://localhost/productpage可以觀察到kiali呈現出了示例應用Bookinfo服務間的關係。
    image.png

卸載

刪除實例應用

samples/bookinfo/platform/kube/cleanup.sh

卸載 Istio

istioctl manifest generate --set profile=demo | kubectl delete -f -

https://istio.io/docs/setup/getting-started/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章