K8S服务发现(kube-dns)

2023-05-16

K8S中,Pod如果想也另外一个Pod通信,通常不会直接基础此Pod的IP(动态的),也不会记住此Pod形成的Service的IP(相对比较稳定,但也是动态的), 因为IP不好记,通常情况是通过其对应的Service名字来访问的。那么就需要一个服务,能够把Service的名字翻译为IP,此服务就是kube-dns。

目前K8S的kube-dns通常使用 CoreDNS, 运行在Master Node上。CoreDNS解析所有的Service的名字到期Service IP。CoreDNS本身有一个ClusterIP的Service,其后有多个Backend的pod。如下图:

kubedns service discovery

1、kubernetes的 Service Name被解析成其ClusterIP(是服务网络中的IP,是内部的,不是Node的外部地址)。

2、每个K8s网络在安装的时候指定一个Cluster Domain, 默认是:cluster.local

3、K8S中每个namespace对应一个子域

例如,默认的container的 /etc/resolv.conf:

`# cat /etc/resolv.conf`

`nameserver <kube-dns ClusterIP>`

`search <namespace>.svc.<cluster_domain> svc.<cluster_domain> <cluster_domain> <additional ...>`

`options ndots:``5`

如果搜索一个服务名字,例如account-service, 会自动带上.svc.<cluster_domain>, 这样就会默认搜索和自己再同一个namespace里面的服务名字。 如果你知道你的服务在不同的namespace里面,就可以加上namespace,例如搜索 account-service.prod,会搜索prod下的account-service.

kubedns with namespace

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

K8S服务发现(kube-dns) 的相关文章

  • 一台虚拟主机多个域 |通配符主机(共享主机)?

    我有以下任务 创建一个可通过 20 个不同域名访问的网站 相同的文件 相同的文件夹 相同的IP 问题 共享主机 这可以通过一个裸cname指向同一个公共子域来完成吗 或者我们是否需要一个静态IP 问题肯定是共享托管 我试图避免一一手动创建
  • 使用 Google App Engine 套接字进行 DNS 查询

    我正在尝试使用 Google App Engine 的新套接字支持来执行一些 DNS 查询 我在用着dnspython http www dnspython org 执行查询 并且代码在 GAE 之外运行良好 代码如下 class DnsQ
  • 当我可以直接访问IP时,为什么还需要xip io?

    xip io 欢迎屏幕显示如下 10 0 0 1 xip io 解析为 10 0 0 1 我可以直接使用IP 为什么还要经过xip io呢 是用域名而不是IP来访问服务器吗 主要用例是当您的应用程序需要支持多个子域时 以这些生产子域为例 w
  • nginx keepalive 和 dns 解析器

    我在 AWS 中有一个 nginx 实例 它具有上游应用程序层 对nginx有两个要求 活着 使用解析器动态解析上游 我能够使它们中的任何一个工作 这是使 keepalive 工作的配置 upstream backend server ap
  • DNS 与 GKE 内部负载均衡器

    我在 GKE 上有两个 kubernetes 集群 一个公共集群处理与外界的交互 另一个私有集群仅供内部使用 公共集群需要访问私有集群上的一些服务 我已通过以下方式将这些服务暴露给公共集群的 Pod内部负载均衡器 https cloud g
  • 将多个域指向 Nginx 中的一台虚拟主机

    基本上 我想将每个域名重定向到一个虚拟主机 即文档 http nginx org en docs http server names html看起来很清楚 server listen 80 server name domain1 com w
  • 完全合格的域名是否需要句点?

    我对 FQDN 完全合格域名 感到困惑 FQDN 是否需要以句点结尾 喜欢sun or sun tuc noao edu or sun tuc noao edu 有什么不同 IT 的工作原理 域名 系统 https technet micr
  • file_get_contents 失败并显示“getaddrinfo 失败:没有与主机名关联的地址”

    我正在尝试从另一台主机获取该页面 我按照 hph 手册所述 page file get contents http www example com echo page 但它失败了 在 apache 日志中我得到以下内容 Mon Oct 12
  • proxy_pass 不使用 /etc/hosts 解析 DNS

    在 Nginx 中proxy pass指令未使用以下命令解析 DNS etc hosts文件 有什么方法可以实现这种可能性 也许利用 Lua 作为最后的手段 如果您有一台带有 systemd 的服务器 您可以使用它附带的名称服务器 syst
  • Docker Weave 和 WeaveDNS 问题

    我在本地计算机上运行的小型 weave 网络上设置 weaveDNS 时遇到问题 目前 问题表现为以下事实 当我运行 weave status 时 我在输出中没有看到 DNS 部分 如故障排除部分中所建议的那样 http docs weav
  • 将 Google 域链接到 Amazon ec2 服务器

    我正在使用 Amazon EC2 实例来为 node js 应用程序提供服务 我最近通过以下方式购买了域名谷歌域名 https domains google com我想使用该域名来访问我的 node js 应用程序 Google Domai
  • 告诉 urllib2 使用自定义 DNS

    我想告诉urllib2 urlopen or a 定制开瓶器 使用127 0 0 1 or 1 来解析地址 我不会改变我的 etc resolv conf 然而 一种可能的解决方案是使用类似的工具dnspython查询地址和httplib构
  • 如何平衡Web服务器带宽使用?

    我有一个 drupal 商务网站 用户一直在其中上传大量图像 每个商业订单有 n 个图像 我想平衡网络流量以节省带宽 每个服务器的带宽是有限的 我无法使用传统的负载平衡解决方案 因为平衡器服务器的带宽也有限 我的数据库将位于单独的服务器上
  • .NET 中机器的域名?

    一定有一种简单的方法可以做到这一点 我不敢相信没有 我扫描了网络 发现有 20 种不同的方法来查找当前用户所在的域 但没有一种方法可以获取当前计算机的域 或工作组 在非托管 c 中 这是通过以下方式检索的 WKSTA INFO 100 bu
  • 如何在 Windows 中拦截 DNS 查询

    我正在研究如何在 Windows 中拦截 DNS 查询 以一种不需要将 DLL 注入到每个进程中的方式 并且理想情况下能够根据发出查询的进程做出决策 因此简单的 DNS 代理服务器是不够的 从表面上看 DNS 查询所采用的路径如下所示 某些
  • C# Dns.GetHostEntry() - 异常:没有这样的主机已知

    From 文档 https learn microsoft com en us dotnet api system net dns gethostentry view netframework 4 8 Dns GetHostEntry 将主
  • 如何从主机将主机名解析为 Docker 容器?

    我知道 Docker 在 127 0 0 11 上运行一个神奇的 dns 所以我想我会尝试 nslookup mycontainername 127 0 0 11 where mycontainername当然 是我尝试访问的容器的名称 然
  • NGinx 域名重定向

    假设我有一个名为 xyz co 的网站 我还有其他具有相同前缀的域名 例如 xyz com xyz it xyz co it 现在 nginx 与端口 80 的 nginx conf 中的 server name xyz co 配合得很好
  • Linux 中 AF_UNIX 数据报消息的最大大小是多少?

    目前我已达到 130688 字节的硬限制 如果我尝试在一条消息中发送更大的内容 我会收到一条消息ENOBUFS error 我已经检查过net core rmem default net core wmem default net core
  • Docker DNS 设置

    我尝试使用自定义网络和 dos 设置创建 docker 容器 docker网络创建 driver bridge opt com docker network bridge enable ip masquerade true opt com

