是否可以通过主机名访问Pod?
我有一个主机名为my-pod-1
的Pod,需要连接到另一个具有主机名的Pod:
my-pod-2
。
在没有服务的情况下实现此目标的最佳方法是什么?
答案 0 :(得分:3)
根据您的描述,您想找到Headless-Service。您可以通过无头服务访问podName.svc
来访问pod。
按Pod IP地址访问Pod。
答案 1 :(得分:0)
我不确定“访问”一个Pod到底是什么意思,但是如果您需要以编程方式对某些Pod进行一些HTTP调用,则可以执行与libcluster nodejs库类似的操作。 / p>
这是一种小技巧,但基本上可以与从Kubernetes API查询端点列表(pod的IP)一起使用。
答案 2 :(得分:0)
为了通过名称(而不是 IP)从一个 Pod 连接到另一个 Pod, 用指向它的服务名称替换另一个 pod 的 IP。
例如, 如果 my-pod-1 (172.17.0.2) 正在运行 rabbitmq, 而 my-pod-2 (172.17.0.4) 正在运行一个 rabbitmq 消费者(假设在 python 中)。
在 my-pod-2 中而不是运行:
spec:
containers:
- name: consumer-container
image: shlomimn/rabbitmq_consumer:latest
args: ["/app/consumer.py","-p","5672","-s","172.17.0.2"]
使用:
spec:
containers:
- name: consumer-container
image: shlomimn/rabbitmq_consumer:latest
args: ["/app/consumer.py","-p","5672","-s","rabbitmq-svc"]
rabbitmq_service.yaml 在哪里,
apiVersion: v1
kind: Service
metadata:
name: rabbitmq-svc
namespace: rabbitmq-ns
spec:
selector:
app: rabbitmq
ports:
- name: rabbit-main
protocol: TCP
port: 5672
targetPort: 5672
施洛米