日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Kubernetes Ingress 高可靠部署最佳实践

發布時間:2024/8/23 编程问答 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kubernetes Ingress 高可靠部署最佳实践 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘要: 在Kubernetes集群中,Ingress作為集群流量接入層,Ingress的高可靠性顯得尤為重要,今天我們主要探討如何部署一套高性能高可靠的Ingress接入層。

簡介

在Kubernetes集群中,Ingress是授權入站連接到達集群服務的規則集合,為您提供七層負載均衡能力,您可以通過 Ingress 配置提供外部可訪問的 URL、負載均衡、SSL、基于名稱的虛擬主機等。作為集群流量接入層,Ingress的高可靠性顯得尤為重要,今天我們主要探討如何部署一套高性能高可靠的Ingress接入層。

高可靠部署架構

高可靠性首先要解決的就是單點故障問題,一般常用的是采用多副本部署的方式,我們在Kubernetes集群中部署高可靠Ingress接入層同樣采用多節點部署架構,同時由于Ingress作為集群流量接入口,建議采用獨占Ingress節點的方式,以避免業務應用與Ingress服務發生資源爭搶。

如上述部署架構圖,由多個獨占Ingress實例組成統一接入層承載集群入口流量,同時可依據后端業務流量水平擴縮容Ingress節點。當然如果您前期的集群規模并不大,也可以采用將Ingress服務與業務應用混部的方式,但建議進行資源限制和隔離。

在阿里云容器服務集群中部署高可靠Ingress接入層

部署說明

  • Ingress SLB:Ingress接入層前端SLB實例
  • Ingress Node:部署Ingress Pod的集群節點
  • Ingress Pod:Ingress服務實例

這三者之間依據標簽node-role.kubernetes.io/ingress=true進行關聯:

1.Ingress SLB后端只會掛載打標了node-role.kubernetes.io/ingress=true的集群Node;
2.Ingress Pod只會被部署到打標了node-role.kubernetes.io/ingress=true的集群Node;

開始部署

1、創建 Kubernetes 集群

在創建集群之前,我們需要依據自身具體業務場景來適當規劃集群的規模以及集群內各節點角色,比如業務節點數、Ingress節點數等,注意集群默認會初始化3臺Master節點來部署集群管控服務。
我們通過阿里云容器服務控制臺創建一個Kubernetes集群,這里以創建3臺Worker節點集群為例。

2、打標 Ingress Node

由于測試集群規模較小,我們暫采用混部的方式:即3臺Worker節點既作為業務節點又作為Ingress節點。我們給3臺Worker節點同時打標node-role.kubernetes.io/ingress=true,注意不建議將Ingress Pod部署在集群Master節點上,因為Master節點承載著集群的所有管控服務,以避免集群接入流量過高時對管控服務造成影響。

~ kubectl label no cn-hangzhou.i-bp1ecwpuisra0y0bizdb node-role.kubernetes.io/ingress=true node "cn-hangzhou.i-bp1ecwpuisra0y0bizdb" labeled~ kubectl label no cn-hangzhou.i-bp1ecwpuisra0y0bizdc node-role.kubernetes.io/ingress=true node "cn-hangzhou.i-bp1ecwpuisra0y0bizdc" labeled~ kubectl label no cn-hangzhou.i-bp1ecwpuisra0y0bizdd node-role.kubernetes.io/ingress=true node "cn-hangzhou.i-bp1ecwpuisra0y0bizdd" labeled~ kubectl get no NAME STATUS ROLES AGE VERSION cn-hangzhou.i-bp11psgsvkxklfvb8vvj Ready master 1h v1.9.3 cn-hangzhou.i-bp183t1a82uun0s12ddr Ready master 1h v1.9.3 cn-hangzhou.i-bp1ecwpuisra0y0bizdb Ready ingress 56m v1.9.3 cn-hangzhou.i-bp1ecwpuisra0y0bizdc Ready ingress 56m v1.9.3 cn-hangzhou.i-bp1ecwpuisra0y0bizdd Ready ingress 57m v1.9.3 cn-hangzhou.i-bp1gb2498ykvy23k0jsy Ready master 1h v1.9.3

3、創建 Ingress 服務

集群初始化時默認部署了一個Ingress Controller,具體部署說明請參考。這里我們通過DaemonSet方式將其重新部署到目標Ingress Node上,當然您也可以采用Deployment配合親和性方式來部署。

~ kubectl -n kube-system delete deploy nginx-ingress-controller deployment "nginx-ingress-controller" deleted~ kubectl create -f https://acs-k8s-ingress.oss-cn-hangzhou.aliyuncs.com/nginx-ingress-controller-ds.yml daemonset "nginx-ingress-controller" created~ kubectl -n kube-system get ds | grep nginx-ingress-controller nginx-ingress-controller 3 3 3 3 3 node-role.kubernetes.io/ingress=true 42s~ kubectl -n kube-system get pod -o wide | grep nginx-ingress-controller nginx-ingress-controller-57j4l 1/1 Running 0 1m 172.16.3.2 cn-hangzhou.i-bp1ecwpuisra0y0bizdd nginx-ingress-controller-d7cxb 1/1 Running 0 1m 172.16.5.7 cn-hangzhou.i-bp1ecwpuisra0y0bizdc nginx-ingress-controller-m9w75 1/1 Running 0 1m 172.16.4.2 cn-hangzhou.i-bp1ecwpuisra0y0bizdb

4、更新 Ingress SLB 服務

集群初始化時默認部署了一個Ingress LoadBalancer Service,具體部署說明請參考,這里需要更新下Ingress LoadBalancer Service,以自動識別掛載打標的Ingress Node。

~ kubectl apply -f https://acs-k8s-ingress.oss-cn-hangzhou.aliyuncs.com/nginx-ingress-slb-service.yml service "nginx-ingress-lb" configured

5、此時具有3個Ingress實例的高可靠接入層部署完成。

快速擴容

隨著您的業務流量不斷增長,集群規模不斷擴大,您只需要簡單地通過打標的方式來快速擴容Ingress接入層。

全方位監控

集群Ingress接入層的監控是必不可少的,您可以通過阿里云容器服務監控以及阿里云云監控對Ingress Pod和Ingress Node進行全方位監控。

原文鏈接

干貨好文,請關注掃描以下二維碼:

總結

以上是生活随笔為你收集整理的Kubernetes Ingress 高可靠部署最佳实践的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。