当前位置: 首页 > news >正文

在Kubernetes环境中有关Nginx Ingress与API Gateway的连接问题

文章目录

  • 小结
  • 问题
  • 解决
  • 参考

小结

在Kubernetes环境中是通过Nginx Ingress来从外部访问Kubernetes内部的环境,并用API Gateway来分发请求,碰到了 502 Bad gateway.的问题,并尝试解决。

问题

从外部通过Nginx Ingress访问Kubernetes内部的环境API Gateway,返回错误: 502 Bad gateway. 这里API Gateway也起到了Load Balancer的作用。


[john@Node1 ~]$ curl -H 'Host:apigw.com' http://192.168.18.16:80/Test Application/process
<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.25.1</center>
</body>
</html>

查看Nginx运行的实例:

[john@Master ~]$ kubectl get pods -o wide -A | tail -n 2
nginx-ingress    nginx-ingress-c46vc                      1/1     Running   0          31d     10.244.3.163     Node1   <none>           <none>
nginx-ingress    nginx-ingress-hvqjg                      1/1     Running   0          31d     10.244.4.164     Node2   <none>           <none>

查看错误日志,

[john@Master ~]$ kubectl logs -f nginx-ingress-hvqjg -n nginx-ingress

可以看到类似以下错误:connect() failed (111: Connection refused) while connecting to upstream

查看Nginx的配置文件:

[john@Master ~]$ kubectl exec -it nginx-ingress-c46vc -n nginx-ingress -- /bin/bash
nginx@nginx-ingress-hvqjg:/$ cat /etc/nginx/nginx.conf
nginx@nginx-ingress-hvqjg:/$ cat /etc/nginx/conf.d/default-apigw-ingress.conf

解决

通常情况下需要去查找后台服务的问题,有可能是后台服务没有正常启动所导致的连接问题。

确认了后台服务没有问题后,那么需要去看Nginx Ingress的配置问题。
以下是正确Ngnix Ingress配置示例 (在Nginx Ingress的pod中):

