欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Istio如何使用相同的端口訪問網(wǎng)格外服務(wù)

1.1、背景

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供克什克騰網(wǎng)站建設(shè)、克什克騰做網(wǎng)站、克什克騰網(wǎng)站設(shè)計(jì)、克什克騰網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、克什克騰企業(yè)網(wǎng)站模板建站服務(wù),10多年克什克騰做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

寫這篇文章的目的是為了說明以下問題:如何使用TCP協(xié)議相同的端口訪問網(wǎng)格外多個(gè)服務(wù)? 這是最近直播的時(shí)候有一個(gè)同學(xué)提出的,當(dāng)時(shí)我沒有完全明白,“訪問多集群” 的意思。后來仔細(xì)思考了一下,問題應(yīng)該就是Istio服務(wù)網(wǎng)格內(nèi)如何通過相同的協(xié)議,端口訪問不同的服務(wù)。

1.2、使用場(chǎng)景

肯定會(huì)有人回答,既然相同的端口不能使用,何不換一個(gè)端口呢,這樣做也是一種解決方法。我在想有一些場(chǎng)景一定沒法或者不方便繞過去。

1) 假如同一個(gè)網(wǎng)格內(nèi)部署了生產(chǎn),測(cè)試,開發(fā)三套環(huán)境,都需要通過3306端口訪問對(duì)應(yīng)環(huán)境的MySQL數(shù)據(jù)庫(kù)。

2) 假如同一個(gè)網(wǎng)格內(nèi)部署了生產(chǎn),測(cè)試,開發(fā)三套環(huán)境,都需要通過6379端口訪問對(duì)應(yīng)環(huán)境的redis。

在微服務(wù)盛行的今天,往往需要團(tuán)隊(duì)之間協(xié)作,沒辦法保證所有的微服務(wù)都運(yùn)行在同一服務(wù)網(wǎng)格內(nèi)。尤其是中間件服務(wù),作為公司公共服務(wù),一定是業(yè)務(wù)共享的。既然我們不可避免的需要使用相同的端口,訪問外部服務(wù),接下來告訴大家兩種方案解決以上問題。

1.3、解決方案

通過相同的端口443訪問 https://github.com 和 https://www.huaweicloud.com,從網(wǎng)格內(nèi)訪問外部服務(wù),需要分別創(chuàng)建對(duì)應(yīng)的ServiceEntentry:

1) www.huaweicloud.com

cat <<EOF | kubectl apply -f -

apiVersion: networking.istio.io/v1alpha3

kind: ServiceEntry

metadata:

name: hwcloud

spec:

hosts:

  • www.huaweicloud.com

    ports:

  • number: 443

    name: tcp

    protocol: TCP

    resolution: DNS

    location: MESH_EXTERNAL

EOF

2) github.com

cat <<EOF | kubectl apply -f -

apiVersion: networking.istio.io/v1alpha3

kind: ServiceEntry

metadata:

name: github

spec:

hosts:

  • github.com

    ports:

  • number: 443

    name: tcp

    protocol: TCP

    resolution: DNS

    location: MESH_EXTERNAL

EOF

兩條規(guī)則建好之后,等待pilot將新的配置下發(fā)到所有的proxy,我們通過sleep pod驗(yàn)證連通性

$ kubectl exec sleep-754684654f-trpt2 -- curl -sL -o /dev/null https://www.huaweicloud.com –v

< HTTP/1.1 200 OK

< Server: NWSs

< Date: Fri, 21 Dec 2018 02:23:11 GMT

< Content-Type: text/html;charset=utf-8

< Content-Length: 703122

< Connection: keep-alive

< Cache-Control: public, max-age=600

< Expires: Fri, 21 Dec 2018 02:33:10 GMT

< Last-Modified: Thu, 20 Dec 2018 10:30:00 GMT

< X-NWS-LOG-UUID: 0d13017f-8767-4399-a509-6c11b2a9f3d0

< Access-Control-Allow-Origin: *

< dl-from: qcloud

< X-Cache-Lookup: Hit From Disktank3

< X-Via: LIANTONG-HENAN_171(200:hit)

<

