部署測試·示例應用、
bookinfo這個應用是一個線上書店的示範系統
文章目錄
- 部署測試·示例應用、
-
- 為什麼要用到 伺服器網格
- 前言
- 一、架構圖
- 二、開始安裝
- 建立Ingress Gateway
為什麼要用到 伺服器網格
1、服務之間通訊安全沒有保障 ,
(節點于節點通訊,未能實作加密通訊,就有可能被被人嗅探走資料)
2、跟蹤通訊延遲非常困難
(他的通訊經曆了哪些中間主鍵,如果要診斷問題,其實是不好實作的)
3、負責均衡功能有限
(k8s 裡面 負載隻有 通過server ,隻能實作ipvs 核心基礎排程,無法實作 流量分割,流量遷移,ab測試,流量鏡像,等等功能)
在這裡插入圖檔描述
前言
Istio是做什麼的,這裡就不在詳細講解了,可以看我上期部落格,裡面已經寫清楚了
一、架構圖
二、開始安裝
#開啟default 的 sidecar 自動注入,因為所有pod 都是運作在預設ns 裡面的
[email protected]:~$ kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
[email protected]:~$ kubectl get pod
NAME READY STATUS RESTARTS AGE
details-v1-7f4669bdd9-bqsxw 2/2 Running 0 3m33s
productpage-v1-5586c4d4ff-6mp7v 2/2 Running 0 3m31s
ratings-v1-6cf6bc7c85-75qxt 2/2 Running 0 3m33s
reviews-v1-7598cc9867-sv2v6 2/2 Running 0 3m33s
reviews-v2-6bdd859457-vcwpz 2/2 Running 0 3m32s
reviews-v3-6c98f9d7d7-g8dfx 2/2 Running 0 3m32s
kubectl exec "$(kubectl get pod -l app=ratings -o \
jsonpath='{.items[0].metadata.name}')" \
-c ratings -- curl -sS \
productpage:9080/productpage | grep -o "<title>.*</title>"
<title>Simple Bookstore App</title>
這時候就說明可以通路 Envoy了
#驗證到目前為止一切正常。運作以下指令,通過檢查響應中的頁面标題來檢視應用程式是否在叢集内運作并提供 HTML 頁面:
建立Ingress Gateway
(Istio入站網關),将應用關聯到istio網關:
此時Bookinfo應用雖然已經部署,但還不能被外界通路。
kubectl apply -f istio-1.15.0/samples/bookinfo/networking/bookinfo-gateway.yaml
kubectl get vs
kubectl get svc istio-ingressgateway -n istio-system
這類意味着我們通路任何一個 節點的30707 端都會被轉發到 ingressgateway,但是這并不是最好的方法,
我們應該有個 loadBanlancer 來負責去請求 k8s 每個節點的node -pod,使用者直接通路 loadBanlancer 位址
從叢集外部通路bookinfo應用
http://192.168.10.148:30707/productpage
這裡呢就進入了 書店的背景,說明已經部署完成了
我們在去看看 網絡走勢圖
圖例看出了 v1 版本 和 v2 版本 這時候 istio 就可以做 流量自動負載均衡,或者 微服務的 藍祿部署了