我最新最全的文章都在 南瓜慢說 www.pkslow.com ,文章更新也只在官網,歡迎你們來喝茶~~nginx
以前在文章《服務網格Istio入門-詳細記錄Kubernetes安裝Istio並使用》已經詳細地介紹瞭如何在Linux系統上在Kubernetes安裝並使用Istio,但畢竟服務器是要錢的,幾毛錢一小時,是我格局小了,但我仍是想在Mac上安裝使用。docker
個人電腦已經安裝了Kubernetes了,能夠參考《Mac上使用Docker Desktop啓動Kubernetes,踩坑後終於搞掂》,如今直接安裝Istio。api
下載對應的安裝包:瀏覽器
$ curl -L https://istio.io/downloadIstio | sh -
目錄以下:bash
把bin目錄下的istioctl添加到PATH。服務器
$ export ISTIO_HOME=/Users/larry/Software/istio/istio-1.10.3 $ export PATH=$PATH:$ISTIO_HOME/bin
檢測是否能夠執行安裝:app
$ istioctl x precheck ✔ No issues found when checking the cluster. Istio is safe to install or upgrade!
沒有問題,就能夠開始安裝了:curl
$ istioctl install
由於要下載鏡像,因此須要花一點時間,成功安裝以下:url
能夠作一些簡單的檢查:spa
# 檢查istio-system命令空間下的Pod $ kubectl get pod -n istio-system # 檢查資源 $ kubectl api-resources | grep istio
結果以下:
Istio默認不會給其它Pod注入代理,須要給Namespace添加對應的標籤才能夠:
$ kubectl label namespace default istio-injection=enabled
但對於現有的Pod,也仍是不會注入的,不要緊,咱們來使用官方提供的示例,新建立一些資源:
$ kubectl apply -f istio-1.10.3/samples/bookinfo/platform/kube/bookinfo.yaml
由於是第一次啓動,要下載鏡像,因此要花比較長的時間,以下面命令觀察:
$ watch 'kubectl get pod -l app -l version'
幾分鐘後,終於搞定:
能夠看到每一個Pod都有兩個Container,一個是應用的,一個是代理的。
爲了更好地可視化地監控應用,咱們來安裝一些插件:
$ kubectl apply -f istio-1.10.3/samples/addons
一樣的等待:
$ watch 'kubectl get pod -n istio-system'
大概5分鐘左右,成功啓動了:
能夠看到許多很常見的監控軟件:Grafana、Prometheus等。
Istio給咱們提供了Gateway的功能,咱們給應用建立一個Gateway對外暴露服務:
$ kubectl apply -f istio-1.10.3/samples/bookinfo/networking/bookinfo-gateway.yamlgateway.networking.istio.io/bookinfo-gateway createdvirtualservice.networking.istio.io/bookinfo created$ kubectl get gatewayNAME AGEbookinfo-gateway 17s$ kubectl get virtualservices.networking.istio.ioNAME GATEWAYS HOSTS AGEbookinfo ["bookinfo-gateway"] ["*"] 29s
由於我很早以前就安裝了Ingress Controller(Kubernetes用Helm安裝Ingress並踩一下使用的坑),爲了防止衝突,把原來的給刪掉:
# 安裝命令,不執行# helm install azure-ingress azure/nginx-ingress# 刪除Ingress Controllerhelm delete azure-ingress
而後就能夠正常訪問應用了:http://localhost/productpage
咱們能夠多點擊幾回,多刷新幾回,能夠多產生一些流量,以便後續查看監控。
一樣,咱們也須要在外部訪問監控的內容,訪問kiali以下,會直接幫咱們打開瀏覽器:
$ istioctl dashboard kialihttp://localhost:20001/kiali
能夠查看完整清晰的流量走向圖,知道有什麼組件,它們之間的調用關係是怎樣的:
查看特定的組件productpage,會以它爲中心顯示與它直接關聯的應用和關係:
固然,也能夠查看Grafana:
$ istioctl dashboard grafana
界面以下:
查看Jaeger:
$ istioctl dashboard jaeger
界面以下:
查看Prometheus:
$ istioctl dashboard prometheus
界面以下:
Istio給咱們提供了不少有用的特性,光監控方面就很是豐富,更多細節咱們後續再討論吧。