nginx@nginx-ingress-hvqjg:/$ cat /etc/nginx/conf.d/default-apigw-ingress.conf
# configuration for default/apigw-ingressupstream default-apigw-ingress-apigw.com-apigw-service-80 {zone default-apigw-ingress-apigw.com-apigw-service-80 256k;random two least_conn;server 10.244.3.169:8090 max_fails=1 fail_timeout=10s max_conns=0;server 10.244.4.171:8090 max_fails=1 fail_timeout=10s max_conns=0;}
server {listen 80;server_tokens on;server_name apigw.com;set $resource_type "ingress";set $resource_name "apigw-ingress";set $resource_namespace "default";location / {set $service "apigw-service";proxy_http_version 1.1;proxy_connect_timeout 60s;proxy_read_timeout 60s;proxy_send_timeout 60s;client_max_body_size 1m;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Host $host;proxy_set_header X-Forwarded-Port $server_port;proxy_set_header X-Forwarded-Proto $scheme;proxy_buffering on;proxy_pass http://default-apigw-ingress-apigw.com-apigw-service-80/;}location /eureka {set $service "eureka-lb";proxy_http_version 1.1;proxy_connect_timeout 60s;proxy_read_timeout 60s;proxy_send_timeout 60s;client_max_body_size 1m;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Host $host;proxy_set_header X-Forwarded-Port $server_port;proxy_set_header X-Forwarded-Proto $scheme;proxy_buffering on;proxy_pass http://default-apigw-ingress-apigw.com-eureka-lb-80/;}}

参考

Stackoverflow: 502 Bad gateway when trying to connect to backend
Nginx Ingress Installation with Manifests
server fault: connect() failed (111: Connection refused) while connecting to upstream
stackoverflow: Why does attempting to connect to my ingress show connection refused?
CSDN: nginx报错:connect() failed (111: Connection refused) while connecting to upstream
CSDN: Nginx报502错误,日志connect() failed (111: Connection refused) while connecting to upstream的个人有效解决方案
Kubernetes Ingress

相关文章:

在Kubernetes环境中有关Nginx Ingress与API Gateway的连接问题

文章目录 小结问题解决参考 小结 在Kubernetes环境中是通过Nginx Ingress来从外部访问Kubernetes内部的环境&#xff0c;并用API Gateway来分发请求&#xff0c;碰到了 502 Bad gateway.的问题&#xff0c;并尝试解决。 问题 从外部通过Nginx Ingress访问Kubernetes内部的环…...

c语言练习44:深入理解strstr

深入理解strstr strstr作用展示&#xff1a; #include <stdio.h> #include <string.h> int main() {char str[] "This is a simple string";char* pch;pch strstr(str, "simple");/*strncpy(pch, "sample", 6);*/printf("%s…...

渗透测试漏洞原理之---【业务安全】

文章目录 1、业务安全概述1.1业务安全现状1.1.1、业务逻辑漏洞1.1.2、黑客攻击目标 2、业务安全测试2.1、业务安全测试流程2.1.1、测试准备2.1.2、业务调研2.1.3、业务建模2.1.4、业务流程梳理2.1.5、业务风险点识别2.1.6 开展测试2.1.7 撰写报告 3、业务安全经典场景3.1、业务…...

CentOS查看CPU、内存、网络流量和磁盘 I/O

安装 yum install -y sysstat sar -d 1 1 rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s rsec/s:…...

无人机航线规划

无人机航线规划&#xff0c;对于无人机的任务执行有着至关重要的作用&#xff0c;无人机在从起点飞向目的点的过程中&#xff0c;如何规划出一条安全路径&#xff0c;并且保证该路径代价最优&#xff0c;是无人机航线规划的主要目的。其中路径最优的含义是&#xff0c;在无人机…...

react中受控组件与非受控组件

受控组件与非受控组件 受控组件: 其值由 React 控制的组件,通常使用 state 来控制和修改组件的值。 例如受控的 组件: class NameForm extends React.Component {constructor(props) {super(props);this.state {value: };}handleChange (event) > {this.setState({val…...

【网络教程】如何解决Docker删除镜像和容器后磁盘空间未释放的问题

文章目录 问题分析解决方案删除未使用的容器删除未使用的镜像删除未使用的数据卷调整Docker数据存储路径问题分析 当删除Docker镜像和容器后,磁盘空间并未释放,这可能导致磁盘空间不足。造成此问题的原因包括: Docker镜像和容器的删除策略:默认情况下,Docker不会立即删除…...

Python中的进度条显示方案

迷途小书童 读完需要 3分钟 速读仅需 1 分钟 大家好&#xff0c;我是迷途小书童! tqdm 是一个非常常用的 Python 进度条库&#xff0c;它可以在循环迭代和 IO 操作期间添加一个进度条&#xff0c;直观地显示循环迭代的进程。 tqdm 是在 2013 年发布的&#xff0c;目的是为 Pyth…...

2023-09-05力扣每日一题

链接&#xff1a; 2605. 从两个数字数组里生成最小数字 题意&#xff1a; 两个数组都只包含1-9的数字&#xff0c;求一个最小数&#xff0c;两个数组内都要有它的其中一位 解&#xff1a; 要么是个位数要么是十位数&#xff0c;存一下数量和两边的最小数即可 实际代码&am…...

ODC现已开源:与开发者共创企业级的数据库协同开发工具

OceanBase 开发者中心&#xff08;OceanBase Developer Center&#xff0c;以下简称 ODC&#xff09;是一款开源的数据库开发和数据库管理协同工具&#xff0c;从首个版本上线距今已经发展了三年有余&#xff0c;ODC 逐步由一款专为 OceanBase 打造的开发者工具演进成为支持多数…...

生成克隆钓鱼网站与对win7进行后渗透操作

目录 目录 前言 系列文章列表 思维导图 1&#xff0c;实验涉及复现环境 2&#xff0c;CS的介绍 2.1,CS的简介 2.2,CS的主要功能 3&#xff0c;CS的安装 3.1,将cobalt_strike_4.5文件夹放到kali中 3.1,放入过程中的注意事项 3.2,如图所示 4,配置工具 4.1,进入c…...

Ubuntu18中NVIDIA,cuda,cudnn,pytorch安装

注意&#xff1a;nvidia驱动和cuda,cudnn,pytroch,python的对应关系 linux安装pytorch&#xff08;包括cuda与cudnn&#xff09;_linux清华园按照pytorch1.12_BryceRui的博客-CSDN博客 安装流程&#xff1a;安装cuda&#xff08;包括nvidia驱动&#xff09; cudnn python安装…...

MATLAB中M文件编写

简介 所谓M文件就是将处理问题的各种命令融合到一个文件中&#xff0c;该文件以.m为扩展名。然后&#xff0c;由MATLAB系统编译M文件&#xff0c;得出相应的运行结果。M文件具有相当大的可开发性和扩展性。M文件有脚本文件和函数文件两种。脚本文件不需要输入参数&#xff0c;…...

企业数字化神经网络

随着数字化时代的到来&#xff0c;数据已经成为企业战略性资源和重要的生产要素。企业数字化转型的核心是充分开发和利用数据资源&#xff0c;以数据为驱动&#xff0c;对业务流程进行重构与创新&#xff0c;从而提升企业的核心竞争力。业务系统是企业数据资源的源头&#xff0…...

C++this指针

本文旨在讲解C中this关键字&#xff0c;以及其相关作用&#xff01; 定义 this 是 C 中的一个关键字&#xff0c;也是一个 const 指针&#xff0c;它指向当前对象&#xff0c;通过它可以访问当前对象的所有成员。 this的介绍 下面来看一下关于this这个关键字的实例&#xff0…...

【初阶C语言】操作符1--对二进制的操作

前言&#xff1a;本节内容介绍的操作符&#xff0c;操作的对象是二进制位。所以前面先介绍整数的二进制位 一、二进制位介绍 1.二进制介绍 &#xff08;1&#xff09;整数的二进制表示形式有三种&#xff1a;原码、反码和补码。 &#xff08;2&#xff09;原码、反码和补码的…...

安装pyscipopt

安装pyscipopt Conda会自动安装SCIP&#xff0c;因此所有内容都可以通过单个命令安装&#xff1a; GitHub - scipopt/PySCIPOpt: Python interface for the SCIP Optimization Suite conda create --name myenv python3.8 # 创建新环境 conda activate myenv # 激活新环境 …...

原生js实现的轮盘抽奖案例

来到大学也是有二年了&#xff0c;吃饭最多的地方就是在食堂&#xff0c;经过这么久的时间&#xff0c;已经几乎是把每个窗口的菜都吃腻了&#xff0c;所以我打算做个轮盘抽奖的形式来决定我每天要吃些什么。 目录 实现效果图&#xff1a; 静态搭建 js代码 1.实现此功能的思路…...

最经典的解析LSA数据库(第六课)

初步认识OSPF的大致内容(第三课)_IHOPEDREAM的博客-CSDN博客 1 OSPF 工作过程 建立领居表 同步数据库 今天来 说一说数据库概念 计算路由表 2 什么是数据库&#xff1f; 数据库是一个组织化的数据集合&#xff0c;用于存储、管理和检索数据。它是一个可访问的集合&#x…...

C++基础入门

文章目录 前言一、C历史及发展1.C是什么2.C历史 二、开始C1.基础类型1.第一个简单的C程序2.命名空间1.命名空间的介绍2.命名空间的使用3.命名空间的using声明与using指示 3.初识输入输出操作4.引用1.引用概念2.引用的使用1.引用做参数2.引用做返回值 3.引用和指针的区别4.const…...

【每日随笔】驾驭人性 ② ( 员工立场问题 | 立场转变 | 吴越同舟 | 老板如何与员工结成利益共同体 )

文章目录 一、员工立场问题二、立场转变三、吴越同舟四、老板如何与员工结成利益共同体 一、员工立场问题 人的潜力是很大的 , 肩上抗 100 斤 水泥 和 肩上抗 100 斤黄金 , 能一样吗 , 扛着黄金绝对能扛回家 ; 员工 不愿意 与公司一条心是正常的 , 员工 拿的是 死工资 , 公司赚…...

C++(QT)画图行车

通过鼠标在窗口上点击形成多个点的连线&#xff0c;绘制一辆汽车沿着绘制的连线轨迹前进。要求连线点数大于20.可以通过清除按钮清除已经绘制的连线&#xff0c;并可以重新绘制一条轨迹连线。当车辆行驶到轨迹终点时&#xff0c;自动停止。&#xff08;汽车实在可用方块代替&am…...

Unity中Shader抓取屏幕并实现扭曲效果(优化)

文章目录 前言一、在之前顶点着色器的输入中&#xff0c;放弃了使用结构体传入&#xff0c;而是直接从应用程序阶段传入参数&#xff0c;这样写的话&#xff0c;对于程序来说&#xff0c;不方便扩张&#xff0c;所以需要对其进行修改实现1、定义结构体用于传入顶点坐标系2、因为…...

肖sir__设计测试用例方法之_(白盒测试)

白盒测试技术 一、定义&#xff1a; 白盒测试也叫透明盒测试&#xff0c;检查程序内部结构及路径一是否符合规格说明&#xff0c;二是否符合其代码规范。 因此&#xff0c;也叫结构测试或者逻辑驱动测试。 二、白盒测试常见方法&#xff1a; a、语句覆盖&#xff1b; b、判断覆…...

GoT:用大语言模型解决复杂的问题

GoT&#xff1a;用大语言模型解决复杂的问题 摘要介绍背景和符号表示语言模型和上下文学习Input-Output&#xff08;IO&#xff09;Chain of thought&#xff08;CoT&#xff09;Multiple CoTTree of thoughts&#xff08;ToT&#xff09; GoT框架推理过程思维变换聚合变换&…...

nginx服务和uwsgi服务如何设置开机自启动

上次学到了在云服务器下如何部署Django项目&#xff0c;用到了nginx服务和uwsgi服务&#xff0c;需要手工启动这2个服务的命令。 现在考虑如何设置开机自启动&#xff0c;为什么要这样考虑&#xff1f;因为服务器万一出问题&#xff0c;意外重启了&#xff0c;那我们部署的Dja…...

算法-分治算法

文章来源&#xff1a; https://blog.csdn.net/weixin_45630258/article/details/126425400 欢迎各位大佬指点、三连 一、分治 1、定义&#xff1a;分治&#xff0c;也就是分而治之。 它的一般步骤是&#xff1a; ① 将原问题分解成若干个规模较小的子问题&#xff08;子问题…...

react 实现监听逻辑

需求&#xff1a; 在一个页面下有多个子tab在某些tab 下&#xff0c;或者父节点的数据更新的时候&#xff0c;其他子tab 或者父节点也要同步更新 进程&#xff1a; 正常情况下会把所有用到的数据都移动到父节点&#xff0c;修改行为也都放在父节点但如果这样的话父节点的数据…...

vue项目一个页面包含多个时间选择器的处理方案

描述&#xff1a;vue项目中如果在一个页面使用多个时间选择器组件时&#xff0c;不同的时间选择器需要分别分开工作 解决方案一 原本是想直接每一个时间选择器都安排一套相对独立的维生系统&#xff0c;但是到后面发现繁琐至极&#xff0c;而且报错&#xff0c;果断放弃&#…...

机器学习入门教学——决策树

1、简介 决策树算法是一种归纳分类算法&#xff0c;它通过对训练集的学习&#xff0c;挖掘出有用的规则&#xff0c;用于对新数据进行预测。决策树算法属于监督学习方法。决策树归纳的基本算法是贪心算法&#xff0c;自顶向下来构建决策树。 贪心算法&#xff1a;在每一步选择…...

关于加强门户网站建设的通知/关于营销的最新的新闻

三好学生 2015/11/23 10:560x00 前言写这篇文章有两个原因&#xff0c;一是想介绍一下powershell的高级使用技巧&#xff0c;二是我在测试一些powershell脚本时发现了很多bug&#xff0c;提交给作者后更新的也不及时&#xff0c;于是就有了自己维护代码的想法. 接下来我会陆续…...

号码百事通给做网站吗/网络广告联盟

vue3快release了&#xff0c;一些新特性也需要了解下&#xff0c;在多层组件传递参数情况下&#xff0c;provide是更好的选择组合式提供与注入在组合式 API 中使用 provide/inject。两者都只能在当前活动实例的 setup() 期间调用。在 setup() 中使用 provide 时&#xff0c;我们…...

网站开发岗位介绍/今天微博热搜前十名

在实现摄像头拍照功能应用之前&#xff0c;考虑两个风险 【1】 你的应用不是每一款android 机器都可以使用 主要原因&#xff1a; 摄像头拍照功能执行的过程为 应用调用android系统API-->系统API&#xff0c;调用底层驱动-->底层驱动驱动硬件 一般的android手机有…...

抚州市住房和城乡建设局网站/软文案例短篇

很高兴又和大家见面了。上一节课&#xff0c;我们学会了如何打通任督二脉&#xff0c;突破编程中的瓶颈&#xff0c;小K希望大家遇到问题时&#xff0c;能够冷静下来&#xff0c;认真分析&#xff0c;不要怂。这两节课的主要内容是带大家探究“熟悉的陌生人”——函数。之所以这…...

wordpress带登陆主题/上海专业做网站

【使用场景】Swoole的task模块可以用来做一些异步的慢速任务、耗时场景。如webim中发广播&#xff0c;发送邮件等&#xff0c;把这些任务丢给task进程之后&#xff0c;worker进程可以继续处理新的数据请求&#xff0c;任务完成后会异步通知worker进程告诉它此任务已经完成。此外…...

提供手机网站建设推荐/网络营销大师排行榜

import jiebatxt open( "三国演义.txt", "r", encoding "gb18030"). read()这里的编码格式一开始我是按照书上‘utf-8’格式读取&#xff0c;发现会乱码&#xff0c;后来在pycharm里面用‘gbk’格式能读出文本内容&#xff0c;但是个别字符识别…...