内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

kubernetes中Istio如何配置請(qǐng)求路由-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“kubernetes中Istio如何配置請(qǐng)求路由”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“kubernetes中Istio如何配置請(qǐng)求路由”這篇文章吧。

創(chuàng)新互聯(lián)主要從事成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)什邡,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

一:簡(jiǎn)介

由于 Bookinfo 示例部署了三個(gè)版本的 reviews 微服務(wù),因此我們需要設(shè)置默認(rèn)路由。 否則,如果您當(dāng)多次訪問應(yīng)用程序,您會(huì)注意到有時(shí)輸出包含星級(jí)評(píng)分,有時(shí)又沒有。 這是因?yàn)闆]有為應(yīng)用明確指定缺省路由時(shí),Istio 會(huì)將請(qǐng)求隨機(jī)路由到該服務(wù)的所有可用版本上。

二:路由配置

  1. 說明:此任務(wù)假定您尚未設(shè)置任何路由。 如果您已經(jīng)為示例應(yīng)用程序創(chuàng)建了存在沖突的路由規(guī)則,則需要在下面的命令中使用 replace代替 create

  2. 將所有微服務(wù)的默認(rèn)版本設(shè)置為 v1

    istioctl create -f samples/bookinfo/networking/destination-rule-all.yaml

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: productpage
spec:
  host: productpage
  subsets:
  - name: v1
    labels:
      version: v1
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: reviews
spec:
  host: reviews
  subsets:
  - name: v1
    labels:
      version: v1
  - name: v2
    labels:
      version: v2
  - name: v3
    labels:
      version: v3
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: ratings
spec:
  host: ratings
  subsets:
  - name: v1
    labels:
      version: v1
  - name: v2
    labels:
      version: v2
  - name: v2-mysql
    labels:
      version: v2-mysql
  - name: v2-mysql-vm
    labels:
      version: v2-mysql-vm
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: details
spec:
  host: details
  subsets:
  - name: v1
    labels:
      version: v1
  - name: v2
    labels:
      version: v2
---

istioctl create -f samples/bookinfo/networking/virtual-service-all-v1.yaml

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: productpage
spec:
  hosts:
  - productpage
  http:
  - route:
    - destination:
        host: productpage
        subset: v1
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: reviews
spec:
  hosts:
  - reviews
  http:
  - route:
    - destination:
        host: reviews
        subset: v1
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: ratings
spec:
  hosts:
  - ratings
  http:
  - route:
    - destination:
        host: ratings
        subset: v1
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: details
spec:
  hosts:
  - details
  http:
  - route:
    - destination:
        host: details
        subset: v1
---

3.使用 istioctl get destinationrules -o yaml來顯示路由規(guī)則對(duì)應(yīng)的 subset 定義

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  creationTimestamp: null
  name: details
  namespace: default
  resourceVersion: "14675502"
spec:
  host: details
  subsets:
  - labels:
      version: v1
    name: v1
  - labels:
      version: v2
    name: v2
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  creationTimestamp: null
  name: productpage
  namespace: default
  resourceVersion: "14675499"
spec:
  host: productpage
  subsets:
  - labels:
      version: v1
    name: v1
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  creationTimestamp: null
  name: ratings
  namespace: default
  resourceVersion: "14675501"
spec:
  host: ratings
  subsets:
  - labels:
      version: v1
    name: v1
  - labels:
      version: v2
    name: v2
  - labels:
      version: v2-mysql
    name: v2-mysql
  - labels:
      version: v2-mysql-vm
    name: v2-mysql-vm
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  creationTimestamp: null
  name: reviews
  namespace: default
  resourceVersion: "14675500"
spec:
  host: reviews
  subsets:
  - labels:
      version: v1
    name: v1
  - labels:
      version: v2
    name: v2
  - labels:
      version: v3
    name: v3
---

4.通過將來自 productpage 的流量路由到 reviews:v2 實(shí)例,為測(cè)試用戶 “jason” 啟用 ratings 服務(wù)。

