国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Kubernetes 集群中流量暴露的幾種方案

云計算 云原生
Kubernetes 社區通過為集群增設入口點的方案,解決對外流量的管理。

背景

在業務使用 Kubernetes 進行編排管理時,針對業務的南北流量的接入,在 Kuberentes 中通常有幾種方案,本文就接入的方案進行簡單介紹。

流量接入方案

Kubernetes 社區通過為集群增設入口點的方案,解決對外流量的管理。

通過 kube-proxy 進行代理

通常在最簡單的測試或個人開發環境,可以通過 kubectl port-forward 來啟動一個 kube-proxy 進程代理內部的服務至該命令執行的宿主機節點,如果該宿主機具備公網 IP,且轉發監聽端口為0.0.0.0就可以實現公網訪問該服務,該方式可以代理單個 Pod,或者 Deployment,或者 Servcie。

$ kubectl port-forward -h
Forward one or more local ports to a pod. This command requires the node to have 'socat' installed.
Use resource type/name such as deployment/mydeployment to select a pod. Resource type defaults to 'pod' if omitted.

If there are multiple pods matching the criteria, a pod will be selected automatically. The forwarding session ends
when the selected pod terminates, and rerun of the command is needed to resume forwarding.
Examples:
# Listen on ports 5000 and 6000 locally, forwarding data to/from ports 5000 and 6000 in the pod
kubectl port-forward pod/mypod 5000 6000
# Listen on ports 5000 and 6000 locally, forwarding data to/from ports 5000 and 6000 in a pod selected by the
deployment
kubectl port-forward deployment/mydeployment 5000 6000
# Listen on port 8443 locally, forwarding to the targetPort of the service's port named "https" in a pod selected by
the service
kubectl port-forward service/myservice 8443:https
# Listen on port 8888 locally, forwarding to 5000 in the pod
kubectl port-forward pod/mypod 8888:5000
# Listen on port 8888 on all addresses, forwarding to 5000 in the pod
kubectl port-forward --address 0.0.0.0 pod/mypod 8888:5000
# Listen on port 8888 on localhost and selected IP, forwarding to 5000 in the pod
kubectl port-forward --address localhost,10.19.21.23 pod/mypod 8888:5000
# Listen on a random port locally, forwarding to 5000 in the pod
kubectl port-forward pod/mypod :5000

NodePort 方式

其次較常用的為 NodePort 方式,將 K8s 中 service 的類型修改為 NodePort 方式,會得到一個端口范圍在 30000-32767 端口范圍內的宿主機端口,同樣宿主機具有公網 IP 就可以實現對服務的暴露,但是 NodePort 會占用宿主機端口,一個 Service 對應一個 NodePort,該方式僅為四層,無法實現 SSL 證書的卸載,如果將服務轉發到單個 Node 節點的 NodePort 也無法實現高可用,一般需要在 NodePort 前搭配負載均衡來添加多個后端 NodePort 已實現高可用。

Kubernetes 集群中流量暴露的幾種方案

LoadBalancer

四層

四層流量轉發一個 LB 的端口只能對應一個 Service,Servcie 的 Type 為 NodePort,例如如下圖,LoadBalancer 上的 88 端口對應轉發到后端 NodePort 的 32111 端口,對應到 servcieA;LB 上的 8080 端口對應轉發到后端 NodePort32001 端口;該方案可以通過添加多個 NodePort 方式實現高可用,但是由于為四層無法實現對 SSL 的卸載,對應 NodePort 需要在 LB 占用一個端口。

Kubernetes 集群中流量暴露的幾種方案

七層

七層可以借助 LB 的域名轉發,實現一個域名端口對應多個 Service,如圖可以根據 path 路徑,/cmp 對應 NodePort 的 32111,/gateway 對應 NodePort 的 32000 端口,不僅可以實現高可用,而且七層可以實現 SSL 卸載。

Kubernetes 集群中流量暴露的幾種方案

