您好,登錄后才能下訂單哦!
這篇文章主要講解了“Istio怎么安裝”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Istio怎么安裝”吧!
通過(guò)負(fù)載均衡、服務(wù)間的身份驗(yàn)證、監(jiān)控等方法,Istio 可以輕松地創(chuàng)建一個(gè)已經(jīng)部署了服務(wù)的網(wǎng)絡(luò),而服務(wù)的代碼只需很少更改甚至無(wú)需更改。通過(guò)在整個(gè)環(huán)境中部署一個(gè)特殊的 sidecar 代理為服務(wù)添加 Istio 的支持,而代理會(huì)攔截微服務(wù)之間的所有網(wǎng)絡(luò)通信,然后使用其控制平面的功能來(lái)配置和管理 Istio,這包括:
為 HTTP、gRPC、WebSocket 和 TCP 流量自動(dòng)負(fù)載均衡。
通過(guò)豐富的路由規(guī)則、重試、故障轉(zhuǎn)移和故障注入對(duì)流量行為進(jìn)行細(xì)粒度控制。
可插拔的策略層和配置 API,支持訪(fǎng)問(wèn)控制、速率限制和配額。
集群內(nèi)(包括集群的入口和出口)所有流量的自動(dòng)化度量、日志記錄和追蹤。
在具有強(qiáng)大的基于身份驗(yàn)證和授權(quán)的集群中實(shí)現(xiàn)安全的服務(wù)間通信。
Istio 為可擴(kuò)展性而設(shè)計(jì),可以滿(mǎn)足不同的部署需求。
有三種方法進(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 "==========================================================" 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來(lái)載入鏡像到docker。
更多工具參考:https://github.com/openthings/kubernetes-tools/tree/master/istio
因?yàn)橐恍┰颍厦婀俜轿臋n的下載鏈接無(wú)法訪(fǎng)問(wèn)。我從這里下載,然后展開(kāi):
wget -c https://github.com/istio/istio/releases/download/1.5.1/istio-1.5.1-linux.tar.gz
下載內(nèi)容將包含:安裝文件、示例和 istioctl 命令行工具。
訪(fǎng)問(wèn) Istio release 頁(yè)面下載與您操作系統(tǒng)對(duì)應(yīng)的安裝文件。在 macOS 或 Linux 系統(tǒng)中,也可以通過(guò)以下命令下載最新版本的 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
的客戶(hù)端文件。istioctl
工具用于手動(dòng)注入 Envoy sidecar 代理。
將 istioctl
客戶(hù)端路徑增加到 path 環(huán)境變量中,macOS 或 Linux 系統(tǒng)的增加方式如下:
$ export PATH=$PWD/bin:$PATH
在使用 bash 或 ZSH 控制臺(tái)時(shí),可以選擇啟動(dòng) auto-completion option。
請(qǐng)按照以下步驟在您所選的平臺(tái)上使用 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)。請(qǐng)使用服務(wù)的
NodePort
或 端口轉(zhuǎn)發(fā)來(lái)訪(fǎng)問(wèn)網(wǎng)關(guān)。
請(qǐng)確保關(guān)聯(lián)的 Kubernetes pod 已經(jīng)部署,并且 STATUS
為 Running
:
$ kubectl get pods -n istio-system
安裝 Istio 后,就可以部署您自己的服務(wù),或部署安裝程序中系統(tǒng)的任意一個(gè)示例應(yīng)用。
應(yīng)用程序必須使用 HTTP/1.1 或 HTTP/2.0 協(xié)議用于 HTTP 通信;HTTP/1.0 不支持。
當(dāng)使用 kubectl apply
來(lái)部署應(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
在沒(méi)有 istio-injection
標(biāo)記的命名空間中,在部署前可以使用 istioctl kube-inject
命令將 Envoy 容器手動(dòng)注入到應(yīng)用的 pod 中:
$ istioctl kube-inject -f <your-app-spec>.yaml | kubectl apply -f -
如果您不確定要從哪開(kāi)始,可以先部署 Bookinfo 示例,它會(huì)讓您體驗(yàn)到 Istio 的流量路由、故障注入、速率限制等功能。 然后您可以根據(jù)您的興趣瀏覽各種各樣的 Istio 任務(wù)。
下列任務(wù)都是初學(xué)者開(kāi)始學(xué)習(xí)的好入口:
請(qǐng)求路由
故障注入
流量轉(zhuǎn)移
查詢(xún)指標(biāo)
可視化指標(biāo)
日志收集
速率限制
Ingress 網(wǎng)關(guān)
訪(fǎng)問(wèn)外部服務(wù)
可視化您的網(wǎng)格
下一步,可以定制 Istio 并部署您自己的應(yīng)用。在您開(kāi)始自定義 Istio 來(lái)適配您的平臺(tái)或者其他用途之前,請(qǐng)查看以下資源:
部署模型
部署最佳實(shí)踐
Pod 需求
常規(guī)安裝說(shuō)明
使用 Istio 過(guò)程中有任何問(wèn)題,請(qǐng)來(lái)信告知我們,并歡迎您加入我們的社區(qū)。
卸載程序?qū)h除 RBAC 權(quán)限、istio-system
命名空間和所有相關(guān)資源??梢院雎阅切┎淮嬖诘馁Y源的報(bào)錯(cuò),因?yàn)樗鼈兛赡芤呀?jīng)被刪除掉了。
$ istioctl manifest generate --set profile=demo | kubectl delete -f -
感謝各位的閱讀,以上就是“Istio怎么安裝”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Istio怎么安裝這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。