istioctl replace -f samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: reviews
spec:
  hosts:
    - reviews
  http:
  - match:
    - headers:
        end-user:
          exact: jason
    route:
    - destination:
        host: reviews
        subset: v2
  - route:
    - destination:
        host: reviews
        subset: v1

在 productpage 網(wǎng)頁上以用戶 “jason” 身份登錄?,F(xiàn)在應(yīng)該在每次評(píng)論旁邊看到評(píng)分(1-5顆星)。 請(qǐng)注意,如果您以任何其他用戶身份登錄,您將會(huì)繼續(xù)看到 reviews:v1 版本服務(wù),即不包含星級(jí)評(píng)價(jià)的頁面。

三:原理

首先使用 Istio 將 100% 的請(qǐng)求流量都路由到了 Bookinfo 服務(wù)的 v1 版本。 然后再設(shè)置了一條路由規(guī)則,該路由規(guī)則在 productpage 服務(wù)中添加基于請(qǐng)求的 “end-user” 自定義 header 選擇性地將特定的流量路由到了 reviews 服務(wù)的 v2 版本。

為了利用 Istio 的 L7 路由功能,Kubernetes 中的服務(wù)(如本任務(wù)中使用的 Bookinfo 服務(wù))必須遵守某些特定限制。

1.需要給端口正確命名:服務(wù)端口必須進(jìn)行命名。端口名稱只允許是<協(xié)議>[-<后綴>-]模式,其中<協(xié)議>部分可選擇范圍包括 http、http2、grpc、mongo 以及 redis,Istio 可以通過對(duì)這些協(xié)議的支持來提供路由能力。例如 name: http2-foo 和 name: http 都是有效的端口名,但 name: http2foo 就是無效的。如果沒有給端口進(jìn)行命名,或者命名沒有使用指定前綴,那么這一端口的流量就會(huì)被視為普通 TCP 流量(除非顯式的用 Protocol: UDP 聲明該端口是 UDP 端口)。

2.關(guān)聯(lián)服務(wù):Pod 必須關(guān)聯(lián)到 Kubernetes 服務(wù),如果一個(gè) Pod 屬于多個(gè)服務(wù),這些服務(wù)不能再同一端口上使用不同協(xié)議,例如 HTTP 和 TCP。

3.Deployment 應(yīng)帶有 app 以及 version 標(biāo)簽:在使用 Kubernetes Deployment 進(jìn)行 Pod 部署的時(shí)候,建議顯式的為 Deployment 加上 app 以及 version 標(biāo)簽。每個(gè) Deployment 都應(yīng)該有一個(gè)有意義的 app 標(biāo)簽和一個(gè)用于標(biāo)識(shí) Deployment 版本的 version 標(biāo)簽。app 標(biāo)簽在分布式跟蹤的過程中會(huì)被用來加入上下文信息。Istio 還會(huì)用 app 和 version 標(biāo)簽來給遙測(cè)指標(biāo)數(shù)據(jù)加入上下文信息。

四:清除路由

istioctl delete -f samples/bookinfo/networking/virtual-service-all-v1.yaml

以上是“kubernetes中Istio如何配置請(qǐng)求路由”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!

當(dāng)前題目:kubernetes中Istio如何配置請(qǐng)求路由-創(chuàng)新互聯(lián)
鏈接URL:http://www.rwnh.cn/article34/jhppe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、標(biāo)簽優(yōu)化做網(wǎng)站、微信小程序網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
贵南县| 炎陵县| 梨树县| 泸州市| 加查县| 洛宁县| 白河县| 江油市| 吉林市| 东丽区| 竹北市| 双峰县| 静海县| 尚义县| 宣汉县| 德州市| 玛多县| 杂多县| 苍溪县| 岢岚县| 哈巴河县| 城口县| 平定县| 乌什县| 三明市| 桂东县| 丰都县| 芮城县| 陇西县| 扎囊县| 大田县| 秭归县| 永胜县| 卓资县| 剑河县| 莒南县| 霍邱县| 景谷| 汶上县| 康定县| 全椒县|