【问题标题】:Use https applications with Jenkins X deployment在 Jenkins X 部署中使用 https 应用程序
【发布时间】:2019-06-17 14:09:43
【问题描述】:

我正在评估 Jenkins X 在 Asp.NET 应用程序上管理 CI/CD。

  1. 我使用 [jx create quickstart aspnet-app][1] 创建了一个新项目,所有工作都与 gke 完美结合,应用程序在端口 80 上可见。
  2. 我修改了应用程序以使用 dotnet core 2.2
  3. 应用程序现在在端口 443 上侦听 https 查询。

    • docker run 开始时效果很好。
    • 从 jenkins 运行管道时,将在 gke 上创建并启动容器,但应用程序在端口 443 上不可用。
    • 我变成了default backend - 404,而不是我的页面。

问题: 我在哪里可以配置打开的端口。知道我可以在哪里调查吗?
ps:
- 当我尝试通过 http 联系端口 443 时,我收到了来自 nginx 的 400 The plain HTTP request was sent to HTTPS port 响应,这是一个非常好的信号。
- 好像和ingress有关,怎么在Jenkins X上配置ingress

感谢您的任何提示。

【问题讨论】:

    标签: jenkins https kubernetes .net-core google-kubernetes-engine


    【解决方案1】:

    Jenkins X,正如您在accessing applications section 中看到的那样,自动安装Nginx ingress controller,并且您的似乎已配置为在同一服务器中使用 SSL 和非 SSL。当您尝试通过http 访问时,Nginx 需要 SSL 并给您错误。

    你可以在this链接中看到Stackoverflow中类似的问题,你必须修改nginx.conf文件并在SSL行添加注释:

    server {
      listen 80;
      listen 443 default ssl;
    
      # ssl on   <--- comment the line
    }
    

    【讨论】:

    • 感谢您的回复。你知道 JenkinsX 是如何调用 ingress 的吗?我很难理解所有依赖项,而且我找不到可以按照您的描述配置入口的位置。在我看来,詹金斯使用fabric8.io 来存档它。问候。
    • fabric8.io 是 expose 控制器 (github.com/jenkins-x/exposecontroller)。它为您的 Kubernetes 集群公开服务,但 Nginx 是入口控制器 (kubernetes.io/docs/concepts/services-networking/ingress/…),我建议您检查此配置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多