kubernetes中无法访问集群外数据库问题分析及解决

2023-11-16

kubernetes中无法访问集群外数据库问题分析及解决

结论

       先说结论,是因为k8s中使用了服务网格 istio,Istio有一个安装选项,global.outboundTrafficPolicy.mode,它配置 Sidecar 对外部服务(那些没有在Istio 的内部服务注册中定义的服务)的处理方式。如果这个选项设置为 ALLOW_ANY, Istio代理允许调用未知的服务。如果这个选项设置REGISTRY_ONLY,那么 Istio 代理会阻止任何没有在网格中定义的 HTTP服务或 service entry 的主机。ALLOW_ANY 是默认值,不控制对外部服务的访问,方便你快速地评估Istio。尽管这为入门 Istio 带来了方便,但是,通常情况下,配置更严格的控制是更可取的。当k8s平台运维人员配置成REGISTRY_ONLY,就导致了网格内服务都访问不到网格外的数据库导致。
       通过设置ServiceEntry可以解决该问题。

问题描述

       系统突然全部转圈圈,前端返回超时。

问题分析

  1. 通过增加后端接口日志,发现是在查询数据库后一直没有返回,初步定位集群和数据库之间无法通信。
  2. 测试数据库连通性,在集群pod中使用命令测试与数据库ip端口是否连通
    nc -zv 10.xxx.xxx.xxx 3306
    
    测试后发现是连同的。
  3. 集群内部署新数据库,应用切换的新数据库,可返回数据,应用正常。 排除应用程序代码问题
  4. 在集群上重新创建一个服务,部署并选择上述应用程序代码的镜像,通过postman接口访问测试,发现也是可以通的,应用正常。
  5. 对比4中的部署的yalm与原有问题的部署yalm,发现有几个属性配置差异,其中一个即为:sidecar.istio.io/inject: ‘true’,通过增加该属性测试,最终定位为该 istio问题。

问题解决

       通过增加ServiceEntry来允许外部访问。

kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: mysqldb
spec:
  hosts:
  - mysqldb.svc.remote
  ports:
  - number: 3306
    name: mysql
    protocol: MySQL
  location: MESH_EXTERNAL
  resolution: STATIC
  endpoints:
  - address: 10.xxx.xxx.xxx
    ports:
      mysql: 3306
EOF
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kubernetes中无法访问集群外数据库问题分析及解决 的相关文章

