将公共ip分配给在Kubernetes上运行的服务
我有一个应用程序(比如集成协议api) 该应用程序想要与其他应用程序通信,但该应用程序位于另一个网络上(我们称之为另一个集成协议)将公共ip分配给在Kubernetes上运行的服务,kubernetes,Kubernetes,我有一个应用程序(比如集成协议api) 该应用程序想要与其他应用程序通信,但该应用程序位于另一个网络上(我们称之为另一个集成协议) 问题是,在另一个集成协议端存在白名单,它只允许从选定的ip地址连接到白名单。 但我的集成协议api是固定的,在Kubernetes集群上运行,所以当我重新启动pod时,ip地址每次都在变化。 如何将公共和静态ip分配给Kubernetes吊舱 但我的集成协议api是固定的,在Kubernetes集群上运行,所以当我重新启动pod时,ip地址每次都在变化。如何将公共和
问题是,在另一个集成协议端存在白名单,它只允许从选定的ip地址连接到白名单。 但我的集成协议api是固定的,在Kubernetes集群上运行,所以当我重新启动pod时,ip地址每次都在变化。 如何将公共和静态ip分配给Kubernetes吊舱 但我的集成协议api是固定的,在Kubernetes集群上运行,所以当我重新启动pod时,ip地址每次都在变化。如何将公共和静态ip分配给Kubernetes吊舱
- 根据您的实际设置/需要,有几种方法,我将尝试在这里给出一些选项:
- 将pod绑定到特定节点,并通过服务公开该节点的IP地址。这将是沿着这些思路:
Pod应该位于同一名称空间中,通过节点选择器或关联规则绑定到该节点,并且具有与选择器中相同的标签,以便服务拾取它。在本例中,名为my node name的群集节点的IP地址应该是111.222.222.111,并且可以通过端口8080和该IP地址访问# Quick deployment/pod manifest node selector (affinity is better) ... spec: nodeSelector: kubernetes.io/hostname: my-node-name ... # Service manifest apiVersion: v1 kind: Service metadata: name: svc-myservice labels: app: myapp tier: frontend spec: selector: app: myapp tier: frontend ports: - name: tcpserviceport protocol: TCP port: 8080 targetPort: 80 externalIPs: - 111.222.222.111
- 如果适用,仅通过入口和白名单入口公共ip公开服务。根据您的命名空间分离,您将通过使用服务名称(在命名空间范围内)或FQDN的相应服务在入口中引用您的pod(无论它在哪里运行),例如:
<service-name>.<namespace-name>.svc.cluster.local
.svc.cluster.local
- 以下是kubernetes文档中一些方法的良好概述,以使其更具说明性:
- 将pod绑定到特定节点,并通过服务公开该节点的IP地址。这将是沿着这些思路:
- 根据您的实际设置/需要,有几种方法,我将尝试在这里给出一些选项:
- 将pod绑定到特定节点,并通过服务公开该节点的IP地址。这将是沿着这些思路:
Pod应该位于同一名称空间中,通过节点选择器或关联规则绑定到该节点,并且具有与选择器中相同的标签,以便服务拾取它。在本例中,名为my node name的群集节点的IP地址应该是111.222.222.111,并且可以通过端口8080和该IP地址访问# Quick deployment/pod manifest node selector (affinity is better) ... spec: nodeSelector: kubernetes.io/hostname: my-node-name ... # Service manifest apiVersion: v1 kind: Service metadata: name: svc-myservice labels: app: myapp tier: frontend spec: selector: app: myapp tier: frontend ports: - name: tcpserviceport protocol: TCP port: 8080 targetPort: 80 externalIPs: - 111.222.222.111
- 如果适用,仅通过入口和白名单入口公共ip公开服务。根据您的命名空间分离,您将通过使用服务名称(在命名空间范围内)或FQDN的相应服务在入口中引用您的pod(无论它在哪里运行),例如:
<service-name>.<namespace-name>.svc.cluster.local
.svc.cluster.local
- 以下是kubernetes文档中一些方法的良好概述,以使其更具说明性:
- 将pod绑定到特定节点,并通过服务公开该节点的IP地址。这将是沿着这些思路: