在Azure Kubernetes上为内部IP配置HTTPS

时间:2018-01-04 09:24:10

标签: azure kubernetes azure-container-service

我已使用acs-engine将一个Kubernetes集群部署到Azure上的自定义虚拟网络。在代理VM上运行了一个ASP.NET Core 2.0 Kestrel应用程序,该应用程序通过Azure内部负载均衡器类型的服务通过VPN访问。现在我想在服务上启用HTTPS。我已经获得了域名和证书,但不知道如何继续。显然,将Kestrel配置为使用HTTPS并将证书复制到每个容器是不可取的。

我已经检查了ingress on k8s using acsconfigure Nginx Ingress Controller for TLS termination on k8s on Azure这样的教程,但是这两个教程最终都暴露了公共外部IP,我希望保持内部IP并且无法从互联网访问。这可能吗?可以在没有入口及其控制器的情况下完成吗?

2 个答案:

答案 0 :(得分:1)

虽然由于某些原因我仍无法通过入口访问应用程序,但我能够使用以下配置创建具有所需IP的内部入口服务:

struct A
{
    constexpr A() : i(0) {}
    explicit constexpr A( int v ) : i(v) {}
    constexpr int get() const { return i; }
private:
    int const  i;
}; 
int main() {
    constexpr A a( 3 );
    constexpr A b= a;
    constexpr A c{ a };
    constexpr int i1= a.get();
    constexpr int i2= b.get();
    constexpr int i3= c.get();
    std::cout << i1 << "  " << i2 << "  " << i3 << '\n';

    constexpr A d{ std::move(c) };
    constexpr int i4= d.get();
    std::cout << i4 << '\n';
}

答案 1 :(得分:0)

你链接的教程有点过时,至少说明你去了一个例子&#39;他们链接的GitHub仓库中的文件夹但不存在。无论如何,一个普通的nginx入口控制器由几个部分组成:nginx部署,暴露它的服务和默认的支持部分。你需要看看他们要求你部署yamls,找的是我列出的第二部分 - 入口服务 - 从负载平衡器改变类型ClusterIP(或干脆删除类型,因为ClusterIP是默认)