1. 程式人生 > >Kubernetes叢集中使用阿里雲 SLB 實現四層金絲雀釋出

Kubernetes叢集中使用阿里雲 SLB 實現四層金絲雀釋出

摘要: 上文介紹瞭如何使用Ingress實現藍綠髮布。但是對於很多隻提供tcp/udp的服務來說,七層的ingress不能很好的實現藍綠髮布的需求。這裡我們就來介紹一下如何使用 SLB 來進行四層的金絲雀釋出。

前言

上文介紹瞭如何使用Ingress實現藍綠髮布。但是對於很多隻提供tcp/udp的服務來說,七層的ingress不能很好的實現藍綠髮布的需求。這裡我們就來介紹一下如何使用 SLB 來進行四層的金絲雀釋出。

準備

首先需要一個已經通過SLB對外提供服務的應用,這裡我們還是繼續使用nginx作為例子,不過這次是通過SLB對外暴露的服務。

可以直接在控制檯上,通過應用->部署 使用模板來部署應用。

建立完畢後,就可以在控制檯上看到對應的部署與服務。

現在我們可以通過本地curl 來看一下部署的效果

可以看到已經正常訪問。

新服務上線

下面我們模擬新的服務上線,現在建立新的應用。

值得注意的就是,新服務的pod的label,也是含有app:nginx標籤的。這個標籤就是為了對應的service找到該pod,這樣就可以將對應的流量匯入進來。

建立完畢後就可以在控制檯上看到新的應用。

下面我們在執行一下curl 看一下效果。

可以看到,十次請求裡面,有五次打到了老服務,五次打到了新服務。主要原因是,service對於流量請求是平均的負載均衡策略,而且新老服務均為一個pod,因此他們的流量百分比為1:1 。

調整流量權重

這裡的權重調整就沒有ingress的那麼直接。需要調整後端的pod容器數量來調整對應的權重。比如我們這裡希望新的服務權重更大一些,那麼想調整新的pod數量到3個。

可以直接在控制檯上更新已有的應用。注意: Kubernetes的Deployment資源預設的更新方式就是rollingUpdate,所以在更新過程中,會保證最小可服務的容器個數,這個個數也可以在模板裡面調整。

更新完畢後,新老服務個數比為3:1, 下面我們再來curl一下,看一下效果。

可以看到,10個請求裡面,有8個請求到新的服務,2個到老的服務。後面就可以通過動態的調整pod的數量來調整新老服務的權重,實現金絲雀釋出。

完成

釋出完畢後,將對應的舊應用刪除即可。刪除完畢後,看一下curl的效果

這樣就實現了四層 SLB 金絲雀釋出的流程。

原文連結

相關推薦

Kubernetes叢集使用阿里 SLB 實現金絲雀釋出

摘要: 上文介紹瞭如何使用Ingress實現藍綠髮布。但是對於很多隻提供tcp/udp的服務來說,七層的ingress不能很好的實現藍綠髮布的需求。這裡我們就來介紹一下如何使用 SLB 來進行四層的金絲雀釋出。前言上文介紹瞭如何使用Ingress實現藍綠髮布。但是對於很多隻提

Kubernetes實戰總結 - 阿里ECS自建K8S叢集

一、概述  詳情參考阿里雲說明:https://help.aliyun.com/document_detail/98886.html?spm=a2c4g.11186623.6.1078.323b1c9bpVKOry 我的專案資源分配(資料庫、中介軟體除外):   二、部署映象倉庫 1

阿裏slb實現多域名https

sni 虛擬 inf 頁面 ssl 但是 域名 後端 技術分享 剛開始接鍋,沒註意原來站點的https配置在slb上,在服務器上配置一頓操作猛如虎,細細檢查一遍,感覺良好,一測試發現不對勁,檢查發現原來https配置在阿裏雲slb上,阿裏雲還是做得不錯的 ,但是現在要實現

基於阿里SLB/ESS/EIP/ECS/VPC的同城高可用方案演練

天基於阿里雲SLB/ESS/EIP/ECS/VPC等產品進行了一次同城高可用方案演練: 基本步驟如下: 1. 在華東1建立VPC網路VPC1,在華東1可用區B和G各建立一個虛擬交換機vpc1_switch 和 vpc1_switch_2_g;   2. 建立兩個EIP,其中

Kubernetes叢集安裝Helm及證書認證

安裝Kubernetes 測試環境使用kubeadm安裝kubernetes v1.6.3版本, 安裝過程略過. 為Helm建立客戶端認證 客戶端認證是為了能夠使用helm命令列呼叫Helm的服務端Tiller. cd /etc/kubernetes/pki/ # 編譯認證檔案 ope

阿里SLB上http強制跳轉到https問題處理

背景:    最近一客戶有一個需求,需要將外網所有http訪問請求強制跳轉到https,公網出口使用阿里雲SLB,證書放在SLB上,SLB後端例項為ECS(webserver)web服務使用nginx, 網路拓撲圖如下:   問題:SLB上https:443埠監控檢測

Etcd在kubernetes叢集的作用

Etcd是Kubernetes叢集中的一個十分重要的元件,用於儲存叢集所有的網路配置和物件的狀態資訊。在後面具體的安裝環境中,我們安裝的etcd的版本是v3.1.5,整個kubernetes系統中一共有兩個服務需要用到etcd用來協同和儲存配置,分別是: 網路外掛flann

