K8S_IPV6 POD与数据库联通方法以及快速网络调试的一个思路


背景

前端时间搭建了一套K8S only IPV6 Single Stack的测试环境
因为自己长时间不搞K8S了, 并且IPV6的搭建方法墙内的文档很不完整
我这边仅是搭建了一套比较基本的
K8S_calico_ingress的 单栈IPV6的环境
但是同事一直要求测试全链路的 IPV6
因为我这边没有进行pod网段和node网段的BGP网关打通, 所以实际上是无法使用的. 然后还是想到 endpoint暴露服务的方式进行简单测试. 处理和测试验证的过程如下
顺便也发现了一个可能可行的快速调试POD网络的方法

endpoint的处理

我这边其实在K8S内部暴露了很多 service, 简单如下:

[root@k8sipv6 gsclouddocker]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
gscloud-service NodePort 2001:db8:42:1::521f <none> 80:30237/TCP 5d16h
kubernetes ClusterIP 2001:db8:42:1::1 <none> 443/TCP 17d
mssql-service NodePort 2001:db8:42:1::9e71 <none> 1433:31155/TCP 2m48s
mysql-service NodePort 2001:db8:42:1::7b09 <none> 3306:30406/TCP 17d
rabbitmq-service NodePort 2001:db8:42:1::d829 <none> 5672:32027/TCP 2d22h
rabbitmqm-service NodePort 2001:db8:42:1::f774 <none> 15672:31296/TCP 2d22h
redis-service NodePort 2001:db8:42:1::9a1e <none> 6378:30410/TCP 17d

IPV6连通性验证

前景说明:
我这边采用了 opnejdk的 debian 的原始image 进行打包应用服务.
里面其实缺少很多比较关键的调试工具.
为了能够验证(堵住部分人的质疑),发现在相同版本的glibc下可以快速的进行网络和应用调试. 我这边使用docker cp的方式将 redis-cli 和 /usr/bin/telnet 放到了容器内的 /usr/bin 目录下面
然后kubectl exec -it podname bash 的方式登录镜像, 发现可以进行如下操作 注意我使用的ipv6的地址是 svc 的CLUSTER-IP: root@gscloud-deployment-5487fb6775-rxxs6:/app# redis-cli -h 2001:db8:42:1::9a1e -p 6378
[2001:db8:42:1::9a1e]:6378> auth Testxxxx
OK
[2001:db8:42:1::9a1e]:6378> info
# Server
redis_version:6.2.8
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:7abcdc1a1f1d7105
redis_mode:standalone
os:Linux 4.18.0-425.13.1.0.1.an8.x86_64 x86_64
arch_bits:64
monotonic_clock:POSIX clock_gettime
multiplexing_api:epoll
atomicvar_api:c11-builtin
gcc_version:7.3.0
process_id:2813
process_supervised:no
run_id:49659597608000711068ba46f6572f6271a59ac2 然后数据库方面的验证为:
root@gscloud-deployment-5487fb6775-rxxs6:/app# telnet 2001:db8:42:1::9e71 1433
Trying 2001:db8:42:1::9e71...
Connected to 2001:db8:42:1::9e71.
Escape character is '^]'. root@gscloud-deployment-5487fb6775-rxxs6:/app# telnet 2001:db8:42:1::7b09 3306
Trying 2001:db8:42:1::7b09...
Connected to 2001:db8:42:1::7b09.
Escape character is '^]'.
J
8.0.32_"

总结

还是需要开动思路.
最小的投入后的最大的成果.
这一块验证思路还是比较简单的.
也可能为以后得工作带来很大的工作效率的提升.

