如何在 kubernetes 部署规范中从 ingress-nginx-controller 引用 EXTERNAL-IP?
Posted
技术标签:
【中文标题】如何在 kubernetes 部署规范中从 ingress-nginx-controller 引用 EXTERNAL-IP?【英文标题】:How to reference the EXTERNAL-IP from ingress-nginx-controller in a kubernetes deployment specification? 【发布时间】:2021-07-17 01:39:34 【问题描述】:作为一名 kubernetes 新手,我已经成功部署了一个带有 ingress-nginx 的应用程序。但现在在我的应用程序部署规范中,我需要引用 ingress-nginx-controller 的 EXTERNAL-IP(通过 kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.47.0/deploy/static/provider/cloud/deploy.yaml
创建)。
我尝试在我的部署规范中执行以下操作,
- name: HOSTIP
valueFrom:
fieldRef:
fieldPath: status.hostIP
但是当我执行kubectl get svc -n ingress-nginx
时,它返回的 IP 地址与表中的 EXTERNAL-IP 地址值完全不同。
有没有办法使用 valueFrom
语法来引用 ingress-nginx-controller EXTERNAL-IP 值,或者这是不可能的?如果没有,还有什么方法可以让部署的 pod 获得 ingress-nginx-controller 的 EXTERNAL-IP 值?
【问题讨论】:
【参考方案1】:由于The downward API 的限制,您无法使用valueFrom
执行此操作。请查看this answer 了解更多详情。去年提供了所有需要的链接。
您可以将此值存储在 configmap 中,并使用脚本定期更新。检查Kubernetes - Pass Public IP of Load Balance as Environment Variable into Pod 是否已准备好脚本。
【讨论】:
以上是关于如何在 kubernetes 部署规范中从 ingress-nginx-controller 引用 EXTERNAL-IP?的主要内容,如果未能解决你的问题,请参考以下文章
Docker ENTRYPOINT 和 Kubernetes 容器规范命令之间的区别?