Kubernetes Ingress状态上报机制
文章目录
获取Ingress状态信息
使用kubectl get ingress命令在获取Ingress信息时
|
|
你有没有留意ADDRESS列的含义是什么?它是如何来的?能不能修改?
这其实是靠Ingress状态的上报机制来实现的。
Ingress 状态上报原理
官方的nginx-ingress-controller默认启动参数大概是这样:
|
|
其中--publish-service参数的作用就是用来上报状态用的。
它的完整代码在这里 ,其中主要逻辑在statusAddressFromService这个函数:
|
|
函数逻辑也很简单,根据--publish-service指定Service的类型获取对应的IP或Hostname,然后把信息上报给API Server:
|
|
如何自定义上报时的IP
如果想自定义Ingress上报时的IP也很容易,给nginx-ingress-controller加上--publish-status-address启动参数就行。
| Argument | Description |
|---|---|
| –publish-status-address string | Customized address to set as the load-balancer status of Ingress objects this controller satisfies. Requires the update-status parameter. |
参考
https://github.com/nginxinc/kubernetes-ingress/blob/master/docs/report-ingress-status.md
https://kubernetes.github.io/ingress-nginx/user-guide/cli-arguments/
文章作者 XniLe
上次更新 2023-10-10