gpt4 book ai didi

kubernetes - 如何在服务中的 pod 之间进行通信?

转载 作者:行者123 更新时间:2023-12-02 11:51:08 34 4
gpt4 key购买 nike

假设我有一个包含两个 pod 的服务。其中一个 pod 是 HTTP 服务器,另一个 pod 需要访问该 pod 上的 REST 端点。是否有第二个 pod 可以用来寻址第一个 pod 的主机名?

最佳答案

我假设当您说“服务”时,您不是指 Service 对象的 Kubernetes 词典,否则 Service 中的两个 Pod 将是相同,所以让我们首先梳理一下“服务”在 Kubernetes 领域中的含义。

您必须创建一个额外的 Kubernetes object called a Service获取 HTTP 服务器的 Pod 的主机名。创建 Service 时,您将定义一个 .spec.selector 指向 HTTP 服务 Pod 上的一组标签。举个例子,假设标签是 app: nginx。该 Service 对象的名称将成为内部 DNS 记录,可供第二个 Pod 查询。

一个简化的例子:

apiVersion: v1
kind: Pod
metadata:
name: http-service
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
---
kind: Service
apiVersion: v1
metadata:
name: my-http-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80

现在您的第二个 Pod 可以通过 Service 名称 my-http-service 向 HTTP 服务发出请求。

值得一提的是,Kubernetes 最佳实践规定这些 Pod 由 Controller 管理,例如 Deployment s 或 ReplicaSet s 出于各种原因,包括应用程序的高可用性。

关于kubernetes - 如何在服务中的 pod 之间进行通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51011689/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com