共計(jì) 5150 個(gè)字符,預(yù)計(jì)需要花費(fèi) 13 分鐘才能閱讀完成。
這篇文章主要講解了“Istio 怎么安裝”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Istio 怎么安裝”吧!
為什么使用 Istio?
通過負(fù)載均衡、服務(wù)間的身份驗(yàn)證、監(jiān)控等方法,Istio 可以輕松地創(chuàng)建一個(gè)已經(jīng)部署了服務(wù)的網(wǎng)絡(luò),而服務(wù)的代碼只需很少更改甚至無需更改。通過在整個(gè)環(huán)境中部署一個(gè)特殊的 sidecar 代理為服務(wù)添加 Istio 的支持,而代理會攔截微服務(wù)之間的所有網(wǎng)絡(luò)通信,然后使用其控制平面的功能來配置和管理 Istio,這包括:
為 HTTP、gRPC、WebSocket 和 TCP 流量自動(dòng)負(fù)載均衡。
通過豐富的路由規(guī)則、重試、故障轉(zhuǎn)移和故障注入對流量行為進(jìn)行細(xì)粒度控制。
可插拔的策略層和配置 API,支持訪問控制、速率限制和配額。
集群內(nèi)(包括集群的入口和出口)所有流量的自動(dòng)化度量、日志記錄和追蹤。
在具有強(qiáng)大的基于身份驗(yàn)證和授權(quán)的集群中實(shí)現(xiàn)安全的服務(wù)間通信。
Istio 為可擴(kuò)展性而設(shè)計(jì),可以滿足不同的部署需求。
安裝方法
有三種方法進(jìn)行 istio 的安裝:
使用 istioctl 安裝(Customizable Install with Istioctl)
使用 Helm 安裝(Customizable Install with Helm)
使用 Operator 安裝(Standalone Operator Install)
這里我下載 istio,然后采用 istioctl 安裝。
容器鏡像
istio 1.5.1 需要用到多個(gè)鏡像,我統(tǒng)一下載并上傳到各個(gè)節(jié)點(diǎn),減少流量并加快速度。
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 Save istio for x64 v1.5.1 Images FINISHED.
echo by openthings@https://my.oschina.net/u/2306127.
echo ==========================================================
echo
使用 scp 上傳到節(jié)點(diǎn),運(yùn)行 unzip 解壓。
scp istio-images-1.5.1.zip openthings@openbox00:~/
保存下面的內(nèi)容到文件 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
下載 Istio
因?yàn)橐恍┰颍厦婀俜轿臋n的下載鏈接無法訪問。我從這里下載,然后展開:
wget -c https://github.com/istio/istio/releases/download/1.5.1/istio-1.5.1-linux.tar.gz
下載內(nèi)容將包含:安裝文件、示例和 istioctl 命令行工具。
訪問 Istio release 頁面下載與您操作系統(tǒng)對應(yīng)的安裝文件。在 macOS 或 Linux 系統(tǒng)中,也可以通過以下命令下載最新版本的 Istio:
$ curl -L https://istio.io/downloadIstio | sh –
切換到 Istio 包所在目錄下。例如:Istio 包名為 istio-1.6.0,則:
$ cd istio-1.6.0
安裝目錄包含如下內(nèi)容:
install/kubernetes 目錄下,有 Kubernetes 相關(guān)的 YAML 安裝文件
samples/ 目錄下,有示例應(yīng)用程序
bin/ 目錄下,包含 istioctl 的客戶端文件。istioctl 工具用于手動(dòng)注入 Envoy sidecar 代理。
將 istioctl 客戶端路徑增加到 path 環(huán)境變量中,macOS 或 Linux 系統(tǒng)的增加方式如下:
$ export PATH=$PWD/bin:$PATH
在使用 bash 或 ZSH 控制臺時(shí),可以選擇啟動(dòng) auto-completion option。
安裝 Istio
請按照以下步驟在您所選的平臺上使用 demo 配置文件安裝 Istio。
安裝 demo 配置:
$ istioctl manifest apply –set profile=demo
為了驗(yàn)證是否安裝成功,需要先確保以下 Kubernetes 服務(wù)正確部署,然后驗(yàn)證除 jaeger-agent 服務(wù)外的其他服務(wù),是否均有正確的 CLUSTER-IP:
$ kubectl get svc -n istio-system
如果集群運(yùn)行在一個(gè)不支持外部負(fù)載均衡器的環(huán)境中(例如:minikube),
istio-ingressgateway 的
EXTERNAL-IP 將顯示為
pending 狀態(tài)。請使用服務(wù)的
NodePort 或 端口轉(zhuǎn)發(fā)來訪問網(wǎng)關(guān)。
請確保關(guān)聯(lián)的 Kubernetes pod 已經(jīng)部署,并且 STATUS 為 Running:
$ kubectl get pods -n istio-system
后續(xù)步驟
安裝 Istio 后,就可以部署您自己的服務(wù),或部署安裝程序中系統(tǒng)的任意一個(gè)示例應(yīng)用。
應(yīng)用程序必須使用 HTTP/1.1 或 HTTP/2.0 協(xié)議用于 HTTP 通信;HTTP/1.0 不支持。
當(dāng)使用 kubectl apply 來部署應(yīng)用時(shí),如果 pod 啟動(dòng)在標(biāo)有 istio-injection=enabled 的命名空間中,那么,Istio sidecar 注入器將自動(dòng)注入 Envoy 容器到應(yīng)用的 pod 中:
$ kubectl label namespace namespace istio-injection=enabled $ kubectl create -n namespace -f your-app-spec .yaml
在沒有 istio-injection 標(biāo)記的命名空間中,在部署前可以使用 istioctl kube-inject 命令將 Envoy 容器手動(dòng)注入到應(yīng)用的 pod 中:
$ istioctl kube-inject -f your-app-spec .yaml | kubectl apply -f –
如果您不確定要從哪開始,可以先部署 Bookinfo 示例,它會讓您體驗(yàn)到 Istio 的流量路由、故障注入、速率限制等功能。然后您可以根據(jù)您的興趣瀏覽各種各樣的 Istio 任務(wù)。
下列任務(wù)都是初學(xué)者開始學(xué)習(xí)的好入口:
請求路由
故障注入
流量轉(zhuǎn)移
查詢指標(biāo)
可視化指標(biāo)
日志收集
速率限制
Ingress 網(wǎng)關(guān)
訪問外部服務(wù)
可視化您的網(wǎng)格
下一步,可以定制 Istio 并部署您自己的應(yīng)用。在您開始自定義 Istio 來適配您的平臺或者其他用途之前,請查看以下資源:
部署模型
部署最佳實(shí)踐
Pod 需求
常規(guī)安裝說明
使用 Istio 過程中有任何問題,請來信告知我們,并歡迎您加入我們的社區(qū)。
卸載
卸載程序?qū)h除 RBAC 權(quán)限、istio-system 命名空間和所有相關(guān)資源。可以忽略那些不存在的資源的報(bào)錯(cuò),因?yàn)樗鼈兛赡芤呀?jīng)被刪除掉了。
$ istioctl manifest generate –set profile=demo | kubectl delete -f –
感謝各位的閱讀,以上就是“Istio 怎么安裝”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對 Istio 怎么安裝這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!