0. 概述
【istio版本】1.0.1
【Kubernetes版本】1.11.2
之所以使用helm template來安裝,是因?yàn)榭刂埔恍┡渲庙?xiàng)比較方便
1. 下載安裝包
cd /root/
curl -L https://github.com/istio/istio/releases/download/1.0.1/istio-1.0.1-linux.tar.gz -o istio-1.0.1-linux.tar.gz --progress
tar vzxf istio-1.0.1-linux.tar.gz
如果直接下載最新版是curl -L https://git.io/getLatestIstio | sh -
不過最新版本號(hào)是1.1.0,我沒有用過,不敢保證一模一樣,就不在這里亂寫了
2. 添加到path
export PATH=$PWD/bin:$PATH
不過這樣做,每次重新登錄這個(gè)設(shè)置就失效了;
如果想一勞永逸,可以添加到.bash_profile里
vi /root/.bash_profile
在 倒數(shù)第二行添加以下內(nèi)容
PATH=$PATH:/root/istio-1.0.1/bin
退出保存
并應(yīng)用該profile
source ~/.bash_profile
3. 創(chuàng)建istio 安裝到的命名空間
kubectl create ns istio
注意:默認(rèn)的是istio-system,我這里不想使用默認(rèn)的,所以就建了一個(gè)新的,
如果想使用默認(rèn)的,那么就應(yīng)該新建一個(gè)istio-system
4. 更新CDR
cd istio-1.0.1
kubectl apply -f install/kubernetes/helm/istio/templates/crds.yaml -n istio
5. 安裝
5.1 生成清單
helm template install/kubernetes/helm/istio --name my-istio --namespace istio \
--set global.tag=1.0.0 \
--set global.hub=registry.cn-hangzhou.aliyuncs.com/aliacs-app-catalog \
--set global.hyperkube.hub=registry.cn-hangzhou.aliyuncs.com/aliacs-app-catalog \
--set sidecarInjectorWebhook.enabled=true \
--set pilot.enabled=true \
--set grafana.enabled=true \
--set grafana.service.type=LoadBalancer \
> ./001-my-istio.yaml
注意,只安裝了一個(gè)監(jiān)控工具:grafana
之所以這么做,是因?yàn)橹挥?code>grafana可以一步安裝到位,其他的工具會(huì)出現(xiàn)各種各樣的問題,所以就算了
如果需要其他工具,可以查看我的其他文章
另外,還打開了自動(dòng)注入,很好用的一個(gè)功能
還有就是換了下鏡像倉庫地址為阿里的,默認(rèn)是國(guó)外的,有時(shí)會(huì)pull不下來
5.2 修改gateway
#1.check
cat 001-my-istio.yaml |grep "istio-system"
#2.modify
sed -i 's/istio-system/istio/g' 001-my-istio.yaml
#3.check
cat 001-my-istio.yaml |grep "istio-system"
注意,namespace如果不是istio寫死的istio-system,,生成的yaml里面,
gateway的namespace還是默認(rèn)的istio-system,安裝的時(shí)候會(huì)導(dǎo)致報(bào)錯(cuò),
所以需要手動(dòng)執(zhí)行命令去修改一下
目前在版本1.0.1里發(fā)現(xiàn)了這個(gè)BUG,后續(xù)版本不知道有沒有改過來
5.3 安裝部署
kubectl create -f ./001-my-istio.yaml
預(yù)期輸出不出現(xiàn)任何error
6. 卸載
如果安裝出錯(cuò)了,可以在找到問題后,卸載、重裝
kubectl delete -f ./001-my-istio.yaml
7. 查詢可以被外網(wǎng)訪問的ip和端口
我用的是阿里的k8s集群服務(wù),頁面可以查詢

當(dāng)然了,命令行也是可以的
kubectl get svc -n istio
