我有一个应用程序需要使用 FTP 从大型机获取数据。
每个 MF 帐户都连接到一个特定的 IP,每当我尝试从 pod 连接时,我都会通过不同的 IP 进行连接,因此未经授权。
如何将 pod 连接到 OpenShift 云环境中的静态 IP?
答案1
可以配置一个项目的静态出口 IP,但这通常需要集群管理员权限才能进行设置。
答案2
我对 OpenShift 不太熟悉,尽管它在 Kubernetes 中就是这样工作的。
如果您希望目标 pod 看起来好像有一个静态 IP 地址,则可以将其隐藏在服务或入口后面。
如果您希望源 pod 看起来好像具有静态 IP 地址,那么简而言之,您不应该依赖 pod IP,因为 pod 不会永远存在,而新的 pod 可能会被分配不同的 IP 地址。
不过,这条规则也有例外。在/ect/kubernetes/manifests
Kubernetes 节点上使用 yaml 文件定义的静态 pod 以及作为 的一部分运行的 podDaemonSet
将具有它们所运行节点的 IP 地址。请参阅在 Docker Desktop 上运行的 pod 的示例 IP:
➜ ~ k get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
docker-desktop Ready control-plane 40d v1.27.2 192.168.65.4 <none> Docker Desktop 5.15.49-linuxkit-pr docker://24.0.2
➜ ~ k get pods -o wide -A
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
ingress-nginx ingress-nginx-admission-create-9m9rc 0/1 Completed 0 33d <none> docker-desktop <none> <none>
ingress-nginx ingress-nginx-admission-patch-9phx7 0/1 Completed 1 33d <none> docker-desktop <none> <none>
ingress-nginx ingress-nginx-controller-778d4c6454-v6mlt 1/1 Running 24 (2m49s ago) 33d 10.1.3.95 docker-desktop <none> <none>
kube-system coredns-5d78c9869d-bqxn2 1/1 Running 24 (2m49s ago) 33d 10.1.3.96 docker-desktop <none> <none>
kube-system coredns-5d78c9869d-rxwqs 1/1 Running 24 (2m49s ago) 33d 10.1.3.94 docker-desktop <none> <none>
kube-system etcd-docker-desktop 1/1 Running 88 (2m49s ago) 40d 192.168.65.4 docker-desktop <none> <none>
kube-system kube-apiserver-docker-desktop 1/1 Running 84 (2m49s ago) 40d 192.168.65.4 docker-desktop <none> <none>
kube-system kube-controller-manager-docker-desktop 1/1 Running 84 (2m49s ago) 40d 192.168.65.4 docker-desktop <none> <none>
kube-system kube-proxy-4lc7r 1/1 Running 31 (2m49s ago) 40d 192.168.65.4 docker-desktop <none> <none>
kube-system kube-scheduler-docker-desktop 1/1 Running 67 (2m49s ago) 40d 192.168.65.4 docker-desktop <none> <none>
kube-system metrics-server-5fb5598cf8-n5swd 1/1 Running 18 (2m49s ago) 24d 10.1.3.93 docker-desktop <none> <none>
kube-system storage-provisioner 1/1 Running 59 (2m11s ago) 40d 10.1.3.92 docker-desktop <none> <none>
kube-system vpnkit-controller 1/1 Running 31 (2m49s ago) 40d 10.1.3.91 docker-desktop <none> <none>
这显然假设真正的源 IP 不会通过 NAT 等被隐藏。