随机推荐

  • 数据连接池默认配置带来的坑testOnBorrow=false,cloes_wait 终于解决了

    转载地址 http blog csdn net soberchina article details 72953996 首先说一下自己程序中遇到的问题 前一段新写了一个项目 主要为方便公司业务切库做准备 为其他项目提供接口 spring b
  • mybatis中的分页插件原理过程说明

    首先了解一下mybatis到底帮了我们做了哪些事 1 封装jdbc操作 2 利用反射将java对象与sql语句之间的互相转换 mybatis的架构设计 1 接口层 2 数据处理层 参数映射 通过parameterHandler sql解析通
  • 框架分析(11)-测试框架

    框架分析 11 测试框架 专栏介绍 Selenium 框架特性 多语言支持 多浏览器支持 元素定位 页面操作 等待机制 浏览器控制 测试报告 并行执行 集成测试框架 优缺点分析 优点 开源免费 跨平台 多语言支持 强大的定位器 支持多种测试
  • C++线程安全map (低效率)

    map的并发操作是不安全的 C 里边有红黑树实现的std map和hash表 unordered map 在 C 并发编程实战 一书中的162页提供了一个细粒度锁的MAP数据结构 使用了 boost的shared mutex C 14已经支
  • 快速制作一个chrome插件

    说在前面 在我日常开发以及娱乐生活中 浏览器是我使用频率较高的一个应用 当我大学拥有第一部电脑开始 之后不论电脑换成什么 以及使用的是什么系统 我的首选浏览器都是Chrome 不仅仅是因为其速度快 更多是它丰富的扩展在吸引我 那么大家有没有
  • Hive本地模式安装(详细)

    1 Hive简介 什么是Hive Hive是建立在Hadoop文件系统上的数据仓库 它提供了一系列工具 能够对存储在HDFS中的数据进行数据提取 转换和加载 ETL 这是一种可以存储 查询和分析存储在Hadoop中的大规模数据的工具 Hiv
  • C++Primer第五版习题答案(四)

    第四章 表达式 4 21 4 22 4 28 C Primer第五版课后习题答案目录 4 21 include
  • 电容器的四大特性是什么

    电容的作用 1 旁路 旁路电容是为本地器件提供能量的储能器件 它能使稳压器的输出均匀化 降低负载需求 就像小型可充电电池一样 旁路电容能够被充电 并向器件进行放电 为尽量减少阻抗 旁路电容要尽量靠近负载器件的供电电源管脚和地管脚 这能够很好
  • 解决jquery冲突问题的简单方法

    在使用jquery的框架的同时我们可能会使用其他的框架 其他的框架的里面也有可能包含 符号 此时就会发生jquery的冲突问题 解决方法有2个 1 释放 的使用权用jQuery noConflict 注意点 释放操作必须写在编写其他的jqu
  • 解决GitHub下载速度太慢的问题

    https blog csdn net qing666888 article details 79123742 直接在码云上下载 https gitee com 详细参考 https blog csdn net a1439775520 ar
  • Linxu下运行是.sh文件,显示权限不够

    问题 解决方案 chmod x DMAgentService sh
  • 服务器CPU占用过高和哪些因素有关呢

    服务器CPU占用过高和哪些因素有关呢 硬件因素 以下分别从CPU温度 CPU超线程 硬件配置 硬件驱动和待机方面分析 1 CPU温度过高 如果CPU风扇散热不好 会导致CPU温度太高 使CPU自动降频 从而使CPU的性能降低 总之高温时CP
  • EX Sports中文Telegram社区正式成立啦 欢迎中国地区的伙伴加入

    完成任务即可领取EXS 任务 1 关注twitter 3分 2 转发本条推文 2分 3 加入中文Telegram社区 5分 4 将表单分享并且成功邀请好友 5分 人 根据得分发放奖励 10分获得价值1USDT的EXS 20分获得价值2USD
  • OpenCV 训练分类器生成XML文件【完整过程】

    在网上找了好多相关信息 有几篇写的很好的 http blog csdn net tyt2222008 article details 5838389 http blog csdn net carson2005 article details
  • java设计模式——简单工厂模式(Simple Factory Pattern)

    定义 简单工厂模式 Simple Factory Pattern 又称为静态工厂方法 Static Factory Method 模式 它属于类创建型模式 在简单工 厂模 式中 可以根据参数的不同返回不同类的实例 结构 Factory 工厂
  • 一文彻底搞懂跳表的各种时间复杂度、适用场景以及实现原理

    跳表是一种神奇的数据结构 因为几乎所有版本的大学本科教材上都没有跳表这种数据结构 而且神书 算法导论 算法第四版 这两本书中也没有介绍跳表 但是跳表插入 删除 查找元素的时间复杂度跟红黑树都是一样量级的 时间复杂度都是O logn 而且跳表
  • 抖音上很火的3D立体动态相册实现代码!

    今天这篇博客就分享下前端代码如何实现3D立体动态相册 赶紧学会了 来制作属于我们程序员的浪漫吧 先上效果图 来引起下你们的兴趣 正文 一 新建一个index html的文件 代码如下
  • 中国城市数字经济发展报告资料整理(2019年-2020年)

    数据集名称 中国城市数字经济发展报告资料整理 时间范围 2019 2020年 相关说明 数字经济 作为经济学概念的数字经济是人类通过大数据 数字化的知识与信息 的识别 选择 过滤 存储 使用 引导 实现资源的快速优化配置与再生 实现经济高质
  • 空搜索

    搜索API的最基础的形式是没有指定任何查询的空搜索 它简单地返回集群中所有索引下的所有文档 GET search 返回的结果 为了界面简洁编辑过的 像这样 hits total 14 hits index us type tweet id
  • kubernetes中无法访问集群外数据库问题分析及解决

    kubernetes中无法访问集群外数据库问题分析及解决 结论 问题描述 问题分析 问题解决 结论 先说结论 是因为k8s中使用了服务网格 istio Istio有一个安装选项 global outboundTrafficPolicy mo