我有这样的事情:
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 次 |
最近记录: |