您好,登錄后才能下訂單哦!
這篇文章主要講解了“Istio怎么安裝”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Istio怎么安裝”吧!
通過負載均衡、服務間的身份驗證、監控等方法,Istio 可以輕松地創建一個已經部署了服務的網絡,而服務的代碼只需很少更改甚至無需更改。通過在整個環境中部署一個特殊的 sidecar 代理為服務添加 Istio 的支持,而代理會攔截微服務之間的所有網絡通信,然后使用其控制平面的功能來配置和管理 Istio,這包括:
為 HTTP、gRPC、WebSocket 和 TCP 流量自動負載均衡。
通過豐富的路由規則、重試、故障轉移和故障注入對流量行為進行細粒度控制。
可插拔的策略層和配置 API,支持訪問控制、速率限制和配額。
集群內(包括集群的入口和出口)所有流量的自動化度量、日志記錄和追蹤。
在具有強大的基于身份驗證和授權的集群中實現安全的服務間通信。
Istio 為可擴展性而設計,可以滿足不同的部署需求。
有三種方法進行istio的安裝:
使用istioctl安裝(Customizable Install with Istioctl)
使用Helm安裝(Customizable Install with Helm)
使用Operator安裝(Standalone Operator Install)
這里我下載istio,然后采用istioctl安裝。
istio 1.5.1需要用到多個鏡像,我統一下載并上傳到各個節點,減少流量并加快速度。
docker pull docker.io/istio/pilot:1.5.1 docker pull docker.io/istio/proxyv2:1.5.1 docker pull docker.io/jaegertracing/all-in-one:1.16 docker pull docker.io/prom/prometheus:v2.15.1 docker pull grafana/grafana:6.5.2 docker pull quay.io/kiali/kiali:v1.15
保存鏡像,并打包為*.zip:
echo "" echo "==========================================================" echo "Save istio for x64 v1.5.1 Images from docker.io ......" echo "==========================================================" echo "" #MY_REGISTRY=mirrorgcrio ISTIO_VERSION="1.5.1" IMAGES_PATH=~/istio-images-$ISTIO_VERSION mkdir $IMAGES_PATH ## 拉取鏡像 docker save docker.io/istio/pilot:1.5.1 -o $IMAGES_PATH/istio-pilot-$ISTIO_VERSION.tar docker save docker.io/istio/proxyv2:1.5.1 -o $IMAGES_PATH/istio-proxyv2-$ISTIO_VERSION.tar docker save docker.io/jaegertracing/all-in-one:1.16 -o $IMAGES_PATH/istio-jaeger-$ISTIO_VERSION.tar docker save docker.io/prom/prometheus:v2.15.1 -o $IMAGES_PATH/istio-prometheus-2.15.1.tar docker save grafana/grafana:6.5.2 -o $IMAGES_PATH/istio-grafana-6.5.2.tar docker save quay.io/kiali/kiali:v1.15 -o $IMAGES_PATH/istio-kiali-1.15.tar echo "Copy loader into $IMAGES_PATH" cp istio-images-load.sh $IMAGES_PATH/ echo "Zip to $IMAGES_PATH.zip" cd ~ zip -r istio-images-$ISTIO_VERSION.zip istio-images-$ISTIO_VERSION echo "" echo "==========================================================" echo "Save istio for x64 v1.5.1 Images FINISHED." echo " by openthings@https://my.oschina.net/u/2306127." echo "==========================================================" echo ""
使用scp上傳到節點,運行unzip解壓。
scp istio-images-1.5.1.zip openthings@openbox00:~/
保存下面的內容到文件istio-images-load.sh:
echo "" echo "==========================================================" echo "Load istio for x64 v1.5.1 Images from zip ......" echo "==========================================================" echo "" #MY_REGISTRY=mirrorgcrio ISTIO_VERSION="1.5.1" IMAGES_PATH=~/istio-images-$ISTIO_VERSION #cd ~ #unzip istio-images-$ISTIO_VERSION.zip #cd istio-images-$ISTIO_VERSION ## 拉取鏡像 docker load -i $IMAGES_PATH/istio-pilot-$ISTIO_VERSION.tar docker load -i $IMAGES_PATH/istio-proxyv2-$ISTIO_VERSION.tar docker load -i $IMAGES_PATH/istio-jaeger-$ISTIO_VERSION.tar docker load -i $IMAGES_PATH/istio-prometheus-2.15.1.tar docker load -i $IMAGES_PATH/istio-grafana-6.5.2.tar docker load -i $IMAGES_PATH/istio-kiali-1.15.tar echo "" echo "==========================================================" echo "Save istio for x64 v1.5.1 Images FINISHED." echo " by openthings@https://my.oschina.net/u/2306127." echo "==========================================================" echo ""
然后使用istio-images-load.sh來載入鏡像到docker。
更多工具參考:https://github.com/openthings/kubernetes-tools/tree/master/istio
因為一些原因,上面官方文檔的下載鏈接無法訪問。我從這里下載,然后展開:
wget -c https://github.com/istio/istio/releases/download/1.5.1/istio-1.5.1-linux.tar.gz
下載內容將包含:安裝文件、示例和 istioctl 命令行工具。
訪問 Istio release 頁面下載與您操作系統對應的安裝文件。在 macOS 或 Linux 系統中,也可以通過以下命令下載最新版本的 Istio:
$ curl -L https://istio.io/downloadIstio | sh -
切換到 Istio 包所在目錄下。例如:Istio 包名為 istio-1.6.0
,則:
$ cd istio-1.6.0
安裝目錄包含如下內容:
install/kubernetes
目錄下,有 Kubernetes 相關的 YAML 安裝文件
samples/
目錄下,有示例應用程序
bin/
目錄下,包含 istioctl
的客戶端文件。istioctl
工具用于手動注入 Envoy sidecar 代理。
將 istioctl
客戶端路徑增加到 path 環境變量中,macOS 或 Linux 系統的增加方式如下:
$ export PATH=$PWD/bin:$PATH
在使用 bash 或 ZSH 控制臺時,可以選擇啟動 auto-completion option。
請按照以下步驟在您所選的平臺上使用 demo
配置文件安裝 Istio。
安裝 demo
配置:
$ istioctl manifest apply --set profile=demo
為了驗證是否安裝成功,需要先確保以下 Kubernetes 服務正確部署,然后驗證除 jaeger-agent
服務外的其他服務,是否均有正確的 CLUSTER-IP
:
$ kubectl get svc -n istio-system
如果集群運行在一個不支持外部負載均衡器的環境中(例如:minikube),
istio-ingressgateway
的
EXTERNAL-IP
將顯示為
<pending>
狀態。請使用服務的
NodePort
或 端口轉發來訪問網關。
請確保關聯的 Kubernetes pod 已經部署,并且 STATUS
為 Running
:
$ kubectl get pods -n istio-system
安裝 Istio 后,就可以部署您自己的服務,或部署安裝程序中系統的任意一個示例應用。
應用程序必須使用 HTTP/1.1 或 HTTP/2.0 協議用于 HTTP 通信;HTTP/1.0 不支持。
當使用 kubectl apply
來部署應用時,如果 pod 啟動在標有 istio-injection=enabled
的命名空間中,那么,Istio sidecar 注入器將自動注入 Envoy 容器到應用的 pod 中:
$ kubectl label namespace <namespace> istio-injection=enabled $ kubectl create -n <namespace> -f <your-app-spec>.yaml
在沒有 istio-injection
標記的命名空間中,在部署前可以使用 istioctl kube-inject
命令將 Envoy 容器手動注入到應用的 pod 中:
$ istioctl kube-inject -f <your-app-spec>.yaml | kubectl apply -f -
如果您不確定要從哪開始,可以先部署 Bookinfo 示例,它會讓您體驗到 Istio 的流量路由、故障注入、速率限制等功能。 然后您可以根據您的興趣瀏覽各種各樣的 Istio 任務。
下列任務都是初學者開始學習的好入口:
請求路由
故障注入
流量轉移
查詢指標
可視化指標
日志收集
速率限制
Ingress 網關
訪問外部服務
可視化您的網格
下一步,可以定制 Istio 并部署您自己的應用。在您開始自定義 Istio 來適配您的平臺或者其他用途之前,請查看以下資源:
部署模型
部署最佳實踐
Pod 需求
常規安裝說明
使用 Istio 過程中有任何問題,請來信告知我們,并歡迎您加入我們的社區。
卸載程序將刪除 RBAC 權限、istio-system
命名空間和所有相關資源。可以忽略那些不存在的資源的報錯,因為它們可能已經被刪除掉了。
$ istioctl manifest generate --set profile=demo | kubectl delete -f -
感謝各位的閱讀,以上就是“Istio怎么安裝”的內容了,經過本文的學習后,相信大家對Istio怎么安裝這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。