如何通过查询DNS srv记录获取kubernetes pod的IP地址?

2024-02-27

我正在尝试创建一个 kubernetes 作业,在其中运行“dig srv”查询来找出同一集群上运行的任何特定服务的所有 pod 的 IP 地址。

这可以实现吗?

我想对问题陈述进行更详细的阐述。集群上已经运行了一些服务。要求是有一个工具可以接受服务名称并列出属于该服务的所有 Pod 的 IP 地址。

我可以通过使用 kubectl 命令以及选择器和 jq 工具来做到这一点。但由于某些原因,我不允许在此环境中运行 kubectl 命令。

我想用dig srv查询以解析提供的服务名称的 Pod IP。


您可以使用无头服务(因此没有 ClusterIP,也没有内部负载平衡)。如果提供选择器,则可以查询服务的A记录。

See: https://kubernetes.io/docs/concepts/services-networking/service/#headless-services https://kubernetes.io/docs/concepts/services-networking/service/#headless-services

考虑以下示例:

一些 Pod 的部署:

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.16
        ports:
        - containerPort: 80

对于此部署,添加了以下无头服务:

apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  ports:
  - port: 80
    name: web
  clusterIP: None
  selector:
    app: nginx

现在可以使用 DNS 查询(集群内部)

$ kubectl run shell  -i --rm --tty --restart=Never --image=busybox
# nslookup -type=A nginx
Server:     10.96.0.10
Address:    10.96.0.10:53

Name:   nginx.default.svc.cluster.local
Address: 10.34.0.2
Name:   nginx.default.svc.cluster.local
Address: 10.42.0.2
Name:   nginx.default.svc.cluster.local
Address: 10.46.0.1

