天天看點

安裝istio和部署bookinfo項目

一 istio安裝

1.1 下載下傳安裝

​​https://istio.io/latest/docs/setup/getting-started/​​

安裝前提:你的伺服器必須可以連接配接外網需要下載下傳谷歌鏡像

# 下載下傳
cd /usr/local/
curl -L https://istio.io/downloadIstio | sh -   #預設下載下傳最新的


curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.14.1 TARGET_ARCH=x86_64 sh -  #指定版本和架構

cd istio-1.14.1
export PATH=$PWD/bin:$PATH
   ln -sv istio-1.14.1 istio 
    ln -sv /usr/local/istio/bin/istioctl /usr/local/bin/istioctl 
# 安裝
istioctl profile list 
        default: 生産可用
        demo:測試環境使用

istioctl install --set profile=demo -y      
安裝istio和部署bookinfo項目
安裝istio和部署bookinfo項目

1.2 檢視pod和svc

root@k8s-master01:/usr/local# kubectl get pod -n istio-system
NAME                                    READY   STATUS    RESTARTS   AGE
istio-egressgateway-7fcb98978c-b885f    1/1     Running   0          11m
istio-ingressgateway-55b6cffcbc-6knqm   1/1     Running   0          11m
istiod-56d9c5557-stvdz                  1/1     Running   0          16m      

檢視istio的svc

安裝istio和部署bookinfo項目

1.3 設定loadbalancer的位址

這個位址一般是vip位址,

kubectl edit svc istio-ingressgateway -n istio-system
externalIPs:
- 172.31.7.100      

然後再次檢視svc

安裝istio和部署bookinfo項目

二 部署istio裡各個插件

各插件主要包括 grafana jaeger kiali prometheus,

cd /usr/local/istio/
 kubectl apply -f samples/addons/      

然後檢視各個pod

安裝istio和部署bookinfo項目

三 部署bookinfo項目進行測試

3.1 給指定命名空間打标簽

凡是在這個命名空間内的Pod都會自動注入sidercar

kubectl label namespace default istio-injection=enabled      

3.2 部署bookinfo

kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml  

kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml #網絡      

效果如下圖所示:

安裝istio和部署bookinfo項目
安裝istio和部署bookinfo項目

通路url ip/productpage

安裝istio和部署bookinfo項目

3.3 驗證流量治理

首先 執行,詳情見https://istio.io/latest/docs/examples/bookinfo/#apply-default-destination-rules

#必須先執行這個
kubectl apply -f samples/bookinfo/networking/destination-rule-all.yaml      

3.3.1 測試v1版本流量

kubectl apply -f samples/bookinfo/networking/virtual-service-all-v1.yaml      

無論浏覽器怎麼重新整理,都是請求到v1

安裝istio和部署bookinfo項目

3.3.3 測試v3版本流量

kubectl apply -f virtual-service-reviews-v3.yaml   #隻通路v3版本
      
安裝istio和部署bookinfo項目

當執行多個規則,後面的規則會覆寫前面的規則。

四 映射kiali,浏覽器通路

​​https://github.com/iKubernetes/istio-in-practise.git​​

克隆代碼到本地伺服器

cd /root/istio-in-practise/Traffic-Management-Basics
  kubectl apply -f kiali-port-80/      

檢視networking和virtualservices,然後在hosts檔案裡增加 kiali.magedu.com 這個域名解析即可通路

root@k8s-master1:~/istio-in-practise/Traffic-Management-Basics# kubectl get gateways.networking -n istio-system 
NAME            AGE
kiali-gateway   109s
root@k8s-master1:~/istio-in-practise/Traffic-Management-Basics# kubectl get virtualservices -n istio-system 
NAME                   GATEWAYS            HOSTS                  AGE
kiali-virtualservice   ["kiali-gateway"]   ["kiali.magedu.com"]   2m5s      
安裝istio和部署bookinfo項目

作者:漸行漸遠

繼續閱讀