偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

五分鐘 K8S 實(shí)戰(zhàn)- Istio 網(wǎng)關(guān)

網(wǎng)絡(luò) 通信技術(shù)
我們?cè)L問(wèn)這個(gè)域名即可拿到響應(yīng),同時(shí)我們打開(kāi) k8s-combat-service-istio-mesh? service 的 Pod 查看日志,會(huì)發(fā)現(xiàn)所有的請(qǐng)求都進(jìn)入了 v1, 如果不需要這個(gè)限制條件,將 subset: v1 刪除即可。

在上一期 k8s-服務(wù)網(wǎng)格實(shí)戰(zhàn)-配置 Mesh 中講解了如何配置集群內(nèi)的 Mesh 請(qǐng)求,Istio 同樣也可以處理集群外部流量,也就是我們常見(jiàn)的網(wǎng)關(guān)。

圖片圖片

其實(shí)和之前講到的k8s入門(mén)到實(shí)戰(zhàn)-使用Ingress Ingress 作用類(lèi)似,都是將內(nèi)部服務(wù)暴露出去的方法。

只是使用 Istio-gateway 會(huì)更加靈活。

圖片圖片

這里有一張功能對(duì)比圖,可以明顯的看出 Istio-gateway 支持的功能會(huì)更多,如果是一個(gè)中大型企業(yè)并且已經(jīng)用上 Istio 后還是更推薦是有 Istio-gateway,使用同一個(gè)控制面就可以管理內(nèi)外網(wǎng)流量。

創(chuàng)建 Gateway

開(kāi)始之前首先是創(chuàng)建一個(gè) Istio-Gateway 的資源:

apiVersion: networking.istio.io/v1alpha3  
kind: Gateway  
metadata:  
  name: istio-ingress-gateway  
  namespace: default  
spec:  
  servers:  
    - port:  
        number: 80  
        name: http  
        protocol: HTTP  
      hosts:  
        - 'www.service1.io'  
  selector:  
    app: istio-ingressgateway #與現(xiàn)有的 gateway 關(guān)聯(lián)  
    istio: ingressgateway

其中的 selector 選擇器中匹配的 label 與我們安裝 Istio 時(shí)候自帶的 gateway 關(guān)聯(lián)即可。

# 查看 gateway 的 label
k get pod -n istio-system
NAME                                    READY   STATUS
istio-ingressgateway-649f75b6b9-klljw   1/1     Running

k describe pod istio-ingressgateway-649f75b6b9-klljw -n istio-system |grep Labels
Labels:           app=istio-ingressgateway

圖片圖片

這個(gè) Gateway 在我們第一次安裝 Istio 的時(shí)候就會(huì)安裝這個(gè)組件。

這個(gè)配置的含義是網(wǎng)關(guān)會(huì)代理通過(guò) www.service1.io 這個(gè)域名訪(fǎng)問(wèn)的所有請(qǐng)求。

之后需要使用剛才的 gateway 與我們的服務(wù)的 service 進(jìn)行綁定,這時(shí)就需要使用到 VirtualService:

apiVersion: networking.istio.io/v1alpha3  
kind: VirtualService  
metadata:  
  name: k8s-combat-istio-http-vs  
spec:  
  gateways:  
    - istio-ingress-gateway # 綁定剛才創(chuàng)建的 gateway 名稱(chēng) 
  hosts:  
    - www.service1.io
http:
- name: default  
  route:  
    - destination:  
        host: k8s-combat-service-istio-mesh  #service 名稱(chēng)
        port:  
          number: 8081  
        subset: v1

這個(gè)和我們之前講到的 Mesh 內(nèi)部流量時(shí)所使用到的 VirtualService 配置是一樣的。

這里的含義也是通過(guò) www.service1.io 以及 istio-ingress-gateway 網(wǎng)關(guān)的流量會(huì)進(jìn)入這個(gè)虛擬服務(wù),但所有的請(qǐng)求都會(huì)進(jìn)入 subset: v1 這個(gè)分組。

