我在Google Cloud中有Kubernetes群集。
我有一个外部数据库,我需要在数据库中设置受信任的IP范围。
我的问题是,我不知道我的kubernetes是什么。
我在哪里可以找到它?
我认为您正在发现来自Kubernetes的外发数据包的源IP被外部数据库信任。
- 当传出数据包源为nat'时,源IP通常是节点的IP。
-
有一种方法可以保留源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时,您可以阅读有关映射外部服务的本文。