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

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

时间:2024-01-03 14:06:46浏览次数:37  
标签:service redis 42 TCP db8 2001 IPV6 POD K8S

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_"

总结

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



标签:service,redis,42,TCP,db8,2001,IPV6,POD,K8S
From: https://blog.51cto.com/u_11529070/9084312

相关文章

  • k8s + 微服务,搭建过程遇到的坑
     ingress未添加注解导致配置未加载到ingress-controller,无法域名访问服务 mysql服务异常Causedby:org.springframework.jdbc.CannotGetJdbcConnectionException:FailedtoobtainJDBCConnection;nestedexceptioniscom.mysql.jdbc.exceptions.jdbc4.CommunicationsExcept......
  • 一文带你深入理解K8s-Pod的意义和原理
    本文分享自华为云社区《深入理解K8s-Pod的意义和原理》,作者:breakDawn。在Kubernetes概念中,有以下五种概念:容器container:镜像管理的最小单位生产任务Pod:容器组,资源调度最小单位节点Node:对应集群中的单台机器,是硬件单元的最小单位集群Cluster:对应整个集群,是处理元数据的最小单位集群......
  • K8s攻击案例:Dashboard未授权访问
    Dashboard在配置不当情况下有可能会产生未授权访问的情况,从而有可能进一步造成接管集群。(1)攻击场景在deployment中开启enable-skip-login,那么就可以在登录界面点击跳过登录进dashboard。将默认的Kubernetes-dashboard绑定cluster-admin,拥有管理集群管权限kubectlcreatecl......
  • IPv6与VoIP
    1.各种互联网的名称IANA:互联网数字分配机构 ISP :互联网服务提供商 FDDI:光纤分布式接口 ATM:异步传输模式 CIDR:无类别域间路由2.为什么要使用和研究IPv6?①地址危机②QoS(服务质量)和性能问题③配置复杂④安全问题⑤骨干路由表膨胀⑥移动性支持不够3.针对地址危机临时的解决方......
  • day25 如何做个“有价值”的日志分析平台-多种日志收集方案-基于K8S架构的EFK日志平台
    9.1、如何做个“有价值”的日志分析平台基于Kubernetes这种架构的日志收集方案是一个复杂而全面的过程。需要考虑不同应用类型的日志规范,日志输出方式,应用场景,日志平台选择,架构优缺点,日志监控和性能优化等其他特殊的场景。在下面的详细分析中,将逐层讨论这些方面。一、日志规范......
  • 在k8s中快速搭建基于Prometheus监控系统
    公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享前言K8s本身不包含内置的监控工具,所以市场上有不少这样监控工具来填补这一空白,但是没有一个监控工具有prometheus全家桶使用率高,因为它由CNCF维护,已经成为了监控k8s集群的事实上的行业标准,下面介......
  • k8s patch测试
    1.编写patch.sh,下文件为yaml文件模板#用户名username=bqadm#是否挂载可写目录iswrite="true"container_name=$(kubectl-nbigquantget$(kubectlgetdeployment-lusername=${username}-nbigquant-oname)-ojsonpath='{.spec.template.spec.containers[0].nam......
  • k8s常用命令操作
    获取所有节点的污点信息kubectlgetnodes-o='custom-columns=NodeName:.metadata.name,TaintKey:.spec.taints[*].key,TaintValue:.spec.taints[*].value,TaintEffect:.spec.taints[*].effect'获取集群内的所有域名kubectlgetingress-A-o=custom-columns=Host:.spec.rul......
  • ngix+keepalived+k8s
    一.nginx的安装1.nginx安装包下载在官网https://nginx.org/en/download.html下载linux的tar包选择合适的版本如https://nginx.org/download/nginx-1.24.0.tar.gz2.安装依赖yuminstallgcc-c++pcrepcre-develzlibzlib-developensslopenssl-devel3.安装nginxtar-x......
  • k8s限速队列不通过Get方法判断队列是否关闭
    go.modmoduleuse-k8s-queuego1.19requirek8s.io/client-gov0.28.2require( github.com/go-logr/logrv1.2.4//indirect golang.org/x/timev0.3.0//indirect k8s.io/apimachineryv0.28.2//indirect k8s.io/klog/v2v2.100.1//indirect k8s.io/utils......