Nginx反向代理k8s中的Ingress

背景
k8s集群需要通过Ingress暴露访问服务,前面需要放置LB服务器进行负载
解决办法
使用Nginx做反向代理,代理Ingress的域名
nginx.conf示例:

events {                                        # 工作模式
    worker_connections  1024;                   # 最大连接数
}
http {                                          # 配置http服务器
    include       mime.types;                   # 定义mime的文件类型
    default_type  application/octet-stream;     # 默认文件类型
    sendfile        on;                         # 开启 sendfile 函数(zero copy 方式)输出文件
    keepalive_timeout  65;                      # 连接超时时间,单位秒

    upstream pictureserver {                    # 定义负载均衡设备的ip和状态
        server 192.168.137.30:80;               # 默认权重值为一
        server 192.168.137.31:80;
        #server 192.168.225.133:8082 weight=2;   # 值越高,负载的权重越高
        #server 192.168.225.133:8083 down;       # 当前server 暂时不参与负载
        #server 192.168.225.133:8084 backup;     # 当其他非backup状态的server 不能正常工作时,才请求该server,简称热备
    }
    server {                                    # 设定虚拟主机配置
        listen  80;                             # 监听的端口
        server_name  mynginx.pc.net;            # 监听的地址,多个域名用空格隔开
        location / {                            # 默认请求 ,后面 "/" 表示开启反向代理,也可以是正则表达式
           root     html;                       # 监听地址的默认网站根目录位置
           proxy_set_header Host $http_host;    # 重写请求头中的host字段
           proxy_set_header X-Forward-For $remote_addr;
                                                # 配置XFF,记录HTTP的请求端真实的IP

           proxy_pass   http://pictureserver;   # 代理转发
           index  index.html index.htm;         # 欢迎页面
        }
        error_page   500 502 503 504  /50x.html;# 定义错误提示页面     
        location = /50x.html {                  # 配置错误提示页面
            root   html;
        }
    }
}

在KubernetesIngress用于实现通过域名的方式访问Kubernetes内部应用。它可以理解为配置模板或配置文件,定义了请求转发的规则。而Ingress Controller是具体实现反向代理和负载均衡的程序。它通过解析Ingress定义的规则来实现转发。需要注意的是,Ingress Controller不是Kubernetes自带的组件,而是一个统称,用户可以选择不同的Ingress Controller来实现功能。目前,Kubernetes官方维护的Ingress Controller是nginx-ingress。 总结起来,Ingress是Kubernetes集群的请求入口,它对多个Service进行了再次抽象。通常来说,IngressIngress资源对象和Ingress Controller两部分组成。Ingress Controller有多种实现方式,其官方维护的是nginx-ingress。而Ingress本身的暴露方式也有多种选择,需要根据基础环境和业务类型选择适合的方式。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [K8Singress](https://blog.csdn.net/L2111533547/article/details/126248597)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [k8singress](https://blog.csdn.net/lkolkolkol/article/details/110232605)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值