4 回答
TA贡献1827条经验 获得超4个赞
注意:Kube-DNS 命名约定为service.namespace.svc.cluster-domain.tld
,默认集群域为cluster.local
因此,只要服务位于同一集群中,您就可以将您的应用程序称为 ..svc。然后,您需要通过发出以下命令来检查应用程序正在侦听的端口:
kubectl -n <namespace> get svc
记下服务标识符和问题:
kubectl -n <namespace> get svc <identifier> -o yaml
这将列出服务清单,您可以在其中查看应用程序正在侦听哪个端口。
TA贡献2021条经验 获得超8个赞
如果同一个集群上有 2 个应用程序,那么它们可以通过 kubernetes 内置的 DNS 相互引用。
如果AppA需要引用AppB,那么只要你为AppB定义了一个Service,就可以用 来引用它<service>.<namespace>。在您的情况下,如果 AppB 在默认命名空间中运行,您可以调用AppB.default/api/app/getconfig.
端口部分可以通过您的服务定义进行管理。下面我使用端口 80,因此我不必在请求中手动指定端口
apiVersion: v1
kind: Service
metadata:
name: AppB
spec:
ports:
- name: "80"
port: 80
targetPort: 9090
selector:
select: AppB
更多信息:https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
TA贡献1796条经验 获得超4个赞
如果你想让它如此宽容(从任何集群到任何集群),那么你需要一个 DNS,在App B
.
我会考虑在某个地方进行硬编码。通过将其硬编码为 one ConfigMap
,您可以获得一些漂亮的实现。
TA贡献1946条经验 获得超4个赞
为您的应用程序 B 定义一个服务。然后您可以使用以下 url 从其他 pod 访问它:your-service-name : port /api/app/getconfig
- 4 回答
- 0 关注
- 152 浏览
添加回答
举报