Kubernetes StatefulSets创建具有稳定网络 ID 的内部 DNS 条目。文档在这里描述了这一点:
StatefulSet 中的每个 Pod 都从 StatefulSet 的名称和 Pod 的序号派生其主机名。构造主机名的模式是 $(statefulset name)-$(ordinal)。上面的示例将创建三个名为 web-0、web-1、web-2 的 Pod。StatefulSet 可以使用 Headless Service 来控制其 Pod 的域。此 Service 管理的域采用以下形式:$(service name).$(namespace).svc.cluster.local,其中“cluster.local”是集群域。在创建每个 Pod 时,它会获得一个匹配的 DNS 子域,格式为:$(podname).$(governing service domain),其中管理服务由 StatefulSet 上的 serviceName 字段定义。
我正在试验无头服务,这对于单个服务之间的通信非常有用,即web-0.web.default.svc.cluster.local
可以很好地连接和通信web-1.web.default.svc.cluster.local
。
有什么方法可以将它配置为在集群网络之外也可以工作,其中“cluster.local”被替换为“clustera.com”之类的东西?
我想给另一个kubernetes集群,我们称之为clusterb.com,访问原始集群(clustera.com)的各个服务;我希望它看起来像 clusterb 只是简单地击中web-1.web.default.svc.clustera.com
和之类的端点web-0.web.default.svc.clustera.com
。
这可能吗?我想访问单个服务,而不是负载平衡端点。