【问题标题】:How to access Angular Application through Kubernetes Ingress file如何通过 Kubernetes Ingress 文件访问 Angular 应用程序
【发布时间】:2021-06-23 08:30:14
【问题描述】:

我有 Angular 应用程序,目前正在 kubernetes 集群的 pod 中运行,我可以通过 Pod ip 后跟端口访问应用程序,但无法通过我的入口 url 访问。

Dockerfile

FROM node:12.10.0 as build-stage
WORKDIR /app
COPY package*.json /app/
RUN npm install
COPY ./ /app/
ARG configuration=production
RUN npm run build -- --output-path=./dist/out --configuration $configuration

# Stage 1, based on Nginx, to have only the compiled app, ready for production with Nginx
FROM nginx:1.15
#Copy ci-dashboard-dist
COPY --from=build-stage /app/dist/out/ /usr/share/nginx/html
#Copy default nginx configuration
COPY ./nginx-custom.conf /etc/nginx/conf.d/default.conf

入口文件


apiVersion: "networking.k8s.io/v1beta1"
  kind: "Ingress"
  metadata: 
    name: "angular-app"
    namespace: "development"
    annotations: 
      nginx.ingress.kubernetes.io/rewrite-target: "/$1"
      
  spec: 
    rules: 
      - 
        host: "localhost"
        http: 
          paths: 
            - 
              backend: 
                serviceName: "angular-ser"
                servicePort: 80
              path: "/angular-app/ser/(.*)"

当我尝试通过 Pod ip 访问应用程序时,它工作正常,但是当我尝试通过入口路径访问它时,它正在加载 nginx 主页。

我尝试了所有可能的组合,但是当我尝试使用 Ingress 路径 url 访问时页面似乎是空白的。

我也在页面上进行了检查,并在控制台部分发现了这些错误。

加载资源失败:服务器响应状态为 503(服务暂时不可用) 运行时-es2015.362517ed12c07fa8e977.js:1 加载资源失败:服务器响应状态为 503(服务暂时不可用) polyfills-es2015.9147b0c83e6774bdcaea.js:1 加载资源失败:服务器响应状态为 503(服务暂时不可用) 主要-es2015.2f24ff2a3689aa55a7aa.js:1 加载资源失败:服务器响应状态为 503(服务暂时不可用) scripts.28bddca5d494a37163be.js:1

【问题讨论】:

  • 1.您的 Angular 应用程序部署是否部署在开发命名空间中?由于 Ingress 规则必须驻留在它们配置的应用程序所在的命名空间中。 2. 您是否还可以添加curl -v host/path 命令的输出(对于两者,您的 pod ip 和入口路径),这样我们就可以看到这有什么不同? 3. 你可以尝试删除rewrite-target 并尝试使用你的应用程序默认路径吗?那么它可以正常工作吗?
  • 1.是的,部署在开发命名空间中的 Angular 应用程序。 2.不知道怎么做,请您分享更多信息。 3. 是的,我确实尝试过删除 rewrite-target,但它只给出一个空页面,但是当我尝试使用 pod ip 访问时,它工作正常。

标签: angular docker kubernetes kubernetes-ingress


【解决方案1】:

您将host 作为一个空字符串,它应该有一个值。

尝试使用localhost 或完全删除host 部分,这样您就可以默认通过本地主机访问它。

然后打开浏览器写http://localhost/angular-app/ser/...

【讨论】:

  • 嗨,抱歉忘了提我已经给出了主机名,只是将其保密
猜你喜欢
  • 2021-07-06
  • 2020-12-20
  • 2021-02-02
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-05
相关资源
最近更新 更多