随机推荐

  • alsa amixer 使用介绍

    alsa utils 提供的工具中 xff0c arecord 可以用来录音 xff0c aplay 可以用来播放 xff0c amixer 可以用来控制音量 增益等 amixer controls numid 61 34 iface 61
  • C# 自定义控件制作和使用实例

    C 自定义用户控件 xiongxuanwen 上篇 xff1a 控件制作 本例是制作一个简单的自定义控件 xff0c 然后用一个简单的测试程序 xff0c 对于初学者来说 xff0c 本例子比较简单 xff0c 只能起到抛石引玉的效果 我也
  • 二叉树搜索性能比较

    二叉树搜索性能分析 我想测试一下不同类型的二叉树搜索数据的性能是什么样的 众所周知 xff0c 二叉树有以下几种类型 xff1a BSTAVL红黑树 对于搜索数据 xff0c 具体来讲 xff0c 当树保持平衡时 xff0c 其搜索时间复杂
  • Kubernetes系统架构

    控制单元 xff1a kube apiserver xff1a 所有客户端通过kube apiserver访问cluster中的各种服务 xff0c 资源以及应用 etcd xff1a 键值对数据库 xff0c 存放所有的集群数据 kube
  • Kubernetes的网络模型(K8S集群中的三个网络)

    一个K8S的集群中至少有三个网络 xff1a 1 集群节点所在的网络 xff0c 这个网络就是你的主机所在的网络 xff0c 通常情况下是你的网络基础设施提供 如果你的node处于不同的网段 xff0c 那么你需要保证路由可达 如上图中的
  • K8S中的容器(Container)之间的网络接口

    Kubernetes集群中当一个容器启动时 xff0c 容器里面会启动一个以太网络接口 xff08 eth0 xff0c 分配的是Pod网络所用的IP地址 xff0c 通过一个虚拟以太网对 xff08 veth pair xff0c 连接到
  • K8S中Pod之间互相访问,外部访问如何访问Pod的网络连接原理

    Pod中的Container启动时 xff0c 会分配一个Pod网段中的IP地址 xff08 network cidr xff09 xff0c 但是这个IP地址是浮动的 xff08 ephemeral xff09 xff0c Pod重启 x
  • kubectl proxy 是什么

    大家都知道 xff0c 在K8S集群中的业务从外部默认是不能访问的 xff0c 正式环境中 xff0c 我们需要通过service xff0c 然后通过Node的ip地址和Loadbanlencer来访问 但是还有一些简单的方式 xff0c
  • kubectl port-forward命令访问集群中业务

    使用kubectl proxy可以访问Pod中的业务 xff0c 但是URL要加上namespace xff0c service等 xff0c 比较长 kubectl还提供了一个功能 xff0c 就是kubectl port forward
  • K8S服务发现(kube-dns) : CoreDNS

    K8S中 xff0c Pod如果想也另外一个Pod通信 xff0c 通常不会直接基础此Pod的IP xff08 动态的 xff09 xff0c 也不会记住此Pod形成的Service的IP xff08 相对比较稳定 xff0c 但也是动态的
  • Git 主干分支模型中的CI、CD ( 一)

    分支模型 主干分支模型如上图 xff0c 项目有个主干分支和若干个release分支 主干分支 xff1a 开发人员在主干分支上 xff08 通常情况下是master分支 xff09 push代码 xff0c push代码签需要在本地做re
  • Git主干分支模型中的CI、CD ( 二)

    分支模型 如果主干分支随意push引起较大的混乱 xff0c 可以考虑么个人开发是创建一个临时feature分支 如下图 xff1a 主干分支模型如上图 xff0c 项目有个主干分支和若干个release分支 xff0c 还有一些临时的fe
  • 持续集成CI, 持续发布CD,持续部署CD的意义及区别

    持续集成 xff0c 持续发布 xff0c 持续部署是自动化release pipeline的三个阶段 xff0c 通过这三个阶段 xff0c 团队把软件从创意 xff0c 生产为软件 xff0c 并发布给终端用户 这三个阶段关注产品的三个
  • linux系统常用命令总结

    简介 本文简单记录常用的linux系统shell命令 命令 linux系统常用shell命令如下表格 命令功能示例备注alias给命令起别名alias c 61 clear 取clear的别名为ccat显示文本内容cat file显示fil
  • 持续集成:CI

    持续集成 xff0c 持续发布 xff0c 持续部署是DevOps中三个实现手段很相似 xff0c 但是应用场景不同的三个概念 我接下来主要从应用场景来描述一下这三个场景的主要关注点 持续集成 xff1a 发生在开发阶段 xff0c 开发人
  • 持续发布(CD Continuous Deployment)

    持续发布是持续集成的延续 每次当我的代码被push到代码仓库后 xff0c 业务也应该被持续部署 如果使用持续发布 xff08 CD xff09 xff0c 发布过程是手动触发的 CD可以自动检查代码变化 xff0c 但是必须需要人工干预
  • 持续部署(CD, Continuous Deployment)

    持续也是持续集成的扩展 xff0c 和持续发布一样 xff0c 不同的是持续部署不需要手动干预 xff0c 直接自动部署到生产环境
  • Git中Feature分支模型中的CI,CD

    分支模型 主干分支 Master xff1a 随时可供在生产环境中部署的代码 xff0c 建议伴有标签 xff08 TAG xff09 Develop xff1a 每天需要提交和合并的代码 xff0c 功能逐渐完成的代码开发分支 辅助分支
  • DevSecOps及软件IT安全防护的开源扫描工具

    最近研究了一下热门话题 xff1a DevSecOps xff0c 明白了不少网络安全方面的概念和不少顶级的开源安全扫描工具 xff0c 现分享给大家 过去 xff0c 每个公司有一个信息安全防护的部门 xff0c 专门负责公司的IT信息安
  • K8S服务发现(kube-dns)

    K8S中 xff0c Pod如果想也另外一个Pod通信 xff0c 通常不会直接基础此Pod的IP xff08 动态的 xff09 xff0c 也不会记住此Pod形成的Service的IP xff08 相对比较稳定 xff0c 但也是动态的