微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过 Kubernetes 中的多个内部地址到达服务

如何解决通过 Kubernetes 中的多个内部地址到达服务

认情况下,在 Kubernetes 中,在部署服务时会创建一个内部地址。可以通过以下地址访问此服务:my-svc.my-namespace.svc.cluster-domain.example (doc reference)

我想在部署此服务时为其添加更多内部地址(我使用 helm 部署我的服务)。我希望能够通过 my-svcmy-svc-1my-svc-2 访问相同的服务。我想知道是否可以将这些别名添加到部署过程中,以便它自动为同一地址生成多个条目。

作为一种解决方法,我读到我可以使用 coredns添加 CNAME 条目,但这绝对不是最佳选择,因为我不知道在部署服务时是否可以自动将这些条目添加coredns 中。如果可能的话,我很乐意知道如何实现。

解决方法

我还没有尝试过,但也许您可以为 my-svc-1、my-svc-2 添加服务类型:ExternalName 并让它们指向 my-svc.my-namespace.svc.cluster-域.示例。

请参阅此处的文档:service-external-name

,

Manuel 提到的解决方案是正确的。我测试了它并且它有效。我使用了以下 yaml:

常规服务公开:

apiVersion: v1
kind: Service
metadata:
  labels:
    run: my-svc
  name: my-svc
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: my-svc

外部名称服务:

---
apiVersion: v1
kind: Service
metadata:
  name: my-svc-1
spec:
  type: ExternalName
  externalName: my-svc.default.svc.cluster.local
---
apiVersion: v1
kind: Service
metadata:
  name: my-svc-2
spec:
  type: ExternalName
  externalName: my-svc.default.svc.cluster.local

正如预期的那样,ExternalName 类型的服务会创建指向 my-svc 的 CNAME 记录

$ dig my-svc-2 +search

;; QUESTION SECTION:
;my-svc-2.default.svc.cluster.local. IN A

;; ANSWER SECTION:
my-svc-2.default.svc.cluster.local. 13 IN CNAME my-svc.default.svc.cluster.local.
my-svc.default.svc.cluster.local. 13 IN A       10.100.222.87

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?