目前一般公有云的 LB 級別都具備四層和七層的功能,配合使用可以實現靈活的業務流量暴露。

Ingress

在 K8s 中,存在有 Ingress 資源來實現單個域名轉發根據不同的路徑或其他配置規則轉發到 K8 集群內部不同的 Service,但是用戶請求需要訪問 Ingress 實現控制器的 NodePort 例如 Ingress-nginx 的 Controller 的 Service 的 NodePort,針對具體的業務域名一般不會帶端口,所以一般前面還需要一層 80/443 的端口轉發。

一般 Ingress 的 Controller 實現業界也有不少解決方案,例如比較知名的 Ingress—nginx/Ingress-traefik 等。

Kubernetes 集群中流量暴露的幾種方案

LoadBalancer + Ingress

如下圖所示在最前面有一個四層 LB 實現端口 80/443 轉發至 ingress-provider 的 Service 的 NodePort,K8s 集群內部配置有多個 service。

Kubernetes 集群中流量暴露的幾種方案

Ingress-nginx 詳解

在上面的幾種方案中,均有用到 Ingress,Nginx-ingress 為 Nginx 官方提供的實現 K8s ingress 資源的方案,同時 Kubernetes 官方也提供了基于 Nginx 實現的 Ingress 方案。

Nginx Ingress 由資源對象 Ingress、Ingress 控制器、Nginx 三部分組成,Ingress 控制器的目標是構建完成一個配置文件(nginx.conf),主要通過檢測配置文件發生改變后重載 Nginx 實現,但并不是僅在 Upstream 更改時重載 Nginx(部署應用程序時修改 Endpoints),使用 lua-nginx-module 實現。

根據下圖可以更好理解 Ingress-nginx 的使用場景。

Kubernetes 集群中流量暴露的幾種方案

圖中展示如下信息:

  • 一個 K8s 集群。
  • 集群用戶管理、用戶 A 和用戶 B,它們通過 Kubernetes API 使用集群。
  • 客戶端 A 和客戶端 B,它們連接到相應用戶部署的應用程序 A 和 B。
  • IC,由 Admin 部署在名稱空間 nginx-ingress 中的 pod 中,并通過 ConfigMap nginx-ingress 進行配置。Admin 通常部署至少兩個 pod 以實現冗余。IC 使用 Kubernetes API 獲取集群中創建的最新入口資源,然后根據這些資源配置 NGINX。
  • 應用程序 A 由用戶 A 在命名空間 A 中部署了兩個吊艙。為了通過主機 A.example.com 向其客戶機(客戶機 A)公開應用程序,用戶 A 創建入口 A。
  • 用戶 B 在命名空間 B 中部署了一個 pod 的應用程序 B。為了通過主機 B.example.com 向其客戶機(客戶機 B)公開應用程序,用戶 B 創建 VirtualServer B。
  • 公共端點,它位于 IC 吊艙前面。這通常是一個 TCP 負載均衡器(云、軟件或硬件),或者這種負載均衡器與 NodePort 服務的組合。客戶端 A 和 B 通過公共端點連接到他們的應用程序。

黃色和紫色箭頭表示與客戶端通信量相關的連接,黑色箭頭表示對 Kubernetes API 的訪問。

為了簡單,沒有顯示許多必要的 Kubernetes 資源,如部署和服務,管理員和用戶也需要創建這些資源。

其他

在 K8s 中,通常云廠商的 LB 一般云廠商提供適配 CNI,會在創建 K8s 集群時會自動創建 LB 類型的 servcie,例如阿里的 ACK,騰訊的 TKE,華為的 CCE 等,但是在我們自建或個人測試場景,開源的 Metallb[1]是一個不錯的選擇,其作用通過 K8s 原生的方式提供 LB 類型的 Service 支持,開箱即用,當然還有青云科技 KubeSphere 團隊開源的負載均衡器插件 OpenELB[2],是為物理機(Bare-metal)、邊緣(Edge)和私有化環境設計的負載均衡器插件,可作為 Kubernetes、K3s、KubeSphere 的 LB 插件對集群外暴露 “LoadBalancer” 類型的服務。在 2021 年 11 月已進入 CNCF 沙箱(Sandbox)托管,也是解決用戶將 Kubernetes 集群部署在裸機上,或是私有化環境特別是物理機或邊緣集群,Kubernetes 并不提供 LoadBalancer 的痛點,提供與基于云的負載均衡器相同的用戶體驗。

