国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用KubeSphere輕松部署B(yǎng)ookinfo應(yīng)用

這篇具有很好參考價值的文章主要介紹了使用KubeSphere輕松部署B(yǎng)ookinfo應(yīng)用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Bookinfo 應(yīng)用

這個示例部署了一個用于演示多種 Istio 特性的應(yīng)用,該應(yīng)用由四個單獨的微服務(wù)構(gòu)成。

如安裝了 Istio,說明已安裝 Bookinfo。

這個應(yīng)用模仿在線書店的一個分類,顯示一本書的信息。 頁面上會顯示一本書的描述,書籍的細(xì)節(jié)(ISBN、頁數(shù)等),及書評。

Bookinfo 應(yīng)用分為四個單獨的微服務(wù):

  • productpage:會調(diào)用 detailsreviews 兩個微服務(wù),生成頁面
  • details:包含書籍信息。
  • reviews:包含書籍相關(guān)的評論。它還會調(diào)用 ratings 微服務(wù)
  • ratings:包含由書籍評價組成的評級信息

reviews 微服務(wù)有 3 個版本:

  • v1 不會調(diào)用 ratings 服務(wù)。
  • v2 會調(diào)用 ratings 服務(wù),并使用 1 到 5 個黑星顯示評分信息
  • v3 會調(diào)用 ratings 服務(wù),并使用 1 到 5 個紅星顯示評分信息

應(yīng)用的端到端架構(gòu)(Bookinfo Application without Istio):

使用KubeSphere輕松部署B(yǎng)ookinfo應(yīng)用

Bookinfo 應(yīng)用中的幾個微服務(wù)是由不同的語言編寫的。 這些服務(wù)對 Istio 并無依賴,但是構(gòu)成了一個有代表性的服務(wù)網(wǎng)格的例子: 它由多個服務(wù)、多個語言構(gòu)成,并且 reviews 服務(wù)具有多個版本。

2 開始之前

Istio 包括了對 Kubernetes Gateway API 的 Beta 支持, 打算未來使其成為流量管理的默認(rèn) API。 以下說明指導(dǎo)您在網(wǎng)格中配置流量管理時如何選擇使用 Gateway API 或 Istio 配置 API。 請按照您的首選項遵循 Gateway APIIstio APIs 頁簽中的指示說明。

Kubernetes Gateway API CRD 不會默認(rèn)安裝在大多數(shù) Kubernetes 集群, 請確保在使用 Gateway API 之前已安裝好這些 CRD:

$ kubectl get crd gateways.gateway.networking.k8s.io &> /dev/null || \
  { kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd?ref=v1.0.0" | kubectl apply -f -; }

3 原生部署

要在 Istio 中運行這一應(yīng)用,無需對應(yīng)用自身做出任何改變。 只要簡單的在 Istio 環(huán)境中對服務(wù)進行配置和運行,具體一點說就是把 Envoy Sidecar 注入到每個服務(wù)之中。 最終部署結(jié)果:

使用KubeSphere輕松部署B(yǎng)ookinfo應(yīng)用

所有的微服務(wù)都和 Envoy Sidecar 集成在一起,被集成服務(wù)所有的出入流量都被 Sidecar 所劫持, 這樣就為外部控制準(zhǔn)備了所需的 Hook,然后就可以利用 Istio 控制平面為應(yīng)用提供服務(wù)路由、遙測數(shù)據(jù)收集以及策略實施等功能。

3.1 啟動應(yīng)用服務(wù)

  1. 進入 Istio 安裝目錄

  2. Istio 默認(rèn)自動注入 Sidecar。為 default 命名空間打上標(biāo)簽 istio-injection=enabled

    $ kubectl label namespace default istio-injection=enabled
    
  3. 使用 kubectl 部署應(yīng)用:

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

    如果您在安裝過程中禁用了 Sidecar 自動注入功能而選擇手動注入 Sidecar, 請在部署應(yīng)用之前使用 istioctl kube-inject 命令修改 bookinfo.yaml 文件。

    $ kubectl apply -f <(istioctl kube-inject -f samples/bookinfo/platform/kube/bookinfo.yaml)
    

    上面的命令會啟動全部的四個服務(wù),其中也包括了 reviews 服務(wù)的三個版本(v1、v2 以及 v3)。

    在實際部署中,微服務(wù)版本的啟動過程需要持續(xù)一段時間,并不是同時完成的。

  4. 確認(rèn)所有的服務(wù)和 Pod 都已經(jīng)正確的定義和啟動:

    $ kubectl get services
    
    NAME          TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)    AGE
    details       ClusterIP   10.0.0.31    <none>        9080/TCP   6m
    kubernetes    ClusterIP   10.0.0.1     <none>        443/TCP    7d
    productpage   ClusterIP   10.0.0.120   <none>        9080/TCP   6m
    ratings       ClusterIP   10.0.0.15    <none>        9080/TCP   6m
    reviews       ClusterIP   10.0.0.170   <none>        9080/TCP   6m
    

    還有:

    $ kubectl get pods
    
    NAME                                        READY     STATUS    RESTARTS   AGE
    details-v1-1520924117-48z17                 2/2       Running   0          6m
    productpage-v1-560495357-jk1lz              2/2       Running   0          6m
    ratings-v1-734492171-rnr5l                  2/2       Running   0          6m
    reviews-v1-874083890-f0qf0                  2/2       Running   0          6m
    reviews-v2-1343845940-b34q5                 2/2       Running   0          6m
    reviews-v3-1813607990-8ch52                 2/2       Running   0          6m
    
  5. 要確認(rèn) Bookinfo 應(yīng)用是否正在運行,請在某個 Pod 中用 curl 命令對應(yīng)用發(fā)送請求,例如 ratings

    $ 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>
    

