K8S多节点情况下使用nginx负载ingress或者是istio域名服务的处理


背景

  • 公司内部有一个自建的K8S测试集群.同事这边使用istio或者是ingress发布了一个域名服务.
  • 公司这边的DNS管理比较严格,比较难以添加DNS记录,所以处理起来需要手动处理.
  • 为了进行性能压测,希望域名能够平均的负载到K8S的3个worker节点中.
  • 并且能够尽可能的减少客户端hosts文件的修改.

处理方式

  • 最简单的处理是在nginx所在服务器,将istio后者是ingress 对应的worker节点添加到hosts中
vi /etc/hosts
添加 ip 虚拟域名
  • 但是做了一个实现,发现/etc/hosts 并不能很好的实现 域名IP地址的轮询.
  • 感觉还是需要用bind 添加一个域名关系来处理.
  • 为了简单先用 hosts .至少 hsots 能够实现一定意义的高可用

原理说明

  • 备注: 此处是根据自己的理解
ingress 在使用时 本质是利用 nginx的 virtual hosts的路由分发机制.
根据http 过来的是 server_name 进行区分.
如果是 serverA 那么走A服务, 如果是serverB 那么走B服务
其实就跟VPS实现同一个ip地址可以挂载多个域名是完全一样的技术路线.

nginx的处理

  • 注意安装的时候需要 添加 with-stream 的方式来处理
  • 对不修改 hosts 文件
vi /etc/hosts
添加
10.24.19.204 b2b.xxxx.com
10.24.19.205 b2b.xxxx.com
10.24.19.207 b2b.xxxx.com

nginx的模板为

worker_processes auto;
events {
multi_accept on;
use epoll;
worker_connections 1024;
}
stream {
upstream node_ingress {
least_conn;
server b2b.xxxx.com:8080 ;
}
server {
listen 0.0.0.0:80;
proxy_pass node_ingress;
proxy_timeout 10m;
proxy_connect_timeout 1s;
}
}

修改客户端机器的hosts

  • 注意这里不能与k8s节点一致
c:\windows\system32\drivers\etc\hosts
添加内容
10.24.19.208 b2b.xxxx.com
  • 浏览器打开即可

备注说明

  • 注意理论上可以使用在正向代理来实现
  • 注意可以使用bind9 搭建一个自建的dns实现路由的负载均衡.
  • 注意nginx其实需要注意的地方挺多的. 需要逐步学习

K8S多节点情况下使用nginx负载ingress或者是istio域名服务的处理的更多相关文章

  1. Mac下配置Nginx负载均衡

    1.首先在Mac下安装Nginx(可参考我的另一篇随笔http://www.cnblogs.com/malcolmfeng/p/6896703.html). 2.安装Tomcat,下载后,解压,bin ...

  2. windows下搭建nginx负载均衡

    学习笔记,第一次记录避免忘记 首先介绍一下本地环境是windows2008 R2-64位. 1.  到nginx官网上下载最新稳定版的安装包,http://nginx.org/en/download. ...

  3. linux下配置nginx负载均衡例子

    准备2台虚拟机: 分别在两个虚拟机上安装tomcat,并在服务器A安装nginx,其中nginx端口设置为了 70. 服务器A的tomcat安装目录: 服务器B的tomcat安装目录: 服务器A的ng ...

  4. windows 下设置nginx负载均衡

    #user nobody; worker_processes ; #error_log logs/error.log; #error_log logs/error.log notice; #error ...

  5. 不停服务情况下升级nginx

    第三方支付平台因安全问题对nginx做了升级操作,为了不影响业务,整个操作过程都不能停服务,因此对升级方法做出了要求.以下为我整理的生产环境实际操作方法,已在第三方支付平台上成功应用,希望对即将或者可 ...

  6. 在没有任何投票节点情况下将从节点转换为Primary节点脚本

    cfg={ "_id": "rs01", "version": 2, "protocolVersion": Number ...

  7. Nginx负载均衡中后端节点服务器健康检查的操作梳理

    正常情况下,nginx做反向代理,如果后端节点服务器宕掉的话,nginx默认是不能把这台realserver踢出upstream负载集群的,所以还会有请求转发到后端的这台realserver上面,这样 ...

  8. Nginx负载均衡深入浅出

    nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态.静态页面的分离,可以按照轮询.ip哈希.URL哈希.权重等多种方式对后端服务器做负载均 ...

  9. Nginx负载均衡介绍

    Nginx真心牛逼 nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态.静态页面的分离,可以按照轮询.ip哈希.URL哈希.权重等多种方式 ...

  10. nginx 负载均衡相关知识

    Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev ...

随机推荐

  1. AUC/ROC:面试中80%都会问的知识点

    摘要:ROC/AUC作为机器学习的评估指标非常重要,也是面试中经常出现的问题(80%都会问到) 本文分享自华为云社区<技术干货 | 解决面试中80%问题,基于MindSpore实现AUC/ROC ...

  2. 解析鸿蒙内核消息队列QueueMail接口的哼哈二将

    摘要:本文带领大家一起剖析了鸿蒙轻内核的队列模块的QueueMail两个接口的源代码. 本文分享自华为云社区<鸿蒙轻内核M核源码分析系列十三(续) 消息队列QueueMail接口>,作者: ...

  3. Go 1.18 新特性:多模块工作区模式

    摘要:在 Go 1.18 推出多模块工作区模式--Multi-Module Workspaces,用以支持模块的多个工作空间,我们来看看到底有什么特别. 本文分享自华为云社区<一起看看 Go 1 ...

  4. Solon 开发进阶

    Solon 开发进阶 一.插件扩展机制 二.体外扩展机制 三.常用配置说明 四.启动参数说明 五.全局异常订阅 本系列在内核知识的基础上做进一步延申.主要涉及: 插件扩展体系 体外扩展体系 常用配置 ...

  5. PlayWright安装及使用

    PlayWright是由业界大佬微软(Microsoft)开源的端到端 Web 测试和自动化库,可谓是大厂背书,功能满格,虽然作为无头浏览器,该框架的主要作用是测试 Web 应用,但事实上,无头浏览器 ...

  6. CPU推理|使用英特尔 Sapphire Rapids 加速 PyTorch Transformers

    在 最近的一篇文章 中,我们介绍了代号为 Sapphire Rapids 的第四代英特尔至强 CPU 及其新的先进矩阵扩展 (AMX) 指令集.通过使用 Amazon EC2 上的 Sapphire ...

  7. 深入了解浮点运算——CPU 和 GPU 算力是如何计算的

    随着国家大力发展数字经济,算力的提升和普惠变得越来越重要.在数字化时代,算力已成为推动科技发展和创新的关键要素.它不仅仅是衡量计算机处理速度的标准,还涉及计算机系统或设备执行计算任务的能力.数据处理能 ...

  8. 2019年第十届蓝桥杯国赛C++C组

    蓝桥杯历年国赛真题汇总:Here 统一声明 如果不写默认带有常用头文件 如果不表明主函数默认表示在 void solve(){} 默认使用 using namespace std; ios::sync ...

  9. 2023陕西省大学生信息安全竞赛web writeup

    前言 早写好了,忘发了,题目质量还行,够我坐大牢 ezpop 简单的反序列化,exp如下 <?php class night { public $night; } class day { pub ...

  10. package.json文件中版本号

    "5.0.3"表示安装指定的5.0.3版本,"-5.0.3"表示安装5.0.X中最新的版本,"^5.0.3"表示安装5.X.X中最新的版本.