阿里云SLB监听虚拟服务器组时,既有部署在k8s容器里的应用,又有部署在ecs机器上的应用,k8s应用无法连接部署在ecs机器上的应用

一、背景

阿里云SLB可以添加多个监听端口,包括http和tcp,但是当被添加的后端应用,既有部署在k8s里,也有部署在ecs机器里。同一个slb下,这种混合方式的监听,会导致部署在k8s应用中的应用无法连接后者,只能连接前者。

在这里插入图片描述

业务服务和通道服务都部署在阿里云的内网,同一个slb的监听,既有部署在ECS上的通道服务,也有部署在K8S容器里的通道服务。

而业务服务也是部署在K8S容器里,所以在业务服务配置的是内网slb的地址。

二、问题描述

外网通过外网SLB访问部署在ECS机器上和K8S容器的通道服务都正常。

但是部署在K8S容器里的业务服务,访问部署在K8S容器里的通道服务正常,却连接不了部署在ECS机器上的通道服务。

  • 通过内网slb,访问部署在K8S容器里的通道服务端口,正常。

在这里插入图片描述

  • 通过内网slb,访问部署在ECS上的通道服务端口,异常,连接被拒绝。

在这里插入图片描述

对比上面的两个测试,可以看到,前者正常,后者异常。
所以,下一步,我尝试对比测试外网SLB。

  • 通过外网slb,访问部署在K8S容器里的通道服务端口,正常。
    在这里插入图片描述
  • 通过外网slb,访问部署在ECS上的通道服务端口,异常,连接被拒绝。

在这里插入图片描述

在外网访问部署在ECS上的通道服务都正常,但是在k8s容器里的业务应用访问却被拒绝。

这是什么原因?

同一个slb,为什么能访问部署在k8s容器里的通道服务,却不能访问部署在ecs上的通道服务呢?

ws连接被拒绝的报错详情见下:

org.java_websocket.exceptions.WebsocketNotConnectedException: nullat org.java_websocket.WebSocketImpl.send(WebSocketImpl.java:628)at org.java_websocket.WebSocketImpl.send(WebSocketImpl.java:605)at org.java_websocket.client.WebSocketClient.send(WebSocketClient.java:410)

在这里插入图片描述

三、内外网slb

阿里云SLB监听虚拟服务器组时,既有部署在k8s容器里的应用,又有部署在ecs机器上的应用。

见下面的两个截图示意,8888是部署在k8s容器里的应用端口,8889是部署在ecs机器上的应用端口。

在这里插入图片描述
在这里插入图片描述

四、总结

本文我们通过一个实际案例,踩到了一个slb使用过程中的大坑,特别对于混合式部署的场景。

在使用slb监听虚拟服务器组的时候,不要混用,否则出现非常诡异的现象,真让人莫名其妙。。

由于我们无法得到阿里云slb的实现逻辑,跟k8s有关,下面是我根据结果逆向猜测:

当K8S容器中的应用要访问同样部署在k8s容器里的另外一个应用时,它会遵循k8s的内部网络机制,而且忽略了slb下的非k8s容器里的应用。(并没有去判断,被监听的类型是ecs还是k8s,而是一棍子打死,认为同一个slb下的所有监听,要么都是ecs机器上的应用,要么都是k8s容器里的应用)

还是那句话,这个坑真的很深很深。

虽然很苦,还是建议阿里云控制台在运维人员对slb添加监听的时候,可以对此作一个提示或者限制。 以免出现外网能访问得通的一个地址,内网却被拒绝连接。(出现问题后,真的是一头雾水啊)

要想解决此问题,只有把k8s和ecs上的后端应用,分开监听虚拟服务器组。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/8637.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pytharm2020安装详细教程

Pytharm2020版提取链接链接: https://pan.baidu.com/s/1eDvwYmUJ4l7kIBXewtN4EA?pwd1111 提取码:1111 演示版本为2019版,链接包为2020版pytharm。 1.双击exe文件页面会提示更改选项,点击“是”。 2.点击下一步next 自…

2024.5.7 —— LeetCode 高频题复盘

目录 136. 只出现一次的数字LCR 155. 将二叉搜索树转化为排序的双向链表11. 盛最多水的容器498. 对角线遍历402. 移掉 K 位数字归并排序958. 二叉树的完全性检验123. 买卖股票的最佳时机 III79. 单词搜索排序奇升偶降链表 136. 只出现一次的数字 题目链接 Python 方法一 cla…

(1)探索 SpringAI - 基本概述

人工智能简介 A system is ability to correctly interpret external data, to learn from such data, and to use those learnings to achieve specific goals and tasks through flexible adaptation. 翻译:系统正确解释外部数据的能力,从这些数据中学…

《武林秘籍》——闪侠惠递如何让消费者寄快递更安心!

现如今,网上下单寄快递的便利性让众多人享受到了电商物流飞速发展带来的红利性。今天小编直接介绍一款寄快递特别省钱的利器,就是利用闪侠惠递来寄快递。闪侠惠递寄快递,真正的实现了便宜寄快递发物流的便捷性,开创了低价发快递的…

蒙特卡洛求PI(抛点法)TypeScript实现

