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. 手把手教你使用ModelArts的自动学习识别毒蘑菇分类

    摘要:本文介绍了ModelArts如何通过自动学习进行毒蘑菇的识别. 想当年,白雪公主吃了毒蘑菇,换来了白马王子的一吻.如果白雪公主没有吃毒蘑菇,还会遇到白马王子吗?张小白觉得不见得--说不定她会遇到 ...

  2. 华为云PB级数据库GaussDB(for Redis)介绍第四期:高斯 Geo的介绍与应用

    摘要:高斯Redis的大规模地理位置信息存储的解决方案. 1.背景 LBS(Location Based Service,基于位置的服务)有非常广泛的应用场景,最常见的应用就是POI(Point of ...

  3. 火山引擎 DataTester 智能发布平台:智能化 A/B 实验,助力产品快速迭代

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 在互联网竞争炙热的红海时代,精益开发高效迭代越来越成为成为产品竞争的利器.产品迭代过程中,如何保障高效的功能迭代安 ...

  4. 还在用 Excel 和 SQL?火山引擎 VeDI 这款产品帮你更快处理数据

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 对大多数职场打工人来说,看数据.用数据一直是项有"门槛"的工作. 特别是在企业业务快速发展的背景下,为 ...

  5. Axure 获取验证码

    拖两个矩形框,一个用来做文档输入,一个做获取验证码的按钮 设置全局变量OnLoadVariable的初如值为60 1.用例中的条件:当OnLoadVariable的值不等于0 2.用例中的步骤 禁用& ...

  6. Pycharts在测试工作中的应用

    Pycharts在测试工作中的应用 pycharts是一个基于Python的数据可视化库,支持多种折线图.柱状图.饼图等.Pycharts底层依赖于Echarts pip install pyecha ...

  7. C# RSA 非对称加密

    代码: RSAHelper.cs(RSA加密工具类): using System; using System.Security.Cryptography; using System.Text; nam ...

  8. 骨牌摆放问题 POJ 2411(状态压缩DP)

    题目: 给你\(n*m(1<=n,m<=11)\)的方格矩阵,要求用1*2的多米诺骨牌去填充,问有多少种填充方法. 比如下图是对于如下2x6的方格矩阵,可能的填充方案之一. 该如何使用动态 ...

  9. 无需修改代码,用 fcapp.run 运行你的 REST 应用

    作者 | 阿里云 Serverless 技术研发 落语 背景 阿里云函数计算产品在较早的时候支持了HTTP触发器能力,支持用户使用 HTTP 协议进行函数调用.函数计算后端通过一个共享的 APISer ...

  10. SpringBoot发布https服务

    一.生成SSL证书 1.进入本地jdk的路径 cd D:\Program\jdk1.8.0_77\jre\lib\security cmd窗口生成证书HSoftTiger.keystore到D盘 ke ...