如何在 OpenShift 中为 pod 创建静态 IP?

如何在 OpenShift 中为 pod 创建静态 IP?

我有一个应用程序需要使用 FTP 从大型机获取数据。

每个 MF 帐户都连接到一个特定的 IP,每当我尝试从 pod 连接时,我都会通过不同的 IP 进行连接,因此未经授权。

如何将 pod 连接到 OpenShift 云环境中的静态 IP?

答案1

可以配置一个项目的静态出口 IP,但这通常需要集群管理员权限才能进行设置。

答案2

我对 OpenShift 不太熟悉,尽管它在 Kubernetes 中就是这样工作的。

如果您希望目标 pod 看起来好像有一个静态 IP 地址,则可以将其隐藏在服务或入口后面。

如果您希望源 pod 看起来好像具有静态 IP 地址,那么简而言之,您不应该依赖 pod IP,因为 pod 不会永远存在,而新的 pod 可能会被分配不同的 IP 地址。

不过,这条规则也有例外。在/ect/kubernetes/manifestsKubernetes 节点上使用 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 等被隐藏。

相关内容