首页 > 系统相关 >聊聊如何利用ingress-nginx实现应用层容灾

聊聊如何利用ingress-nginx实现应用层容灾

时间:2024-08-20 09:26:42浏览次数:6  
标签:ingress lybgeek nginx 容灾 pod backup

前言

容灾是一种主动的风险管理策略,旨在通过构建和维护异地的冗余系统,确保在面临灾难性事件时,关键业务能够持续运作,数据能够得到保护,从而最大限度地减少对组织运营的影响和潜在经济损失。因此容灾的重要性不言而喻,今天的话题主要是聊下如何利用ingress-nginx实现应用层容灾

应用层容灾前提

1、冗余多套应用
2、应用无状态
3、同种应用最好能分区域部署

如何利用ingress-nginx实现

1、利用ingress-nginx的灰度发布能力

该方案的实现可以参考我之前写的文章聊聊部署在不同K8S集群上的服务如何利用nginx-ingress进行灰度发布

不过该方案有个缺点是手动挡,出现故障时,需要手动切换

2、利用default-backend

上述官方说明的核心表述如下

注解 说明
nginx.ingress.kubernetes.io/default-backend 容灾服务。当Ingress定义的服务没有可用节点时,请求会自动转发该容灾服务。
nginx.ingress.kubernetes.io/custom-http-errors 该注解和default-backend一起工作。当后端服务返回指定HTTP响应码,原始请求会被再次转发至容灾服务。注意:转发至容灾服务时,请求的Path会被重写为/,该行为与ingress-nginx保持一致

示例:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/default-backend: lybgeek-backup
  name: lybgeek-ingress
  namespace: lybgeek
spec:
  rules:
  - host: lybgeek.com
    http:
      paths:
      - backend:
          service:
            name: lybgeek-master
            port:
              number: 8001
        path: /
        pathType: Prefix

注: lybgeek-backup需要和lybgeek-master处于同个命名空间下。其次上文说了同个级别的应用应该是分区域部署的,因此 lybgeek-backup背后的pod应该是来自其他集群。那要如何实现呢

这边提供两种思路,一种部署nginx-pod应用,该nginx-pod和lybgeek-master归属同个命名空间,通过该nginx-pod的nginx.conf配置要转发其他集群pod,最后该nginx-pod通过label和lybgeek-backup绑定一起。另外一种是使用endpoint。通过创建endpoint,同时需要创建同名service并且selector为空,可以用来引用集群外的ip,当然也可以引用集群内的ip

创建endpoint示例配置

apiVersion: v1
kind: Endpoints
metadata:
  name:  lybgeek-backup
  namespace: lybgeek
subsets:
- addresses:
  - ip: 192.168.1.2
  - ip: 192.168.1.3
  ports:
  - port: 80
  
---

apiVersion: v1
kind: Service
metadata:
  name: lybgeek-backup
  namespace: lybgeek-backup
spec:
  type: ClusterIP
  ports:
  - port: 80
  

总结

利用以上2种方式,就可以实现一个简易版的应用层容灾,实际上的容灾远比上述的复杂,因为可能还涉及到数据备份同步等,不过利用k8s确实能减轻我们实现层面上的一些负担

标签:ingress,lybgeek,nginx,容灾,pod,backup
From: https://www.cnblogs.com/linyb-geek/p/18153505

相关文章

  • ansible自动化之playbook剧本【nginx安装为例】
    一、简介roles则是ansible中,playbooks的目录组织结构。将代码或者文件进行模块化,成为roles的文件目录组织结构,易管理,易理解,代码可重用,层次清晰。二、准备目录结构创建所需目录:mkdir-proles/nginx/{files,handlers,tasks,templates,vars}创建所需文件:touchroles/......
  • nginx平滑升级
    一、概要nginx升级的原因有两种:1、nginx版本升级需要2、nginx新添新的模块二、nginx升级原理多进程模式:nginx分为主进程(master)和工作进程(work),主进程就是nginx本身,工作进程是看你电脑分配了多少核cpu,但是展示工作进程数还是nginx.conf配置文件种定义。主进程支持的信号TER......
  • nginx基础面试题
    1、破解密码:1、首先重启虚拟机,启动的时候马上按e键进入安全模式2、在有Linux那行的最后面加上rd.break3、ctrl+x将文件4、以读写的方式重新挂载:mount-oremount,rw/sysroot5、进入路径:chroot/sysroot6、改写密码:passwd6、打安全标签:touch/.autorelabel7、退......
  • 二进制下载部署Nginx
    一、通过Nginx官网并采取二进制方式部署Nginx官网二、具体步骤[[email protected]]#ll-dnginx.repo-rw-r--r--.1rootroot398Aug1722:01nginx.repo[[email protected]]#pwd/etc/yum.repos.d接下来可以直接使用yum-yinstallnginx则是直......
  • 国产操作系统 离线部署MYSQL、NGINX、redis、JDK1.8
    目录1.1、龙蜥操作系统8.4【AnolisOS8.4GA】1.2、安装关键步骤说明2.1、安装必要的系统组件2.2、配置JDK2.3、安装redis2.4、安装nginx2.5、安装mysql3.1、启用防火墙3.2、开放业务端口3.3、修改SSH端口号为100223.4、配置特定端口指定IP访问4.1、网络设置4.2......
  • WindowsServer系统下nginx代理问题
    部署vue打包后的dist文件夹后,重启nginx发现没生效,操作如下:1.停止redis,删除浏览器缓存并用无痕模式访问发现依然不生效,试着各种办法重新导入数据库数据也不行,nginx.exe-sstop依然能访问2.搜索发现可能是WindowsServer系统的问题,于是执行命令nginx-squit退出nginx......
  • 部署Nginx负载均衡+动静分离的群集
    目录一、Nginx应用二、正向代理与反向代理1.1正向代理1.2反向代理三、负载均衡1.轮询(RoundRobin)2.最小连接数3.IP  hash:4.加权轮询5.最少事件算法6.一致性hash一、Nginx应用Nginx是一款非常优秀的HTTP服务器软件支持高达50000个并发连接数的响应拥有强......
  • NGINX 封禁 IP(IP 段)访问方法:修改配置文件或 .htaccess 文件
    方法一:修改Nginx配置文件nginx.confNginx配置访问IP可以修改 nginx.conf 文件,只需要在 server 中添加 allow 和 deny 的IP即可,如下:server{listen80;server_namelocalhost;allowall;deny123.123.123.123;error_page500......
  • Linux安装nginx1.26.2
    第一步:去官网下载指定的版本http://nginx.org/en/download.html第二步:解压压缩包:tar-zxvf  ......tar.gz第三步:编译nginx ./configure如果出现报错:./configure:error:theHTTPgzipmodulerequiresthezliblibrary.Youcaneitherdisablethemodulebyusing--......
  • nginx 源码安装
         aptinstallbuild-essentiallibpcre3libpcre3-devzlib1gzlib1g-devlibssl-devlibgd-devlibxml2libxml2-devuuid-devlibxslt-dev-yapt-getinstalllibgeoip-dev    ASAN_OPTIONS=symbolize=1./auto/configure\--with-pcre\--with......