文档章节

Kubernetes集群中使用阿里云 SLB 实现四层金丝雀发布

 猫耳m
发布于 2018/05/10 16:05
字数 771
阅读 23
收藏 3

摘要: 上文介绍了如何使用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 金丝雀发布的流程。

原文链接

© 著作权归作者所有

共有 人打赏支持
粉丝 2
博文 288
码字总数 570099
作品 0
私信 提问
Kubernets集群中使用阿里云 SLB 实现四层金丝雀发布

前言 上文介绍了如何使用Ingress实现蓝绿发布。但是对于很多只提供tcp/udp的服务来说,七层的ingress不能很好的实现蓝绿发布的需求。这里我们就来介绍一下如何使用 SLB 来进行四层的金丝雀发...

xianlubird
2018/04/18
0
0
飞天技术汇 | 你用Kubernetes的样子很酷!

如何进行容器化及标准化? 交付中如何快速验证? 多种发布模式如何简单实现? Kubernetes的某些方面存在不合理性,为使用者带来一定的学习和使用成本。 阿里云如何真正打通DevOps流程 阿里云...

阿里云头条
2018/08/17
0
0
阿里云Serverless Kubernetes通过Ingress提供7层服务访问

简介 在阿里云Serverless Kubernetes集群中,我们可以通过LoadBalancer Service对外提供四层服务访问,同样我们也可以通过Ingress来对外提供七层服务访问,今天主要分享下如何在Serverless ...

chenqz
2018/07/03
0
0
如何在阿里云Kubernetes集群中部署多个Ingress Controller

场景说明 在前面如何配置阿里云容器服务K8S Ingress Controller使用私网SLB一文中描述了如何调整阿里云容器服务Kubernetes集群中默认的Nginx Ingress Controller配置使用私网SLB实例,文中提...

chenqz
2018/09/27
0
0
Kubernetes Ingress 高可靠部署最佳实践

简介 在Kubernetes集群中,Ingress是授权入站连接到达集群服务的规则集合,为您提供七层负载均衡能力,您可以通过 Ingress 配置提供外部可访问的 URL、负载均衡、SSL、基于名称的虚拟主机等。...

云澔
2018/04/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

[walminer bug分析]checkpoint wal记录的lsn与checkpoint记录的redo点的关系

问题背景 walminer工具的用户反馈来一个问题,不管添加了多少wal日志,想要的wal文件的解析结果总是有未解析出的部分。 分析问题 分析问题发现,checkpoint wal记录之后对某个数据page进行修...

movead
今天
4
0
OSChina 周二乱弹 —— 金 冈刂 犭良

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @蓝瞳 :分享骇物乐团的单曲《I'll be the one》: 《I'll be the one》- 骇物乐团 手机党少年们想听歌,请使劲儿戳(这里) @尾生 :工作使人...

小小编辑
今天
592
11
python中类方法和静态方法区别

面相对象程序设计中,类方法和静态方法是经常用到的两个术语。 逻辑上讲:类方法是只能由类名调用;静态方法可以由类名或对象名进行调用。 在C++中,静态方法与类方法逻辑上是等价的,只有一...

xiangyunyan
今天
14
0
Hibernate SQLite方言

以下代码有参考过github上国外某位大佬的,在发文的最新稳定版Hibernate上是可用的,有时间再仔细分析一下 import org.hibernate.dialect.Dialect;import org.hibernate.dialect.function.S...

CHONGCHEN
今天
4
0
CentOS 7 MariaDB搭建主从服务器

本文编写环境为CentOS7。确保关闭SELinux,关闭防火墙或者防打开指定端口。具体信息如下 #master[root@promote ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) [r...

白豆腐徐长卿
今天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部