K8S_IPV6 POD与数据库联通方法以及快速网络调试的一个思路的更多相关文章

  1. MySQL数据库备份与恢复方法(转)

    来源于:http://www.jb51.net/article/25686.htm 网站数据对我们对站长来说都是最宝贵的,我们平时应该养成良好的备份数据的习惯.     常有新手问我该怎么备份数据库, ...

  2. MySQL 快速复数据库的方法

    为了方便快速复制一个数据库,可以用以下命令将db1数据库的数据以及表结构复制到newdb数据库 创建新的数据库 #mysql -u root -p123456 mysql>CREATE DATA ...

  3. 基于PLSQL的数据库备份方法及如何解决导出clob和blob类型数据报错的问题

    基于PL/SQL的数据库备份方法 PL/SQL Developer是Oracle 数据库中用于导入或导出数据库的主要工具,本文主要介绍了利用PL/SQL Developer导入和导出数据库的过程,并对 ...

  4. 1   开发一个注重性能的JDBC应用程序不是一件容易的事. 当你的代码运行很慢的时候JDBC驱动程序并不会抛出异常告诉你。   本系列的性能提示将为改善JDBC应用程序的性能介绍一些基本的指导原则,这其中的原则已经被许多现有的JDBC应用程序编译运行并验证过。 这些指导原则包括:    正确的使用数据库MetaData方法    只获取需要的数据    选用最佳性能的功能    管理连

    1 开发一个注重性能的JDBC应用程序不是一件容易的事. 当你的代码运行很慢的时候JDBC驱动程序并不会抛出异常告诉你. 本系列的性能提示将为改善JDBC应用程序的性能介绍一些基本的指导原则,这其中的 ...

  5. 30多条mysql数据库优化方法,千万级数据库记录查询轻松解决(转载)

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  6. 一个防止误删MSSQL数据库的方法

    一个防止误删MSSQL数据库的方法 环境:Windows2008 R2 .SQL 2012 今天发现一个有趣的现象,之前数据库服务器的其中几个数据库做过镜像,不过现在已经删除了,今天又要在那台服务器上 ...

  7. 查看mysql数据库版本方法总结

    当你接手某个mysql数据库管理时,首先你需要查看维护的mysql数据库版本:当开发人员问你mysql数据库版本时,而恰好你又遗忘了,那么此时也需要去查看mysql数据库的版本............ ...

  8. Oracle shutdown immediate无法关闭数据库解决方法

    在测试服务器上使用shutdown immediate命令关闭数据库时,长时间无法关闭数据库,如下所示 1: [oracle@DB-Server admin]$ sqlplus / as sysdba ...

  9. oracle数据库表空间追加数据库文件方法

    oracle数据库表空间追加数据库文件方法   针对非大文件方式表空间,允许追加文件进行表空间的扩展,单个文件最大大小是32G  第一种方式:表空间增加数据文件    www.2cto.com   1 ...

  10. 优化数据库的方法及SQL语句优化的原则

    优化数据库的方法: 1.关键字段建立索引. 2.使用存储过程,它使SQL变得更加灵活和高效. 3.备份数据库和清除垃圾数据. 4.SQL语句语法的优化.(可以用Sybase的SQL Expert,可惜 ...

随机推荐

  1. 丝丝入扣,毫不违和,AI一键换脸和微调,基于Rope-Ruby,2024最新整合包

    AI换脸已经不是什么时新的技术了,从DeepFace到Facesweap,再到Roop.AI换脸技术中出现了一种名为"一键换脸"的方法,它不需要训练模型.这种方法利用了名为&quo ...

  2. 什么是Helm?它是如何提升云原生应用私有化部署效率的

    公众号「架构成长指南」,专注于生产实践.云原生.分布式系统.大数据技术分享 试想一下,如果有一个项目有50 个微服务,每个微服务都有service.deployment.ingress.pvc等 ya ...

  3. thymeleaf特殊字符输出转义

    thymeleaf特殊字符输出转义,字符串包括/@#¥%&*,正常来说他们输出会被转义掉.主要是使用了th:inline="javascript"标签,它会自动安全转义字符 ...

  4. sed 命令进阶

    sed 是面向行处理的,但是有时可能希望针对多行作为一个单位进行处理,在 sed 中这也是可行的,本文将介绍如何使用 sed 来同时处理多行文本 理论基础 模式空间(Pattern Space):是一 ...

  5. Flutter Getx 中的Dialog 以及改变主题

    设置应用程序入口 当我们导入依赖后,在应用程序顶层把 GetMaterialApp 作为顶层,如下所示 import 'package:flutter/material.dart'; import ' ...

  6. 在Docker上面安装/启动、运行、挂载MySQL5.7

    下载文档请看:https://hub.docker.com/r/mysql/mysql-server 一.下载镜像 执行命令: docker pull mysql/mysql-server:5.7 查 ...

  7. Java 编辑、删除Excel中的超链接

    本文介绍如何编辑Excel文档中的超链接,包括编辑超链接显示文本.链接地址及删除指定超链接.使用免费版Excel类库工具,Free Spire.XLS for Java.Jar包获取可在官方网站下载, ...

  8. 一文带你了解两种Transformer文字识别方法

    摘要:受Transformer模型的启发,目前一些学者将该结构应用到文本行识别中,以替代RNN,取得了良好的效果,如在HGA-STR和 SRN. 当前的文本行识别器为拥有更强的序列语义能力,模型多采用 ...

  9. openGemini v0.2.0版本正式发布:5大特性全面增强

    摘要:openGemini是华为云面向物联网和运维监控场景开源的一款云原生分布式时序数据库,兼容InfluxDB API,具有高性能.高并发.高扩展等特点. openGemini是华为云面向物联网和运 ...

  10. 用GaussDB(for Redis)存画像,推荐业务轻松降本60%

    摘要:用户画像存储是推荐业务核心,但开源Redis无法胜任.华为云高斯Redis是最佳存储选型,轻松降本60%,同时获得企业级高稳定性. 本文分享自华为云社区<华为云GaussDB(for Re ...