這個(gè)的分組信息在上一節(jié)可以查詢(xún)到:

apiVersion: networking.istio.io/v1alpha3  
kind: DestinationRule  
metadata:  
  name: k8s-combat-service-ds  
spec:  
  host: k8s-combat-service-istio-mesh  
  subsets:  
    - name: v1  
      labels:  
        app: k8s-combat-service-v1  
    - name: v2  
      labels:  
        app: k8s-combat-service-v2

之后我們?cè)L問(wèn)這個(gè)域名即可拿到響應(yīng),同時(shí)我們打開(kāi) k8s-combat-service-istio-mesh service 的 Pod 查看日志,會(huì)發(fā)現(xiàn)所有的請(qǐng)求都進(jìn)入了 v1, 如果不需要這個(gè)限制條件,將 subset: v1 刪除即可。

curl  http://www.service1.io/ping

本地需要配置下 host: 127.0.0.1 www.service1.io

圖片圖片

還有一點(diǎn),我們需要拿到 gateway 的外部IP,才能將 IP 和剛才的域名www.service1.io 進(jìn)行綁定(host,或者是域名管理臺(tái))。

如果使用的是 docker-desktop 自帶的 kubernetes 集群時(shí)候直接使用 127.0.0.1 即可,默認(rèn)就會(huì)綁定上。

如果使用的是 minikube 安裝的,那需要使用 minikube tunnel 手動(dòng)為 service 為L(zhǎng)oadBalancer 類(lèi)型的綁定一個(gè)本地 IP,具體可以參考文檔:https://minikube.sigs.k8s.io/docs/tasks/loadbalancer

如果是生產(chǎn)環(huán)境使用,云服務(wù)廠(chǎng)商會(huì)自動(dòng)綁定一個(gè)外網(wǎng) IP。

原理

圖片圖片

這個(gè)的訪(fǎng)問(wèn)請(qǐng)求的流程和之前講到的 kubernetes Ingress 流程是類(lèi)似的,只是 gateway 是通過(guò) VirtualService 來(lái)路由的 service,同時(shí)在這個(gè) VirtualService 中可以自定義許多的路由規(guī)則。

總結(jié)

服務(wù)網(wǎng)格 Istio 基本上講完了,后續(xù)還有關(guān)于 Telemetry 相關(guān)的 trace、log、metrics 會(huì)在運(yùn)維章節(jié)更新,也會(huì)和 Istio 有所關(guān)聯(lián)。感興趣的朋友可以持續(xù)關(guān)注。

本文的所有源碼在這里可以訪(fǎng)問(wèn):https://github.com/crossoverJie/k8s-combat

責(zé)任編輯:武曉燕 來(lái)源: crossoverJie
相關(guān)推薦

2023-09-15 08:00:20

Ingress網(wǎng)關(guān)Istio

2023-11-27 13:54:00

kubernetes高可用

2020-02-19 19:26:27

K8S開(kāi)源平臺(tái)容器技術(shù)

2023-09-27 08:09:22

2023-11-30 08:08:30

k8s優(yōu)雅停機(jī)

2023-09-21 11:28:28

Kubernetes云原生

2023-09-24 22:47:42

Kubernetes親和性

2023-09-27 22:33:40

KubernetesK8S

2021-03-12 08:20:24

架構(gòu)網(wǎng)絡(luò)模型

2023-12-25 08:05:35

2024-01-29 13:03:02

2023-11-01 08:08:22

k8s服務(wù)網(wǎng)格

2020-06-16 08:47:53

磁盤(pán)

2025-03-13 06:22:59

2009-11-16 10:53:30

Oracle Hint

2024-12-11 07:00:00

面向?qū)ο?/a>代碼

2023-09-06 08:12:04

k8s云原生

2019-09-25 07:17:42

KubernetesIstio測(cè)試

2021-12-01 06:50:50

Docker底層原理

2009-11-17 14:50:50

Oracle調(diào)優(yōu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)