如何從外部訪問Kubernetes叢集的應用?\

前言 我們知道,kubernetes的Cluster Network屬於私有網路,只能在cluster Network內部才能訪問部署的應用,那如何才能將Kubernetes叢集中的應用暴露到外部網路,為外部使用者提供服務呢?本文探討了從外部網路訪問kubernetes

初試 Kubernetes 叢集使用 Contour 反向代理_Kubernetes中文社群

文章由作者:楊傳勝投稿; 在 Kubernetes 中執行大規模以 Web 為中心的工作負載,最關鍵的需求之一就是在 L7 層實現高效流暢的入口流量管理。自從第一批 Kubernetes Ingress Controller 開發完成以來,Envoy(由 Matt Klein 和 Lyft 團

kubernetes/k8s接合阿里LoadBalancer/負載均衡

在生產環境中kubernetes如果僅提供http或https服務,則可以使用nginx-ingress或者traefik之類的七層負載均衡軟體。 當然,也可以通過NodePort的方式暴露http或tcp服務。如果不想直接使用NodePort暴露出的那個埠號,而伺服器又是

Kubernetes叢集的網路_Kubernetes中文社群

本文從一個服務的不同訪問方式入手,分析了Kubernetes叢集中的網路組成,也給出了一個簡單可行的網路效能評估方案。 本文適合對虛擬網橋、iptables以及Kubernetes的相關概念有了解的讀者。 另外Service-Pod流量轉發時提到”iptables轉發”,嚴格說措辭不準確,因

正確的在Kubernetes叢集使用SDN技術方法_Kubernetes中文社群

SDN是Software-defined networking的縮寫。在許多介紹Kubernetes的文件,特別是安裝文件中, 當介紹到Kubernetes所需的容器網路時常常會提到這個縮寫,告知使用者需要使用某種SDN技術用以解決“每個Pod有獨立IP, Pod之間可以不經過NAT直接互訪”

Kubernetes叢集部署Heapster_Kubernetes中文社群

背景 公司的容器雲平臺需要新增應用的自動擴縮容的功能,以便能夠更加智慧化的對應用進行管理。 Kubernetes官方提供了HPA(Horizontal Pod Autoscaling)資源物件。要讓我們部署的應用做到自動的水平的(水平指的是增減Pod副本數量)進行擴縮容,我們只需要在Kuber

【上傳元件優化】el-upload元件結合上傳阿里OSS實現更優互動

1、效果展示 2、實現程式碼 在components目錄下,新建元件 myImgUpload.vue,程式碼如下: <template> <div> <el-upload :class="disabl

克拉克拉:基於阿里PAI實現渠道ROI投放預測系統

作者:阿里雲MVP 田亮 瞭解更多:克拉克拉(KilaKila):借力阿里雲快速構建短視訊推薦系統 業務背景克拉克拉(KilaKila)是國內專注二次元、主打年輕使用者的娛樂互動內容社群軟體。KilaKila推出互動語音直播、短視訊、對話小說等功能,滿足當下年輕使用者個性化、碎片化的文娛需求。APP產品

1月8日棲精選夜讀 | 克拉克拉:基於阿里PAI實現渠道ROI投放預測系統

基於阿里雲PAI實現渠道ROI投放預測系統,實現利用ROI指標衡量渠道質量,最終可決定當日哪些渠道可“投”,哪些渠道應該“停止”投放。 熱點熱議 克拉克拉:基於阿里雲PAI實現渠道ROI投放預測系統 作者:辰悠 發表在:阿里雲MVP 程式設計師總數3w+,阿里巴巴首度公開2018程式碼資料報告

Kubernetes 叢集執行 GitLab-Runner 來執行 GitLab-CI

目錄 1、GitLabCI & Runner 介紹 GitLab-CI 是一套 GitLab 提供給使用者使用的持續整合系統,GitLab 8.0 版本以後是預設整合並且預設啟用。GitLab-Runner 是配合 GitLab-CI

阿里slb和ucloud負載均衡ulb新增ssl證書將http服務https化的配置詳解

阿里雲和ucloud伺服器配置ssl證書將http服務https化的配置詳解專案背景: 蘋果App於2017年1月1日將啟用App Transport Security安全功能,即強制App通過HTTPS連線網路服務,各公司猜測按照蘋果的一貫作風可能會強制要求開發廠商實施h

使用 Kubeless 在 AWS 上的 Kubernetes 叢集執行 FaaS

藉助無伺服器計算技術,無需預置、擴充套件或管理任何伺服器即可構建和執行應用程式和服務。FaaS(函式即服務)是一種執行時服務,它通過在需要時啟動程式碼位(函式)實現無伺服器計算,讓開發人員無需管理基礎設施,並讓開發人員可以簡單地編寫業務邏輯程式碼。隨著 Kubernetes 的興起,多個開放

阿里伺服器實現 frp 內網穿透

前言 前幾天在一臺具有公網IP的 vultr 雲伺服器上實現了 frp 內網穿透(參考連結),可以從寢室 ssh 登入到教研室的伺服器,但是由於 vultr 的雲伺服器位於國外的節點,連線速度太慢了,導致連線 ssh 登入的體驗很差。今天又弄了一臺阿里雲的雲伺