我有一个应用程序,我经常需要在其中添加新域。现在,每次添加或删除域时,我都需要添加或删除入口。
我想把它自动化。
我有一个用户界面,用户有一个注册域列表,可以向应用程序添加域。所以当用户设置这个时,我想自动更新入口。
我会通过一个管理这些入侵的服务帐户来实现这一点。对此有什么最佳实践吗?或者有没有入口控制器已经有了api?
Ingress控制器没有为此公开任何API,也不需要。您需要调用kubernetes REST API来更新Ingress资源。您可以使用多种语言的kubernetes客户端库,使用服务帐户或kubeconfig文件来执行此操作。
您需要使用Role和Rolebinding定义RBAC,以授权用于调用REST API的服务帐户或用户。
使用PUT或PATCH在以下API 中更改主机
/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses
当入口资源以这种方式更新时,入口控制器将被通知该改变,因为入口控制器监视入口资源上的任何改变。