所有内部 Pod IP 都作为 DNS A 记录返回。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过查询DNS srv记录获取kubernetes pod的IP地址? 的相关文章

  • kubectl:描述与获取 -o <格式>

    在 kubectl 中 两者describe and get o
  • Kubernetes:用 Calico 替代 Flannel

    我是 Kubernetes 新手 我想尝试不同的 CNI 在我当前的集群中 我正在使用 Flannel 现在 我想使用 Calico 但我找不到清理 Flannel 和安装 Calico 的正确指南 您能指出正确的程序吗 Thanks Ca
  • 跨命名空间共享秘密

    有没有办法在 Kubernetes 中跨命名空间共享秘密 我的用例是 我的所有命名空间都有相同的私有注册表 并且我想避免为每个命名空间创建相同的秘密 秘密 API 对象驻留在命名空间中 它们只能由同一命名空间中的 pod 引用 基本上 您必
  • Kubernetes:是否可以在 Kubernetes 集群中通过单个请求访问多个 Pod

    我想清除 Kubernetes 命名空间中所有 Pod 中的缓存 我想向端点发送一个请求 然后该端点将向命名空间中的所有 Pod 发送 HTTP 调用以清除缓存 目前 我只能使用 Kubernetes 命中一个 pod 并且无法控制哪个 p
  • 多个 nginx 入口重写的默认路径

    这是我的情况 我在 kubernetes 入口 上 有两个 docker 镜像 一个专用于 Web 第二个专用于 api 在下一个配置下 在消息末尾 web将显示将进行一些调用的前端 api 那里一切都好 but 是 404 因为没有定义任
  • Kubernetes ConfigMap 大小限制

    Though resourceQuotas可能会限制命名空间中的配置映射的数量 是否有任何这样的选项来限制单个配置映射的大小 我不喜欢某些用户开始上传大型文本文件作为配置映射 ConfigMap etcd 支持的最大大小是多少 如果 etc
  • prometheus 节点实例列表

    是否可以使用 prometheus 获取节点实例列表 我有一个节点导出器 但我没有看到这样的指标 我们应该添加一个新的运算符吗 您可以使用kube 状态指标 https github com kubernetes kube state me
  • Kubernetes Pod 已终止 - 退出代码 137

    我需要一些关于 k8s 1 14 和在其上运行 gitlab 管道所面临的问题的建议 许多作业都会抛出退出代码 137 错误 我发现这意味着容器突然终止 集群信息 库伯内特版本 1 14 使用的云 AWS EKS 节点 C5 4xLarge
  • Ubuntu 16.04 中 kubeadm join 命令每次都会超时

    我正在使用 Ubuntu 16 04 Xenial 但我遇到了一个问题kubeadm加入时nodes to my master 在加入一个node to my master 我不断遇到超时问题 discovery Failed to req
  • Kubernetes 集群自动缩放器似乎不适用于 GKE?

    我定义了一个节点池 最小实例设置为 1 最大实例设置为 5 并启用了自动缩放 但它似乎并没有缩小规模 我已经封锁了一个节点 已经过去12个多小时了 没有待处理的 Pod 删除节点不会减少我自己的部署的副本数量 相关节点上运行以下 pod f
  • 在容器中运行多个相似的进程有意义吗?

    提供有关该问题的背景的简要背景 目前 我和我的团队正在将微服务迁移到 k8s 以减少维护多个部署工具和管道的工作量 我们计划迁移的微服务之一是 ETL Worker 它监听 SQS 上的消息并执行多阶段处理 它是使用 PHP Laravel
  • 如何为容器设置正确的 cpu 毫核?

    我想要优化配置 CPU 核心 而不会分配过多或不足 如何测量给定容器所需的 CPU 毫核 它还带来了一个问题 即代理将根据 CPU 消耗将多少流量发送到任何给定的 Pod 以便我们可以最佳地使用计算 目前我发送请求并进行监控 kubectl
  • Podman:如何解析使用 Kubernetes YAML 部署的 pod 的主机名

    我正在使用 podman 4 5 dev 我使用以下方式部署了两个 Pod podman kube 播放 foo yaml podman kube play bar yaml 我在文件中指定了 pod 的主机名 但它们不会在容器内得到解析
  • Spring Cloud Kubernetes + Spring Cloud Gateway:无法找到 k8s 服务的实例

    我正在使用 Spring Cloud Kubernetes Spring Cloud Gateway SCG 但在 GKE 上部署应用程序时遇到一些问题 SCG 找不到 k8s 服务 我仍然收到此错误 There was an unexpe
  • 入口和 SSL 直通

    我最近一直在使用 nginxdemo nginx ingress 控制器 据我了解 该控制器无法执行 SSL 直通 我的意思是 将客户端证书一直传递到后端服务进行身份验证 因此我一直通过标头传递客户端主题 DN 最终 我更喜欢 SSL 直通
  • Kubernetes Web UI(仪表板)缺少图表

    我已经使用 Kubeadm v1 6 安装了 Docker v1 13 和 Kubernetes 然后我安装了 Web UI 仪表板 我可以访问它 但缺少 CPU 内存使用图 为什么会发生这种情况 对我来说 安装后使用图就起作用了heaps
  • Kubernetes Ingress 在 nginx 反向代理后面运行

    我已经在可以从互联网访问的服务器上安装了 minikube 我创建了一个可用的 kubernetes 服务 gt kubectl get service myservice NAME CLUSTER IP EXTERNAL IP PORT
  • 如何防止两个卷声明在 Kubernetes 上声明同一个卷?

    在 GKE 上的 Kubernetes 集群上 我有以下持久卷声明 PVC kind PersistentVolumeClaim apiVersion v1 metadata name registry spec accessModes R
  • k8s书签解决什么问题?

    我正在尝试做什么 我正在尝试进行部署并监视 k8s 事件 直到部署准备好使用k8s节点API 手表 https github com kubernetes client javascript blob master examples typ
  • kubernetes,提示符在端口转发命令处冻结

    我想在在线指南之后设置从本地端口 节点 到 pod redis master 的端口转发库伯内特斯 https kubernetes io docs tasks access application cluster port forward

