Kubernetes 在Google容器引擎上访问SkyDNS etcd API以添加自定义记录

Kubernetes 在Google容器引擎上访问SkyDNS etcd API以添加自定义记录,kubernetes,google-cloud-platform,google-kubernetes-engine,etcd,Kubernetes,Google Cloud Platform,Google Kubernetes Engine,Etcd,我正在GKE上运行一个kubernetes集群,我想从一个服务吊舱中发现并访问ETCDAPI。我想这样做的原因是向SkyDNS层次结构添加密钥 是否有一种方法可以从应用程序吊舱中发现(或创建/公开)GKE集群上的etcd服务API端点并与之交互 我们有物联网网关节点,通过SSL VPN连接到我们的云服务,以便于管理和通信。当设备连接到VPN时,我想用设备的主机名和VPN IP地址更新SkyDNS中的条目 旋转另一个群集DNS设置是没有意义的,因为SkyDNS在这方面非常有用,而且集群中的所有PO

我正在GKE上运行一个kubernetes集群,我想从一个服务吊舱中发现并访问ETCDAPI。我想这样做的原因是向SkyDNS层次结构添加密钥

是否有一种方法可以从应用程序吊舱中发现(或创建/公开)GKE集群上的etcd服务API端点并与之交互

我们有物联网网关节点,通过SSL VPN连接到我们的云服务,以便于管理和通信。当设备连接到VPN时,我想用设备的主机名和VPN IP地址更新SkyDNS中的条目

旋转另一个群集DNS设置是没有意义的,因为SkyDNS在这方面非常有用,而且集群中的所有POD都已自动配置为首先查询它

我正在GKE上运行一个kubernetes集群,我想从一个服务吊舱中发现并访问ETCDAPI。我想这样做的原因是向SkyDNS层次结构添加密钥

听起来您希望直接访问支持DNS服务的etcd实例(而不是支持Kubernetes apiserver的etcd实例,后者是独立的)

是否有一种方法可以从应用程序吊舱中发现(或创建/公开)GKE集群上的etcd服务API端点并与之交互

DNS服务的etcd实例是DNS服务的一个内部实现细节,不是为直接访问而设计的。事实上,它实际上只是
kube2sky
二进制文件和
skydns
二进制文件之间的一种方便的通信机制,这样
skydns
就不需要了解它是在Kubernetes集群中运行的。我不建议尝试直接访问它

此外,此etcd实例甚至不会出现在Kubernetes 1.3安装中,因为新的DNS二进制文件将取代
skydns

我们有物联网网关节点,通过SSL VPN连接到我们的云服务,以便于管理和通信。当设备连接到VPN时,我想用设备的主机名和VPN IP地址更新SkyDNS中的条目


如果创建新服务,则会导致群集DNS创建一个新条目,将服务名称映射到支持该服务的端点。如果您在每次新的物联网设备注册时都以编程方式添加服务,而不是直接配置DNS,那会怎么样?

有趣的是,我没有意识到SkyDns使用了它自己的etcd实例,但它似乎不像etcd卷曲那样是一个impl细节(或者您的意思是使用的特定DNS服务器是一个细节)。另外,kube dns不只是包裹天空的dns插件的名称吗?我确实尝试为设备创建服务,但是kubernetes为服务创建了一个群集ip,我找不到一种方法来传输设备的VPN ip,以便kube2sky创建一个正确的DNS条目。这是我的第一次k8s体验,请原谅我在1.2及更早版本中的新手,群集DNS是由
kube2sky
etcd
skydns
组成的三个组。从1.3开始,集群DNS分为两部分:
kubedns
dnsmasq
。您可以创建没有群集IP的服务(请参阅),也可以手动设置服务的终结点。谢谢您提供的信息。看到dnsmasq的使用很酷,如果我不能让它工作,我正在考虑使用它。我看到了headless服务的东西,但是文档太轻了,看起来它在没有选择器的情况下无法工作。如果我创建一个selectorless headless服务,kubedns会注册端点IP吗?看看这个,哇,这就是它的工作原理!谢谢你花时间帮我做这件事!现在,我正试图找到最好的方法,将这些信息整合成有用的信息,供未来的搜索者使用。你介意我编辑你的答案吗,或者我可以创建一个新的答案(我想给你一个接受的答案)?请随意编辑我的答案,让它更清楚。如果文档很简单,并且您愿意帮助修复它(请参阅),那么这可能比清理这个SO答案更有用。:)