在Azure Kubernetes上为内部IP配置HTTPS

在Azure Kubernetes上为内部IP配置HTTPS,azure,kubernetes,azure-container-service,Azure,Kubernetes,Azure Container Service,我已经使用acs引擎将Kubernetes群集部署到Azure上的自定义虚拟网络。代理虚拟机上运行着一个ASP.NET Core 2.0 Kestrel应用程序,通过Azure内部负载平衡器类型的服务通过VPN访问该应用程序。现在我想在服务上启用HTTPS。我已经获得了域名和证书,但不知道如何继续。显然,将Kestrel配置为使用HTTPS并将证书复制到每个容器并不是一个好办法 我已经签出了一些教程,例如,但它们都最终公开了一个公共外部IP,我希望IP保持内部,并且不可从internet访问。这

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


我已经签出了一些教程,例如,但它们都最终公开了一个公共外部IP,我希望IP保持内部,并且不可从internet访问。这可能吗?没有入口和它们的控制器可以完成吗?

你链接的教程有点过时了,至少说明让你转到他们链接的GitHub repo中的“示例”文件夹,但它不存在。无论如何,一个普通的nginx入口控制器由几个部分组成:nginx部署、公开它的服务和默认的备份部分。您需要查看他们要求您部署的YAML,查找我列出的第二部分—入口服务—并将类型从LoadBalancer更改为ClusterIP(或者完全删除类型,因为ClusterIP是默认的)

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

apiVersion: v1
kind: Service
metadata:
  annotations:
      service.beta.kubernetes.io/azure-load-balancer-internal: "true"
  name: nginx-ingress-svc
spec:
  type: LoadBalancer
  ports:
  - port: 443
    targetPort: 443
  loadBalancerIP: 130.10.1.9
  selector:
    k8s-app: nginx-ingress-controller

至于IP问题,不确定端点。你听说过DNS吗?是的,可以在内部完成:研究使用nginx入口控制器,只需调整服务。使用ClusterIP类型不会提供任何类型的外部IP(也许我应该改写我的问题)。我需要一个类似Azure内部负载平衡器的IP,在虚拟网络中,例如130.10.0.0。我不熟悉Azure,假设您能够在所需的CIDR块上创建服务,您应该能够在此处执行相同的操作。据我所知,Ingress本身不会做任何事情,您需要Ingress controller服务(如上所述)为了真正倾听并执行规则。您在这里所做的是正确的,但我必须为内部和外部访问做类似的事情。