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

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

时间:2023-12-25 11:23:59浏览次数:38  
标签: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_"

总结

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

标签:redis,42,TCP,db8,2001,IPV6,POD,K8S
From: https://www.cnblogs.com/jinanxiaolaohu/p/17925730.html

相关文章

  • minikube 部署 k8s v1.28.3
    安装kubeadm、kubelet 和 kubectl此步骤可选下载kubeadm#wget-P/usr/local/binhttps://dl.k8s.io/release/v1.28.3/bin/linux/amd64/kubeadm下载kubelet#wget-P/usr/local/binhttps://dl.k8s.io/release/v1.28.3/bin/linux/amd64/kubelet下载kubectl#wget-......
  • Debian12 (雷池WAF SafeLine)通过 EUI64 固定 IPv6 地址后缀、获取无状态 SLAAC
    说明Debian12(KDE桌面)网络管理(IPv4、IPv6)已默认不再由内核直接管理,转而使用由NetworkManager管理。若要固定IPv6后缀并实现SLAAC无状态管理,则需要修改NetworkManager配置。图形界面配置网络配置完成后,检查网络地址ipaddshowenp3s0,公网和内网IPv6后缀......
  • k8s pod从私有仓库拉取镜像凭证配置
    方案一:通过Docker配置文件创建secret#配置.docker/config.json文件,包含了与DockerHub或其他私有仓库进行身份验证所需的凭据信息。[root@mac-25~]#cat~/.docker/config.json{ "auths":{ "registry.test.com":{ "auth":"dmlwZXIucm9ib3QuZG9ja2VyOlNUYW"......
  • k8s pv pvc
    如下代码测试本地的PVC:apiVersion:v1kind:PersistentVolumemetadata:name:mypvlabels:type:localspec:accessModes:-ReadWriteOncestorageClassName:local-pathcapacity:storage:10GihostPath:path:"/nfs"---apiVersion......
  • k8s集群搭建-2
    一、前面做过k8s的集群搭建主要是1.24版本一下的,1.24版本后"弃用docker"改用CRI了。所以这里就之前的集群安装做一下补充。老版集群地址:https://www.cnblogs.com/ll409546297/p/16718681.html二、k8s版本选择:docker-ce:20.10.24 cri-docker:0.3.8k8s:1.26.9。......
  • Flutter子工程编译,Ruby升级及Cocoapods安装问题集
    背景:工程为iOS原生与Flutter混合开发的工程,在编译Flutter子工程的过程中报了一个错,一度让我以为是ruby与pod的版本不兼容导致了一些奇奇怪怪的问题,随即来回折腾了Ruby环境升级与pod的升级安装。问题1:flutter子工程执行了flutterpubget,执行flutterbuildios--no-codesign时,报......
  • k8s组件、工作原理详解
    1.k8s组件  Master组件:kube-apiserver(APIServer):角色:提供集群的唯一入口,处理所有API请求。原理:接收来自客户端(kubectl、UI界面)和其他组件的请求,验证和授权请求,然后将其转发到其他组件或更新etcd中的数据。etcd:角色:分布式键值存储,保存整个集群的状......
  • K8s的常用命令
    本文旨在记录K8s使用过程中常用的CLI命令集,用作个人学习,不定期更新。1.创建资源一般创建资源会有两种方式:通过文件或者命令创建。#通过文件创建一个Deploymentkubectlcreate-f/path/to/deployment.yamlcat/path/to/deployment.yaml|kubectlcreate-f-#不过一般可......
  • k8s~ingress_service_endpoint_pod四壮士
    在Kubernetes中,Service和Endpoints是两个重要的概念,它们之间存在着密切的关系。Service:Service是Kubernetes中用于定义一组Pod的访问方式的抽象。通过创建Service,可以为一组具有相同标签的Pod提供统一的访问入口,使得客户端可以通过Service来访问这些Pod,而无需了解其具体的IP地......
  • K8S增加限制后的启动时间验证
    K8S增加限制后的启动时间验证背景前段时间看了下JVM载linux上面的启动时间,进行过一些验证.最近想着能够验证一下K8S上面的启动相关的信息所以就整理了一下.虽然没有特别好的结论,但是还是发现自己对JVM的启动和参数还是了解的不够深入.自己的几个启动参数1."-XX:......