引用鏈接

[1]Metallb: https://github.com/metallb/metallb。

[2]OpenELB: https://openelb.io/。

責任編輯:姜華 來源: 今日頭條
相關推薦

2022-07-18 14:45:22

Kubernetes暴露方案

2022-01-12 11:55:43

Kubernetes多集群Linux

2022-07-11 09:46:43

Kubernetes開源Linux

2022-09-22 12:11:38

PodKubernetes

2022-07-05 08:10:25

Kubernetes云原生

2023-02-27 07:56:55

IngressKubernetes

2023-11-07 08:23:05

2022-07-24 21:11:19

KubernetesLinux

2021-12-29 17:24:16

Kubernetes集群事件

2021-06-25 15:53:25

Kubernetes程序技巧

2011-11-25 15:06:35

網絡流量

2022-07-07 10:47:16

IngressKubernetes

2021-02-18 09:28:32

Kubernetes開源SaaS

2020-04-08 13:05:03

TraefikKubernetes樹莓派

2023-06-27 17:37:08

Kubernete容器集群

2023-11-01 07:55:44

K8sKubernetes

2023-11-24 11:50:39

2021-10-07 20:36:45

Redis集群場景

2023-11-08 00:23:08

網關API

2021-10-15 08:27:14

Kubernetes 工具Mizu
點贊
收藏

51CTO技術棧公眾號

