kubernetes - 如何从 Kubernetes 中的另一个命名空间访问服务
问题描述
我有下面的 zipkin 部署和服务,您可以看到 zipkin 位于监视命名空间下,我在每个在默认命名空间下运行的 pod 中有一个名为Zipkin_URL的 env 变量,这个变量采用这个 URL http://zipkin: 9411/api/v2/spans但由于 zipkin 在另一个命名空间中运行,我尝试了这个:
http://zipkin.monitoring.svc.cluster.local:9411/api/v2/spans
我也试过这种格式:
http://zipkin.monitoring:9411/api/v2/spans
但是当我检查我的豆荚的日志时,我看到连接被拒绝异常
当我执行到我的一个 pod 并尝试 curl http://zipkin.tools.svc.cluster.local:9411/api/v2/spans
它向我展示了强制参数缺失:serviceNameroot
这是 zipkin 资源:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: zipkin
namespace: monitoring
spec:
template:
metadata:
labels:
app: zipkin
spec:
containers:
- name: zipkin
image: openzipkin/zipkin:2.19.3
ports:
- containerPort: 9411
---
apiVersion: v1
kind: Service
metadata:
name: zipkin
namespace: monitoring
spec:
selector:
app: zipkin
ports:
- name: http
port: 9411
protocol: TCP
type: ClusterIP
解决方案
您所拥有的是正确的,您的问题可能不是 DNS。您可以通过仅进行 DNS 查找并将其与服务的 IP 进行比较来确认。
推荐阅读
- python - 在 iframe python selenium shopify 支付中输入值
- python - 在 python 字典中指定比较器函数
- azure-devops - 为什么 Azure DevOps 会在日志输出中屏蔽一些非机密变量?
- python - 无法使用 Pygame 加载背景图像
- javascript - Javascript 无法在承诺中找到我的功能
- java - 如何防止 JScrollPane 通过其 JTextArea 增长而不使其固定大小?
- javascript - Websocket连接错误:返回101,但不升级
- c++ - 基于模板的条件类成员
- typescript - 在指定其他类型时,如何让 TypeScript 推断受约束的泛型类型的值?
- javascript - 传递一个值来访问对象 - Mongodb