随机推荐

  • Linq 上下文对象未注册为 System.IDisposable 对象类型

    我正在尝试在 using 语句中使用我的 上下文 对象 它适用于一个项目 但在另一个项目上 我收到以下错误 using 语句中使用的类型必须是隐式可转换的 到 System IDisposable 当我提到 上下文 对象时 我指的是使用 L
  • .NET 4 ObjectCache - 我们可以挂钩“缓存过期”事件吗?

    我有一个简单的对象被缓存 如下所示 myCache Add someKey someObj policy Where myCache被声明为ObjectCache 但通过 DI 注入MemoryCache Default someObj是我
  • 如何调试Python内存故障?

    编辑 非常感谢在查找错误方面的帮助 但由于它可能很难找到 重现 任何一般的调试帮助也将不胜感激 帮助我帮助我自己 编辑2 缩小范围 注释掉代码 编辑3 看来lxml可能不是罪魁祸首 谢谢 完整的脚本是here http pastebin c
  • 将作为列表的字符串转换为适当的列表python

    如何将这个列表字符串转换为正确的列表 mylist KYS Q5Aa8 KYS Q5Aa9 我尝试过 但这不是我所期望的 print mylist split KYS Q5Aa8 KYS Q5Aa9 我想要这样的 KYS Q5Aa8 KYS
  • 使用 ng-content 在父组件中进行模板驱动的表单验证

    过去几天我一直在寻找答案 但找不到解决方案 我有一个基本页面组件 所有其他页面都扩展了它 因为涉及很多临时页面 在我的场景中 我创建了一个模态和一个 ng content 选择器 以便在需要时填充输入 Codes 基本页面列表 compon
  • 如何将 ValueConverter 应用于基于约定的 Caliburn.Micro 绑定示例?

    我看到了以下问题 如何将值转换器应用到基于约定的 caliburn 微绑定 https stackoverflow com questions 6581674 how do you apply a valueconverter to a c
  • UICollectionView执行BatchUpdates导致旋转设备时collectionview错位

    如果我旋转设备 同时使用 reloadItemsAtIndexPaths 执行 CollectionView PerformBatchUpdate 集合视图将被放错位置 但视图仍将保持在恒定位置 要简单地解决此问题 setting UIVi
  • 如何从 SQL 中的连接中删除重复的列

    我有以下代码 SELECT FROM customer INNER JOIN SELECT customerid newspapername enddate n publishedby FROM newspapersubscription
  • 用于复制到 Redshift 的 Java sdk

    是否可以通过 java jdbc 连接触发从 S3 到 Redshift 的复制命令 例子 从 s3 凭证复制测试 aws access key id xxxxxxx aws secret access key xxxxxxxx 是的 尝试
  • Button.findViewById() 上的 NullPointerException

    我按照教程在 Android Studio 中创建了一个对话框 我的代码在 Java 文件中没有显示错误 但显示 不幸的是应用程序已停止工作 我不知道为什么 我的java文件 import android app AlertDialog i
  • 尝试在 Android Studio 中重命名包,但显示文件 (com) 已存在

    我在 Android Studio 中创建了一个新应用程序 一切都很顺利 我创建了一个签名的 apk 但是我在 Play Store 上发布了一个旧应用程序 我设法找到了那个旧应用程序的 key keystore 这也是我最初在 Eclip
  • 如何将两个坐标列转换为一列 Shapely 点

    我正在尝试对整个列执行操作 但出现类型错误 我想创建一个包含匀称点 https shapely readthedocs io en latest manual html points crime df crime df crime df L
  • 如何使用 next 在 AWS S3 上托管静态文件?

    我来自 Django 背景 其中静态文件主要存储在 S3 上 我试图了解它在 NodeJS 上的工作原理 因为我想将应用程序从 Django React 迁移到 NodeJS NextJS ExpressJS React 我不知道如何以及在
  • 如何在 Unity3D 中使用 NVIDIA FleX 制作软体果冻球体?

    我目前正在使用NVIDIA Flex 封装 https assetstore unity com packages tools physics nvidia flex for unity 1 0 beta 120425在 Unity3D 中
  • 如何绘制多个图表并使用 [matplotlib] 中的导航按钮

    最新版本matplotlib自动在下面创建导航按钮graph 然而 我在互联网上看到的例子都只是展示如何创建一个图表 从而使按钮 Next and Previous 无用 如何绘制多个图表并使用这些按钮 例如我想做graph for sin
  • 如何将事件参数记录到 Firebase 控制台 [重复]

    这个问题在这里已经有答案了 我刚刚开始使用 Firebase 进行应用程序分析 在尝试查看与我的事件关联的自定义参数时遇到一些问题 问题是 在创建受众时 我可以看到所有事件 但无法深入查看参数 没有显示与事件关联的参数 例如 我想注册 将零
  • Django 模板中的聚合?

    我正在思考这个概念Django 聚合 http docs djangoproject com en dev topics db aggregation 我不太 明白 如何在我的案例中使用它们 基本上 我的模型中有一个三层对象层次结构 最低的
  • 我应该进行外观改变吗?

    我经常想将一些小的编码风格更改提交到源代码管理 但现在更改日志充满了那些不影响代码功能的更改 下次我必须修复一些小问题时该怎么办 例如 删除和排序 using 在 NET 中 在 Python 中导入 在 C 中包含 正确的缩进 间距和换行
  • 是否可以在C++中实现无锁映射

    我们正在开发一个基于C S的网络应用程序 我们发现std map添加了太多的锁 导致服务器的性能变差 我想知道是否可以实现无锁映射 如果可以 如何实现 那里有开源代码吗 编辑 实际上我们使用std map来存储socket信息 我们根据so
  • 如何通过查询DNS srv记录获取kubernetes pod的IP地址?

    我正在尝试创建一个 kubernetes 作业 在其中运行 dig srv 查询来找出同一集群上运行的任何特定服务的所有 pod 的 IP 地址 这可以实现吗 我想对问题陈述进行更详细的阐述 集群上已经运行了一些服务 要求是有一个工具可以接