负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。
拥有大量用户的企业,经常会面临如下的难题:在高并发的情况下,经常会导致服务器响应速度慢,严重的情况会直接导致服务器停止服务。此时,会导致企业的业务中断,影响客户的正常访问。
负载均衡应运而生
<u>需求:本次实验最低需求两台云服务器ECS</u>
上图创建了两台云服务器ECS实例和一个负载均衡实例,它们各自拥有各自的弹性IP地址
在浏览器两个页面分别输入两台云服务器ECS的弹性IP访问
比较两台ECS的访问结果,发现部署的网站内容相同,只是显示的后端服务器IP不同。
在阿里云登陆界面选择用RAM用户登录
使用实验提供的 子用户名称 和 子用户名密码 登陆阿里云管理控制台
<img src="https://upload-images.jianshu.io/upload_images/20425542-fa1a73a6dc138f09.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="4.登陆.png" style="zoom:50%" />
<img src="https://upload-images.jianshu.io/upload_images/20425542-4d17f4b440d7c9a5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="5.登陆.png" style="zoom:50%" />
登录后点击左侧 导航栏的 产品与服务 选择 负载均衡
<img src="https://upload-images.jianshu.io/upload_images/20425542-3bad79d4ddfed80d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="6.png" style="zoom: 67%" />
a. 在控制台点击左侧 实例管理 ,在右侧页面中的红框处看到负载均衡的 公网服务地址
该公网服务地址即为负载均衡实例的弹性IP地址
b.在浏览器上输入a的公网服务地址并访问
可见后端服务器IP尾数为131(ECS-2),但当我们刷新一遍后,如下图
后端服务器IP尾数变为130(第二台ECS-1)
当我们不停的刷新,会发现后端服务器IP 实在这两台ECS的 内外地址 之间轮流转换
因为我们在第二步配置的两台ECS的权重是相同的
下一步我们试着改变两台ECS的权重不相同看看效果如何
a.进入控制台--选择负载均衡--实例管理--点击进入实例--默认服务器组,进入如下图所示
b.勾选两台服务器--点击修改权重
c.设置权重 30,90,效果如下图
d.在浏览器中,刷新多次 负载均衡服务地址 的页面,统计页面的 后端服务器IP 。
可以发现:每 4 次刷新,将有 3 次访问 权重 为 90 的 ECS实例, 1 次访问权重为 30 的 ECS实例。
用户可以根据实际情况调整负载均衡器的请求分发,一般将 配置高的服务器设置的权重调高 , 配置较低的服务器设置的权重调低 。这样可以避免在高并发时,配置较低的服务器因为压力较大服务异常的发生。
a.实例管理界面---监听---修改监听配置
b.点击修改
c.开启会话保持、可选择修改会话保持超时时间
d.依次点击下一步,不修改
e. 再次在浏览器中输入 负载均衡 的 IP地址 , 多次刷新 ,发现在会话保持的超时时间内请求 只会分发到某一台 ECS 上(究竟是哪一台 ECS 没有规定),时间超出后,重新按照权重比例分发。
a.进入实例
b.点击停止
<img src="https://upload-images.jianshu.io/upload_images/20425542-e7d5f08534cd1938.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="28.png" style="zoom:67%" />
c.返回,显示如下图所示,ECS-2已关闭
d.在监听页面和实例管理页面,健康状态显示异常
e. 再次刷新浏览器中 负载均衡 的 IP地址 ,此时,请求发送到 健康检查状态 为 正常 的ECS-1上。
环境:
阿里云坑爹的文档,害我搞了3天才搞定
https://github.com/kubernetes/cloud-provider-alibaba-cloud/blob/master/docs/getting-started.md
添加 --cloud-provider=external --provider-id=region_id.instance_id替换为上面获取到的id(provider-id是阿里云控制器用来识别ecs,添加路由表,添加负载均衡监听和虚拟服务器组)
不需要--hostname-override,会导致kubeadm join无法正常结束
(未验证)如果是已经加入集群的node,只修改kubectl并重启没用,估计可以直接修改node的spec,添加 providerID: cn-hongkong.i-xxxx
获取阿里云账户access_key,需要负载均衡和专用网络VPC路由表权限
https://usercenter.console.aliyun.com/#/manage/ak
官方资源文档: https://github.com/kubernetes/cloud-provider-alibaba-cloud/blob/master/docs/examples/cloud-controller-manager.yml
需要修改下面3项
云控制器镜像版本目前是:cloud-controller-manager-amd64:v1.9.3.10-gfb99107-aliyun
有几个问题
注解文档: https://help.aliyun.com/document_detail/86531.html#title-6ou-i9x-2lr
注意!!!老版注解前缀为alicloud,很多网上的其他文档用的是新版前缀alibaba-cloud(坑爹)
将云控制器配置文件调整为ConfigMap挂载方式(推荐)
也可以按照官方文档创建etc/kubernetes/cloud-controller-manager.conf,改为下面data的内容
修改${ca_data}替换为下面的证书内容
修改${k8s_master_url} 为集群地址
安装
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)