午夜激情在线观看| 清纯唯美综合亚洲| 精品视频在线免费看| www.1024| 91在线视频播放| 欧美精品一区二区性色a+v| 欧美视频官网| 亚洲free嫩bbb| 日韩一区电影| 欧美在线亚洲一区| 日韩精品一区二区三区中文字幕| 亚洲精品日韩欧美| 天海翼亚洲一区二区三区| 国产精品国产自产拍高清av王其| 日本天堂免费a| 精品一区二区在线看| 欧美精品亚洲| 免费日韩av| 欧美日韩一区综合| 久久亚洲精选| 亚洲精品一区二区三| 老牛嫩草一区二区三区日本| 久久精品国产美女| 久久只有精品| 亚洲欧美电影在线观看| 日韩电影在线观看一区| 欧美欧美一区二区| 日韩精品福利网| 天天做天天爱天天高潮| 国内精品不卡在线| 午夜免费福利小电影| 久久亚洲综合色| 日本中文字幕片| 国产精品美女久久久久av爽李琼 | 国产欧美亚洲日本| 在线日本成人| 免费在线成人av电影| 日韩中文欧美在线| 无码人妻精品一区二区蜜桃百度| 成人妖精视频yjsp地址| 亚洲欧美久久久久| 精品久久中文字幕久久av| 国产日产精品久久久久久婷婷| 制服丝袜亚洲播放| 99re66热这里只有精品4| 欧美国产日本高清在线 | 亚洲日本成人网| 日韩精品久久久久久久软件91| 午夜精品一区二区三区在线视频 | 久久久久中文| 日本aa在线观看| 国产精品美女久久福利网站| 91嫩草在线播放| 欧美一区午夜精品| 日韩成人在线一区| 国产噜噜噜噜噜久久久久久久久| 在线成人黄色| 欧美日韩成人免费视频| 一区二区三区中文字幕| 成人好色电影| 久久久av网站| 日本一二区不卡| 伊人久久大香线蕉精品| 久久久国产一区二区三区四区小说 | 一区二区三区国产| 91高清在线观看视频| 另类图片亚洲另类| 欧美国产高清| 欧美日韩dvd| 一区二区三区91| av中文字幕在线观看第一页 | 18+视频在线观看| 欧美日韩电影在线观看| 欧美激情第10页| r级无码视频在线观看| 亚洲国产毛片aaaaa无费看 | 隔壁人妻偷人bd中字| 一区二区久久久久久| 欧美色图天堂| 亚洲第一色在线| h片在线观看视频免费| 369你懂的电影天堂| 一级毛片在线视频| ga∨成人网| 国产av不卡一区二区| 日韩欧美在线不卡| 精品一区免费| 绯色av一区| 欧美福利小视频| 91福利在线导航| 成人综合影院| 国产精品国产亚洲精品看不卡15| 日韩欧美你懂的| 一本久久精品一区二区| 日本欧美一区二区三区| 欧美午夜在线播放| 国产系列电影在线播放网址| 美女精品视频一区| 精品国产露脸精彩对白| 亚洲欧洲日产国产综合网| 美女视频一区在线观看| 久久亚洲捆绑美女| 欧美自拍丝袜亚洲| 欧美videos大乳护士334| 精品视频在线免费看| 欧美人伦禁忌dvd放荡欲情| 精彩视频一区二区| 欧美黄视频在线观看| 久草在线官网| 国产一区二区中文字幕免费看| 精品人伦一区二区色婷婷| 一个色在线综合| 日韩成人久久| 中文字幕在线影院| 黄色三级电影网站| 免费在线看黄色片| 国产精品99蜜臀久久不卡二区| 91精品免费在线| 国产精品三级av| 99久久99久久精品免费观看| 蜜桃av在线播放| 麻豆电影在线播放| 国产乱色在线观看| 污视频免费在线观看| 九色在线观看视频| av不卡高清| 中文字幕一区免费| 亚洲一区二区在线看| 久久综合色88| 日韩中文字幕网| 福利片在线看| 国产一二区视频| 中文字幕国内自拍| 超碰97在线看| 久久www视频| 国产日韩欧美久久| 国产精品v欧美精品v日韩精品| 91成人理论电影| 91视频88av| 97自拍视频| 日韩欧美国产综合在线| 伊人精品在线观看| 色天下一区二区三区| 欧美一区欧美二区| 欧美激情午夜| 国产精品999999| 国产不卡av在线| 日韩午夜激情av| jizz一区二区| 日韩精品国产欧美| 欧美日一区二区三区在线观看国产免| 在线中文免费视频| 中文字幕www| 国产日本欧美在线观看| 欧美一区二区三区喷汁尤物| 国产在线国偷精品免费看| 精品免费视频| 中文字幕在线中文字幕在线中三区| 日本加勒比高清在线| 欧美人xxxxx| 91麻豆国产精品| 欧美精品少妇一区二区三区| 国产乱色国产精品免费视频| 亚洲区小说区图片区qvod| 亚洲r级在线观看| 日韩中文有码在线视频| 欧美日本韩国国产| 欧美性一区二区三区| 亚洲精品日韩一| 欧美福利影院| 蜜臀久久精品| 国产毛片av在线| 在线观看入口黄最新永久免费国产| 粉嫩欧美一区二区三区| 欧美精品情趣视频| 国产精品678| 91在线视频九色| 国产精品成人一区二区| 一区二区免费在线视频| 亚洲色成人一区二区三区小说| 午夜精品短视频| 欧美狂欢多p性派对| 在线视频自拍| 成人av综合网| 成久久久网站| 99re亚洲国产精品| 欧美性开放视频| 精品国产亚洲一区二区三区在线观看| 久久久久久免费精品| 五月天激情图片| 深夜成人福利| 日韩成人午夜精品| 亚洲高清视频中文字幕| 精品日本高清在线播放| 亚洲男人天堂网| 久久99精品国产99久久| 欧美aaa大片| 国产精品一在线观看| www.日韩在线| 日韩av男人的天堂|