Openshift 4.5.18 - 应用程序不可用

Openshift 4.5.18 - Application is not available

我想在 AWS 云上的 Openshift 集群 运行ning 中部署我的 Web 应用程序。我正在使用 expose 命令使其在外部可用:

oc expose service svcname

但是当我尝试访问它时,出现了这个错误:

Web 应用程序运行不在 8443 上;它使用 https 运行ning 在端口 2553 上。 我们不想 运行 它在 8443 上。 我可以使用 oc port-forward 连接到 webapp,但我想让它正常工作 通过路由命令公开。 我的方法有问题吗?

更新

apiVersion: v1
kind: Service
metadata:
  name: my-svc
  labels:
    app: mywapp
spec:
  ports:
  - port: 2553
    nodePort: 30000
  selector:
    app: mywapp

我在 minishift 上使用并且能够使用的相同服务,使用本地 minishift 的 IP 地址。

您需要确保 ServiceRoute 都指定了正确的端口。

  • 检查您的 Service 是否有 porttargetPort。您可以在 Kubernetes 文档中找到更多信息:https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service

  • 检查您的 Route 是否在 spec 中指定了正确的 port。您还可以使用 oc expose service svcname --port=2553 创建基于服务的路由。

  • 在您的描述中,您还注意到您正在终止 TLS,因此您可能需要创建“直通”或“重新加密”路由,最简单的方法是使用以下命令:

    • oc create route passthrough myroute-passthrough --service=svcname --port=2553
    • oc create route reencrypt myroute-reencrypt --service=svcname --prt=2553

您可以在此处找到有关安全路由的更多信息:https://docs.openshift.com/container-platform/4.6/networking/routes/secured-routes.html

问题已通过 re-encrypt 解决。我使用 Openshift 证书来实现这一点。通过使用 Openshift,您不必担心证书过期等问题。

以下 link 对我帮助很大:

https://www.openshift.com/blog/self-serviced-end-to-end-encryption-approaches-for-applications-deployed-in-openshift https://www.openshift.com/blog/self-serviced-end-to-end-encryption-for-kubernetes-applications-part-2-a-practical-example https://developers.redhat.com/blog/2017/11/22/dynamically-creating-java-keystores-openshift/