如何获得Kubernetes GPC输出IP



我在Google Cloud中有Kubernetes群集。

我有一个外部数据库,我需要在数据库中设置受信任的IP范围。

我的问题是,我不知道我的kubernetes是什么。

我在哪里可以找到它?

我认为您正在发现来自Kubernetes的外发数据包的源IP被外部数据库信任。

  1. 当传出数据包源为nat'时,源IP通常是节点的IP。
  2. 有一种方法可以保留源IP地址,而不是通过使用服务清单中的service.spec.externalTrafficPolicy字段来保留源源。请注意,这种风险可能会导致流量不平衡。

    "externalTrafficPolicy": "Local"
    

    注意"externalTrafficPolicy": "Local"由于以下错误,NodePort在较早的K8S版本中存在问题:

    • https://github.com/kubernetes/kubernetes/issues/52096

    • https://github.com/kubernetes/kubernetes/issues/58338

    • https://github.com/kubernetes/kubernetes/issues/57922

如果要从外部连接到群集,则必须创建Service。当您创建它时,您将自动接收External-IP地址,您可以使用该地址从外部连接到群集。您可以在这里检查如何创建service
如果您需要多个IP地址,也可以创建endpoints(取决于您的需求(。

以后您只需要执行kubectl get service -o wide即可。您将收到以下输出:

$ kubectl get svc -o wide
NAME                  TYPE           CLUSTER-IP   EXTERNAL-IP     PORT(S)          AGE   SELECTOR
connection-to-my-db   LoadBalancer   10.0.3.84    34.76.XXX.148   8080:32165/TCP   84s   run=nginx
kubernetes            ClusterIP      10.0.0.1     <none>          443/TCP          17d   <none>

但是,对于该服务的Wile External-IP,将处于状态。您只需要等待1-2分钟才能收到它。

当您使用GCP时,您可以阅读有关映射外部服务的本文。

最新更新