我有这样的事情:
POD-1
|
-------------------------
?|? ?|? ?|?
service-1 service-2 service-3
Run Code Online (Sandbox Code Playgroud)
如何从pod中的服务器与服务后面的pod中的其他服务器进行通信?
您需要为要访问的窗格提供服务.您只需使用pod的相应服务的内部端点即可.
例如,让我们认为有一个mysql与其对应的pod和服务mysql-svc,类型为ClusterIP暴露端口3306,如下所示.
apiVersion: v1
kind: Service
metadata:
name: mysql-svc
spec:
ports:
- name: db-port
protocol: "TCP"
port: 3306
targetPort: 3306
selector:
app: mysql
Run Code Online (Sandbox Code Playgroud)
并且有一个单独的python应用程序pod使用该mysql.你可以使用mysql://mysql-svc:3306/dbName内部端点访问pod内的mysql服务器mysql-svc
如果您的pod位于两个不同的命名空间(命名空间中的mysql和dev命名空间中的python app qa),则可以使用它mysql-svc.dev.svc.cluster.local.
如果您有其他带有 pod 的服务,您可以使用集群内部 DNS 轻松访问:
对于foo命名空间中bar的服务,url 是foo.bar.svc.cluster.local. 最后一部分cluster.local可以根据您部署集群的方式进行更改。kops允许您为其指定不同的值。
在同一个命名空间内通信时,你甚至不需要bar你可以只做http://foo/或foo:port使用不同的协议(如 mongo/rabbit/postgrest 等)
| 归档时间: |
|
| 查看次数: |
2759 次 |
| 最近记录: |