通过服务帐户更新 k8s ingress

update k8s ingress via service account

我有一个应用程序,我经常需要在其中添加新域。 现在我每次添加或删除域时都需要添加或删除入口。

我想将其自动化。

我有一个 ui,其中用户有一个注册域列表并且可以将域添加到应用程序。 所以当用户设置这个时我想自动更新入口。

我要解决这个问题的方法是通过管理这些入口的服务帐户。 对此是否有任何最佳实践,或者是否有入口控制器已经为此设置了 api?

入口控制器没有为此暴露任何 API,也不需要。您将需要调用 kubernetes REST API 来更新入口资源。您可以使用以多种语言提供的 kubernetes 客户端库,通过服务帐户或 kubeconfig 文件执行此操作。

您将需要使用 Role 和 Rolebinding 定义 RBAC 来授权服务帐户或用于调用 REST 的用户 API。

使用 PUT 或 PATCH 更改下面的主机 API

/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses

当入口资源以这种方式更新时,入口控制器将收到更改通知,因为入口控制器会监视入口资源的任何更改。