3.2 確定 Ingress 的 IP 和端口

現(xiàn)在 Bookinfo 服務(wù)啟動并運行中,您需要使應(yīng)用程序可以從外部訪問 Kubernetes 集群, 例如使用瀏覽器。可以使用網(wǎng)關(guān)實現(xiàn)這個目標(biāo)。

  1. 為 Bookinfo 應(yīng)用程序定義一個網(wǎng)關(guān):

    Istio APIsGateway API

    這些說明假定您的 Kubernetes 集群支持外部負(fù)載均衡器(即 LoadBalancer 類型的服務(wù))。 請參考 Ingress 控制了解詳情。

    使用以下命令創(chuàng)建 Kubernetes Gateway:

    $ kubectl apply -f samples/bookinfo/gateway-api/bookinfo-gateway.yaml
    
    gateway.gateway.networking.k8s.io/bookinfo-gateway created
    httproute.gateway.networking.k8s.io/bookinfo created
    

    因為創(chuàng)建 Kubernetes Gateway 資源也會 部署關(guān)聯(lián)的代理服務(wù), 所以運行以下命令等待網(wǎng)關(guān)就緒:

    $ kubectl wait --for=condition=programmed gtw bookinfo-gateway
    

    從 bookinfo 網(wǎng)關(guān)資源處獲取網(wǎng)關(guān)地址和端口:

    $ export INGRESS_HOST=$(kubectl get gtw bookinfo-gateway -o jsonpath='{.status.addresses[0].value}')
    $ export INGRESS_PORT=$(kubectl get gtw bookinfo-gateway -o jsonpath='{.spec.listeners[?(@.name=="http")].port}')
    
  2. 設(shè)置 GATEWAY_URL

    $ export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT
    

4 kubesphere 部署

登錄控制臺并訪問項目 (demo-project)。前往應(yīng)用負(fù)載下的應(yīng)用,點擊右側(cè)的部署示例應(yīng)用

使用KubeSphere輕松部署B(yǎng)ookinfo應(yīng)用

在出現(xiàn)的對話框中點擊下一步,其中必填字段已經(jīng)預(yù)先填好,相關(guān)組件也已經(jīng)設(shè)置完成:

使用KubeSphere輕松部署B(yǎng)ookinfo應(yīng)用

使用KubeSphere輕松部署B(yǎng)ookinfo應(yīng)用

無需修改設(shè)置,只需在最后一頁(路由設(shè)置)點擊創(chuàng)建

使用KubeSphere輕松部署B(yǎng)ookinfo應(yīng)用

KubeSphere 會自動創(chuàng)建主機名。若要更改主機名,請將鼠標(biāo)懸停在默認(rèn)路由規(guī)則上,然后點擊 使用KubeSphere輕松部署B(yǎng)ookinfo應(yīng)用 進行編輯。

工作負(fù)載中,確保這四個部署都處于運行中狀態(tài),這意味著該應(yīng)用已經(jīng)成功創(chuàng)建??赡苄枰葞追昼姴拍芸吹讲渴鹫_\行。

使用KubeSphere輕松部署B(yǎng)ookinfo應(yīng)用

5 訪問 Bookinfo

應(yīng)用中,訪問自制應(yīng)用,點擊應(yīng)用 bookinfo 查看其詳情頁面:

使用KubeSphere輕松部署B(yǎng)ookinfo應(yīng)用

詳情頁面中顯示用于訪問 Bookinfo 應(yīng)用的主機名和端口號。

內(nèi)網(wǎng)服務(wù)器請求訪問:

使用KubeSphere輕松部署B(yǎng)ookinfo應(yīng)用

由于將通過 NodePort 在集群外訪問該應(yīng)用,因此需在安全組中為出站流量開放上圖的端口,并按需設(shè)置端口轉(zhuǎn)發(fā)規(guī)則。

在本地 hosts 文件 (/etc/hosts) 中添加一個條目將主機名映射到對應(yīng)的 IP 地址,如:

139.198.178.20 productpage.icv-data-demo.192.168.0.190.nip.io

使用KubeSphere輕松部署B(yǎng)ookinfo應(yīng)用

請你替換成自己的 IP 地址與主機名。

完成后,點擊訪問服務(wù)訪問該應(yīng)用:

使用KubeSphere輕松部署B(yǎng)ookinfo應(yīng)用

在應(yīng)用詳情頁面,點擊左下角的 Normal user。

使用KubeSphere輕松部署B(yǎng)ookinfo應(yīng)用

Book Reviews 板塊僅出現(xiàn) Reviewer1Reviewer2,并且沒有任何評級內(nèi)容,因為這是當(dāng)前應(yīng)用版本的狀態(tài)。

關(guān)注我,緊跟本系列專欄文章,咱們下篇再續(xù)!

作者簡介:魔都國企技術(shù)專家兼架構(gòu),多家大廠后臺研發(fā)和架構(gòu)經(jīng)驗,負(fù)責(zé)復(fù)雜度極高業(yè)務(wù)系統(tǒng)的模塊化、服務(wù)化、平臺化研發(fā)工作。具有豐富帶團隊經(jīng)驗,深厚人才識別和培養(yǎng)的積累。

參考:

  • 編程嚴(yán)選網(wǎng)

本文由博客一文多發(fā)平臺 OpenWrite 發(fā)布!文章來源地址http://www.zghlxwxcb.cn/news/detail-778748.html

到了這里,關(guān)于使用KubeSphere輕松部署B(yǎng)ookinfo應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包