{ [15930 bytes data]

  • Connection #0 to host www.huaweicloud.com left intact

kubectl exec sleep-754684654f-trpt2 -- curl -sL -o /dev/null https://github.com –v -k

< HTTP/1.1 404 Not Found

< Server: NWSs

< Date: Fri, 21 Dec 2018 02:29:26 GMT

< Content-Type: text/html

< Content-Length: 52

< Connection: keep-alive

< X-NWS-LOG-UUID: b283fee3-89e0-48bc-8d6e-0c3a68ecc4bf

< X-Via: LIANTONG-HENAN_25(404:hit)

<

{ [52 bytes data]

  • Connection #0 to host github.com left intact

由此可見可以在網(wǎng)格內(nèi)部訪問https://www.huaweicloud.com,但是不可以訪問https://github.com. 這里有一個(gè)原因是istio會(huì)將ServiceEntry規(guī)則按照創(chuàng)建時(shí)間排序,創(chuàng)建時(shí)間較早的優(yōu)先級(jí)高,所以先創(chuàng)建的 hwcloud ServiceEntry生效。

可以查看sleep pod上的配置來確認(rèn):listener配置只有到華為云的cluster"outbound|443||www.huaweicloud.com"

$ istioctl pc listener sleep-754684654f-trpt2 --address=0.0.0.0 --port=443 -ojson

[

{

    "name": "0.0.0.0_443",

    "address": {

        "socketAddress": {

            "address": "0.0.0.0",

            "portValue": 443

        }

    },

    "filterChains": [

        {

            "filters": [

                {

                    "name": "mixer",

                     …

                },

                {

                    "name": "envoy.tcp_proxy",

                    "config": {

                        "access_log": [

                            {

                              …

                            }

                        ],

                        "cluster": "outbound|443||www.huaweicloud.com",

                        "stat_prefix": "outbound|443||www.huaweicloud.com"

                    }

                }

            ]

        }

    ],

    …

}

]

為了同時(shí)訪問兩者,這里我提供兩種方法:

1.3.1創(chuàng)建ServiceEntry時(shí)指定Address

查詢www.huaweicloud.com域名綁定的ip地址,選擇一個(gè)或者多個(gè)更新hwcloud ServiceEntry

Istio如何使用相同的端口訪問網(wǎng)格外服務(wù)

同樣的方法更新 github

Istio如何使用相同的端口訪問網(wǎng)格外服務(wù)

驗(yàn)證https://www.huaweicloud.com和https://github.com均可以從網(wǎng)格內(nèi)訪問,因?yàn)橹付藄pec.addresses 后,pilot生成listener使就會(huì)使用指定的ip地址代替‘0.0.0.0’的全匹配方式。

Istio如何使用相同的端口訪問網(wǎng)格外服務(wù)

雖然著這種方式一定程度上可以解決同一端口訪問外部服務(wù)的需求。但是由于需要提前設(shè)置ip地址,所以在ip經(jīng)常變動(dòng)的場(chǎng)景下缺少靈活性。下面提供一種更靈活的方法。

1.3.2 指定ServiceEntry的作用域

Istio社區(qū)最近實(shí)現(xiàn)了網(wǎng)絡(luò)的配置作用域特性:https://github.com/istio/istio/pull/10287, 允許用戶設(shè)置相應(yīng)規(guī)則的作用域范圍。

目前 ServiceEntry,VirtualService,Gateway, DestinationRule等都可以通過spec.configScope設(shè)置作用范圍。ConfigScope 可以設(shè)置為"PUBLIC","PRIVATE"類型。

"PUBLIC" 表示規(guī)則對(duì)網(wǎng)格內(nèi)所有的工作負(fù)載可見,這也是默認(rèn)值。

"PRIVATE" 表示規(guī)則僅對(duì)同一namespace下面的工作負(fù)載可見。

因此可以利用ConfigScope將github以及hwcloud都設(shè)置成PRIVATE,分別創(chuàng)建在兩個(gè)不同的namespace下面。這樣也可以做到ns1內(nèi)的工作負(fù)載訪問https://github.com, ns2內(nèi)的工作負(fù)載訪問https://www.huaweicloud.com .

cat <<EOF | kubectl apply -f -

apiVersion: networking.istio.io/v1alpha3

kind: ServiceEntry

metadata:

name: github

namespace: ns1

spec:

hosts:

  • github.com

    ports:

  • number: 443

    name: tcp

    protocol: TCP

    resolution: DNS

    location: MESH_EXTERNAL

    configScope: PRIVATE

EOF

cat <<EOF | kubectl apply -f -

apiVersion: networking.istio.io/v1alpha3

kind: ServiceEntry

metadata:

name: hwcloud

namespace: ns2

spec:

hosts:

  • www.huaweicloud.com

    ports:

  • number: 443

    name: tcp

    protocol: TCP

    resolution

本文標(biāo)題:Istio如何使用相同的端口訪問網(wǎng)格外服務(wù)
瀏覽地址:http://aaarwkj.com/article10/ipogdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、ChatGPT電子商務(wù)、企業(yè)網(wǎng)站制作、、品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(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)

成都網(wǎng)頁(yè)設(shè)計(jì)公司
91精品人妻一区二区| 欧美日韩国产综合一区二区| 亚洲精品??一区二区| 青青草国产自拍在线视频| 69人妻一区二区三区蜜桃| 欧美日韩中文字幕精品| 中文字幕精品免费日韩在线| 内射久久一区二区亚洲| 国产片中文字幕在线观看| 黄色亚洲一区二区三区四区| 午夜精品一区二区三区在线视频| 国产亚洲国产av网站在线| 国语对白刺激真实精品| 久视频这里只有精品99| 亚洲男人天堂av电影| 亚洲天堂免费观看av| 少妇太爽高潮在线播放| 一区二区三区国产欧美日本| 麻豆视传媒短视频免费看| 国产精品日本欧美一区二区| 在线不卡日本v二区到六区| 九九视频精品免费高清视频| 亚洲欧洲日韩另类在线| 日日做日夜夜操天天搞| 99热免费精品在线观看| 最新亚洲国产高清激情| 成人粉嫩av一区二区白浆| 日韩精品成人一区二区三区免费| 国产传媒免费在线播放| 亚洲日本韩国美女二区| 欧美香蕉高清视频免费| 永久永久免费黄色一级片| 91精品啪在线观看国产日本| 日韩中文不卡人成在线视频| 亚洲成人日韩欧美在线| 女厕所偷拍一区二区三区| 亚洲一区二区三区在线观看| 我要看国产一级内射片| 国产a级一区二区三区| 风韵丰满熟妇老熟女啪啪| 精品一区二区久久久久久网精|