如何在 Kubernetes 上部署 Identity Server?

How do you deploy Identity Server on Kubernetes?

我想在 Kubernetes 1.8 上部署 Identity Server 4,并将其用作我的 Web 应用程序和 Azure Active Directory 之间的联合网关(首先)。

如果我使用本地 k8s 服务名称从我的 Web 应用程序调用 Identity Server,我的用户将在登录期间被重定向到错误的 Identity Server URL(包含本地 k8s 服务名称),这显然不会'不工作。我们正在使用隐式流程。

因此,我使用 dns 名称设置了一个 Azure 负载平衡器,并将身份服务器配置为可以使用域名作为 PublicOrigin URL.

从外部访问

但是,我的 Web 应用程序 在同一集群 运行 中 无法使用 Identity Server 的外部 URL 访问 Identity Server(发现失败).

如果我 运行 Identity Server 在另一个 Kubernetes 集群上,那么一切正常。

我的问题是:

如何在 Kubernetes 中正确部署 Identity Server?我真的需要另一个 Kubernetes 集群吗?

注意:我在使用 ACS 引擎创建的 Azure 上使用 Kubernetes(因为我们混合了 windows 和 linux 容器)。

我正在使用 AKS(Azure 管理的 kubernetes)并且在与我的 IS4 服务相同的集群中有一个客户端 asp.net 核心 2 Web 应用程序没有问题。两个 webapps 都由 Nginx 和 kube-lego 提供 LetsEncrpyt TLS 支持,DNS 由 Azure DNS 提供。

我没有使用 PublicOrigin,而是客户端应用程序的权限(在 openidconnect 设置中)使用 IS4 服务的完整(外部 Azure)DNS 名称。如果你想使用来自客户端的集群服务命名,你可以使用 PublicOrigin