k8s中的ingress使用上层负载均衡进行设置访问
注意:这种情况下需要有个前提条件,也就是ingress-nginx-controller安装后的service是NodePort或者hostNetwork模式,而不能是ClusterIP,因为负载均衡器添加后端主机的时候需要监听后端主机的端口
情况介绍
1.k8s集群有8个节点,3个节点是master,分别是master1,master2,master3. 5个worker节点,分别是worker1,worke2,worke3,worker4,worker5
2.弹性公网IP绑定到worke3节点上,域名解析到这个弹性公网IP上
3.nginx-ingress-congtoller是使用kuboard界面本身提供安装的,使用nodeport形式,监控主机的80和443端口,安装完毕后会有这个提示
4.人为调整nginx-ingress-congtoller的pod只部署在worker3节点上
5.查看worker3主机上的80和443端口开放情况
6.ingress规则添加情况
问题
上述虽然能访问使用,但是主要访问入口承载是在worke3节点上,若是worke3节点有问题,则整个集群都无法访问使用。
解决办法也比较繁琐;
1.弹性公网IP绑定worker2主机上
2.人为调整nginx-ingress-congtoller的pod部署在worker2节点上
因此想着使用云厂商提供的负载均衡器解决上述问题,就算其中某一个主机挂了,也不影响正常访问使用
改造情况
1.云厂商申请一个私网的负载均衡器,绑定上述的弹性公网IP
2.调整nginx-ingress-congtoller的pod分布于全部节点或部分节点 (具体参考文章:https://www.cnblogs.com/sanduzxcvbnm/p/15936003.html)
3.把第二步中有nginx-ingress-congtoller pod的节点添加到负载均衡器的后端主机中
4.云厂商负载均衡设置情况 (需要关闭健康检查)
负载均衡监听80端口,后端用的协议是http,添加后端主机后,转发的主机端口不能是80,根据第三步的情况,填写30466端口,若是转发后端主机的443端口,应该填写32492端口
开启健康检查会报异常,导致访问网址404
5.ingress规则添加情况
6.worker3主机上的其他服务单独设置监听主机访问
7.关于https访问
7.1 ingress规则中不用再加载https证书的了,也不用添加访问http强制跳转https的注解了,这个也在负载均衡上进行配置
7.2 负载均衡器监听443端口,后端主机转发端口也是走http协议,因此填写用的也是用30466端口 (根据图示)
若是负载均衡器监听443端口,后端转发主机上填写也是转发的443端口(实际是32492端口),访问则会报错如下:
7.3 负载均衡器监听80端口重定向到 监听443端口上
k8s中的ingress使用上层负载均衡进行设置访问的更多相关文章
- [转帖]在 k8s 中通过 Ingress 配置域名访问
在 k8s 中通过 Ingress 配置域名访问 https://juejin.im/post/5db8da4b6fb9a0204520b310 在上篇文章中我们已经使用 k8s 部署了第一个应用,此 ...
- k8s 中的 ingress 使用细节
k8s中的ingress 什么是ingress Ingress 如何使用 ingress 使用细节 参考 k8s中的ingress 什么是ingress k8s 中使用 Service 为相同业务的 ...
- 从零开始入门 | Kubernetes 中的服务发现与负载均衡
作者 | 阿里巴巴技术专家 溪恒 一.需求来源 为什么需要服务发现 在 K8s 集群里面会通过 pod 去部署应用,与传统的应用部署不同,传统应用部署在给定的机器上面去部署,我们知道怎么去调用别的机 ...
- Kubernetes 中的服务发现与负载均衡
原文:https://www.infoq.cn/article/rEzx9X598W60svbli9aK (本文转载自阿里巴巴云原生微信公众号(ID:Alicloudnative)) 一.需求来源 为 ...
- Dubbo中集群Cluster,负载均衡,容错,路由解析
Dubbo中的Cluster可以将多个服务提供方伪装成一个提供方,具体也就是将Directory中的多个Invoker伪装成一个Invoker,在伪装的过程中包含了容错的处理,负载均衡的处理和路由的处 ...
- .net core中的分布式缓存和负载均衡
通过减少生成内容所需的工作,缓存可以显著提高应用的性能和可伸缩性,缓存对不经常更改的数据效果最佳,缓存生成的数据副本的返回速度可以比从原始源返回更快.ASP.NET Core 支持多种不同的缓存,最简 ...
- Linux中Apache+Tomcat+JK实现负载均衡和群集的完整过程
人原创,一个字一个字地码的,尊重版权,转载请注明出处! http://blog.csdn.net/chaijunkun/article/details/6987443 最近在开发的项目需要承受很高的并 ...
- spring cloud中通过配置文件自定义Ribbon负载均衡策略
一.Ribbon中的负载均衡策略 1.Ribbon中支持的负载均衡策略 AvailabilityFilteringRule:过滤掉那些因为一直连接失败的被标记为circuit tripped的后端se ...
- Nginx(http协议代理 搭建虚拟主机 服务的反向代理 在反向代理中配置集群的负载均衡)
Nginx 简介 Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务.Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点(俄文:Рамблер)开 ...
随机推荐
- JavaWeb连接MySQL数据库
JavaWeb连接MySQL数据库 JavaWeb连接MySQL数据库的方式有很多,首先我们讲解JDBC的配置方法 一.JDBC的配置方法 1.什么是JDBC 什么是JDBC嘞?JDBC代表Java数 ...
- C语言-直接排序
#include<stdio.h> #define MAXSIZE 100 typedef int KeyType; typedef struct { KeyType key; }Reco ...
- idea 错误: 找不到或无法加载主类 xx.xxx.Application
原因module 里面缺少iml文件 生成iml文件方法二:(建议):刷新一下Maven Project就会自动生成.iml文件.点击下图红框标记的按钮即可 完成后就会自动生成.iml文件. 方法二: ...
- java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException : DerInputStream.getLength(): lengthTag=111, too big.
RSA用私钥签名的时候发现报错,删除以下内容即可 -----BEGIN PRIVATE KEY----- -----END PRIVATE KEY----- import org.apache.com ...
- HackerRank第一趴--Basic Select
CITY表: Field Type ID number NAME VARCHAR2(17) COUNTRYCODE VARCHAR2(3) DISTRICT VARCHAR2(20) POPULATI ...
- C++类中的常成员和静态成员
常变量.常对象.常引用.指向常对象或常变量的指针等在定义时都使用了const关键字,这是C++语言引入的一种数据保护机制,称为const数据保护机制.例如通过const关键字主动地将被调函数形参进行限 ...
- 抢先体验! 在浏览器里写 Flutter 是一种什么体验?
Invertase 是一间位于英国的开源软件制作公司.主要构建关于开发者工具.SDK 等应用程序,早在 Flutter 2.2 的时候,Invertase 团队就开始帮助构建和贡献 Firebase ...
- Solution -「ABC 217」题解
D - Cutting Woods 记录每一个切割点,每次求前驱后驱就好了,注意简单判断一下开闭区间. 考场上采用的 FHQ_Treap 无脑莽. #include <cstdio> #i ...
- gdb调试器在windows下的相关内容
1.gdb调试器在visual studio或dev c++中也有类似的调试图形化可视界面,但是gdb不同的是它是由命令行组成,他的界面对于习惯图形化可视界面的用户来说一时间会不知所措 2.通过gcc ...
- python自带gui插件tkinter使用小结
1.tkinter简介 Tkinter(即 tk interface,简称"Tk")本质上是对 Tcl/Tk 软件包的 Python 接口封装,它是 Python 官方推荐的 GU ...