- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用的是Google容器引擎,可以在集群中创建容器和服务。但是,当我尝试使用DNS功能(skydns)查找我的服务时,却找不到任何内容。如果我登录到非主节点,则可以看到DNS容器,并且可以使用“host”命令进行DNS查找(随apt-get安装)。但是我无法通过其名称找到我的服务。它将kubernetes.local与服务的IP相关联。实际上,它将kubernetes.local与我的每一项服务的IP关联(我有9个)。但是它不与服务名称“my-service-name”关联。
任何人都知道使它起作用的诀窍吗?创建服务并不会导致skydns创建DNS条目(也许有某种魔术使之起作用)...或者我只是一无所知(魔术性较低,也许更有可能)。
我不知道
b
最佳答案
为了使Kubernetes中的DNS从Pod内更方便,需要涉及一些魔术。让我尝试解释一下。
在Kubernetes中构造DNS名称的方式是<service-name>.<namespace>.kubernetes.local
。这就是为什么kubernetes.local
是在您的节点上解析的原因,而my-service-name
不是。假设您的服务是在默认 namespace 中定义的(除非您在其他 namespace 中明确创建了该服务),否则您应该能够在my-service-name.default.kubernetes.local
处解析它。
围绕DNS的文档假定您关心如何从pod内而不是直接在主机上解析服务名称。在您的Pod中,应该将DNS设置为首先搜索您相对于default.kubernetes.local
和kubernetes.local
指定的名称,这意味着从群集中不是kube-dns的任何Pod(经过特殊处理)中,您应该能够解析您的使用my-service-name
或my-service-name.default.kubernetes.local
的服务。
如果您想尝试一下,请使用docker exec附加到群集的一个流畅的pod上,然后尝试从容器中查找服务。
请注意,在版本0.17.0和0.18.0之间, namespace 从kubernetes.local
更改为cluster.local
,因此,如果您的第一次尝试不起作用,请检查群集的版本(使用kubectl version
)。
关于kubernetes - skydns麻烦-我一定不能 'get it'吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30206371/
我正在尝试开发右边框/Angular 具有特定 Angular (30°) 的表格。我见过一些类似的解决方案,但它们都无法在一定程度上发挥作用。如果我想从 30° 改变到 20°,我不想花太多力气。
我是一名优秀的程序员,十分优秀!