解决node先console.log不能用 pnpm install -D tslib types/nodetsconfig.json {"compilerOptions": {"target": "es2020","module": "commonjs","lib": ["es2020"],"sourceMap": true,&qu…

快速排序应用

题目描述 著名的快速排序算法里有一个经典的划分过程:通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定一个划分后的正整数序列,请问有多少个元素可能是划分过程中选取的主元? 并按升序输出这些主元。 解…

Baidu Comate智能编码助手:提升软件生产力的高效工具使用教程

目录 一、前言 二、Comate助手概览 三、核心功能详解 智能推荐与自动补全 生成单元测试 代码注释生成 四、使用场景与优势 五、总结与展望 一、前言 随着信息技术的飞速发展,编程已经成为许多行业不可或缺的一部分。然而,编程过程中的繁琐和重复…

three.js 中 meshbasic.glsl 文件中的片源着色器的主函数解析

1. three.js 中 meshbasic.glsl 文件中的片源着色器的主函数解析 他的具体代码如下 void main() {#include <uv_vertex>#include <color_vertex>#include <morphcolor_vertex>#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )#include <beginno…

【linux软件基础知识】-死锁问题

死锁问题 当两个或多个线程由于每个线程都在等待另一个线程持有的资源而无法继续时,就会发生死锁 如下图所示, 在线程 1 中,代码持有了 L1 上的锁,然后尝试获取 L2 上的锁。 在线程 2 中,代码持有了 L2 上的锁,然后尝试获取 L1 上的锁。 在这种情况下,线程 1 已获取 L…

雷达通信一体化(含WCSP2023会议论文集学习)

雷达通信一体化&#xff0c;又称雷达通信融合&#xff08;RADCOM&#xff09;&#xff0c;是一种新兴的技术&#xff0c;它将雷达&#xff08;通常用于探测和跟踪目标&#xff09;和无线通信&#xff08;用于传输信息&#xff09;的功能结合在一起。这种融合技术的主要目标是提…

第一天复习Qt文件读取

Qt文件操作&#xff1a; 1、QFile QTextStream操作文件案例&#xff1a; 1、打开文件 QFile file(absolute filepath | relative path); file.readLine()返回内容长度&#xff0c;如果为-1就是读取失败 file. Close()读取后关闭 file.errorString()返回文件打开发生的错误2、…

怎么解决端口被占用

目录 一、引言 二、解决方法 一、引言 最近用vscode写网页&#xff0c;老是遇见端口被占用&#xff0c;报错如下&#xff1a; listen tcp :8080: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted. 二、解决方法 1.换…

渗透之sql注入实战2(二次注入)

目录 平台地址&#xff1a; 开始&#xff1a; 方法1&#xff1a; 方法二 找提示 这里存在一个文件包含&#xff08;file&#xff09;。 爆源码 index.php源码 confirm.php源码&#xff1a; search.php源码&#xff1a; change.php源码&#xff1a; delete.php源码&…

【vue+el-upload】当action=“#“,代表不使用默认上传,使用自定义上传,http-request获取文件流

el-upload有多种上传行为&#xff1a; 1、立即上传&#xff1a; 当 action 属性被赋予一个有效的 URL 时&#xff0c;一旦用户选择了文件&#xff0c;el-upload 组件会立即自动将文件上传到指定的服务器地址。 2、不立即上传&#xff08;自定义触发&#xff09;&#xff1a; 如…

网贷大数据查询要怎么保证准确性?

相信现在不少人都听说过什么是网贷大数据&#xff0c;但还有很多人都会将它跟征信混为一谈&#xff0c;其实两者有本质上的区别&#xff0c;那网贷大数据查询要怎么保证准确性呢?本文将为大家总结几点&#xff0c;感兴趣的朋友不妨去看看。 想要保证网贷大数据查询的准确度&am…

【第13章】spring-mvc之validator

文章目录 前言一、准备1. 引入库2. add.jsp3. show.jsp 二、代码部分1.实体类2. 控制器类3. 效果4. 展示 总结 前言 【第20章】spring-validator 虽然前面已经在spring介绍过&#xff0c;但是为了保证代码可用&#xff0c;还是会从头讲到尾&#xff0c;尽量把关键点列出来讲给…

vue3实现电子签名的方法

vue3实现电子签名且对电子签名可进行修改画笔粗细、画笔颜色、撤销、清屏、保存等功能。 实现效果&#xff1a;查看源码 第一种&#xff1a;通过canvas <div class"signaturePad-Box w100 h100 flex-center"><el-space class"mb10" size"…

【大模型认识】警惕AI幻觉,利用插件+微调来增强GPT模型

文章目录 一. 大模型的局限1. 大模型不会计算2. 甚至明目张胆的欺骗 二. 使用插件和微调来增强GPT模型1. 模型的局限性2. 插件来增强大模型的能力3. 微调技术-提高特定任务的准确性 一. 大模型的局限 1. 大模型不会计算 LLM根据给定的输入提示词逐个预测下一个词&#xff08;…

【人工智能基础】RNN实验

一、RNN特性 权重共享 wordi weight bais 持久记忆单元 wordi weightword baisword hi weighth baish 二、公式化表达 ht f(ht - 1, xt) ht tanh(Whhht - 1 Wxhxt) yt Whyht 三、RNN网络正弦波波形预测 环境准备 import numpy as np import torch from tor…

LeetCode-hot100题解—Day7

原题链接&#xff1a;力扣热题-HOT100 我把刷题的顺序调整了一下&#xff0c;所以可以根据题号进行参考&#xff0c;题号和力扣上时对应的&#xff0c;那么接下来就开始刷题之旅吧~ 1-8题见LeetCode-hot100题解—Day1 9-16题见LeetCode-hot100题解—Day2 17-24题见LeetCode-hot…