【问题标题】:NGINX ingress loads only html on Kubernetes AKSNGINX 入口仅在 Kubernetes AKS 上加载 html
【发布时间】:2020-12-21 14:56:55
【问题描述】:

我正在使用 Azure AKS 设置我的 Kubernetes 集群,并按照本指南部署了 NGINX Ingress: https://docs.microsoft.com/en-us/azure/aks/ingress-internal-ip

现在该指南非常适用于它演示的演示应用程序,但是当我尝试部署我自己的一个应用程序时,该页面仅显示 html 部分,而对于 js、css 和 png 部分,我在控制台中收到以下错误:

当我在我的 K8S 集群上部署没有 NGINX Ingress 的应用程序时,它运行良好,但由于某种原因,当我通过 NGINX 部署它时,我得到了这些错误。

我还尝试部署另一个应用程序 pgAdmin,为此我只在尝试访问其页面时收到错误 503。

我尝试了几种在网上找到的解决方法,但似乎没有任何解决方法。

文件:

internal-ingress.yaml:

controller:
service:
  loadBalancerIP: 10.50.0.253
  annotations:
    service.beta.kubernetes.io/azure-load-balancer-internal: "true"

hello-world-ingress.yaml:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: hello-world-ingress
  namespace: infra
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    nginx.ingress.kubernetes.io/use-regex: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
   - http:
      paths:
      - backend:
          serviceName: aks-helloworld
          servicePort: 80
        path: /hello-world-one(/|$)(.*)  
      - backend:
          serviceName: pgadmin
          servicePort: 80
        path: /pgadmin(/|$)(.*)
      - backend:
          serviceName: pgadmin
          servicePort: 80
        path: /(.*)
      - backend:
           serviceName: box-model
           servicePort: 80
        path: /box-model(/|$)(.*)

pgadmin 部署 yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Values.pgadmin.name }}
spec:
  selector:
    matchLabels:
      app: {{.Values.pgadmin.name}}
  replicas: {{.Values.pgadmin.deployment.replicas}}
  strategy:
    type: {{.Values.pgadmin.deployment.strategy}}
  template:
    metadata:
      labels:
        app: {{.Values.pgadmin.name}}
    spec:
      containers:
      - env:
        - name: PGADMIN_DEFAULT_EMAIL
          valueFrom: 
            secretKeyRef:  
              name: {{.Values.pgadmin.secrets.PGADMIN_DEFAULT_EMAIL.name}}
              key: {{.Values.pgadmin.secrets.PGADMIN_DEFAULT_EMAIL.key}}
        - name: PGADMIN_DEFAULT_PASSWORD
          valueFrom: 
            secretKeyRef:  
              name: {{.Values.pgadmin.secrets.PGADMIN_DEFAULT_PASSWORD.name}} 
              key: {{.Values.pgadmin.secrets.PGADMIN_DEFAULT_PASSWORD.key}}
        image: {{.Values.pgadmin.deployment.image}}
        imagePullPolicy: {{.Values.pgadmin.deployment.imagePullPolicy}}
        name: {{.Values.pgadmin.name}}
        ports:
        - containerPort: {{.Values.pgadmin.deployment.containerPort}}
        volumeMounts: 
        - mountPath: {{.Values.pgadmin.deployment.volumeMounts.name}}
          name: {{.Values.pgadmin.deployment.volumeMounts.name}}
        resources: {}
      restartPolicy: {{.Values.pgadmin.deployment.restartPolicy}}
      serviceAccountName: ""
      volumes:
        - name: {{.Values.pgadmin.volumes.pvc.name}}
          persistentVolumeClaim:
            claimName: {{.Values.pgadmin.volumes.pvc.name}}
status: {}

pgadmin 服务 yaml:

apiVersion: v1
kind: Service
metadata:
  name: {{.Values.pgadmin.name}}
spec:
  ports:
  - name: {{.Values.pgadmin.deployment.containerPort | quote}} 
    port: {{.Values.pgadmin.deployment.containerPort}}
    targetPort: {{.Values.pgadmin.deployment.containerPort}}
status:
  loadBalancer: {}

如果缺少相关信息,请告诉我,我会补充。

【问题讨论】:

    标签: nginx kubernetes nginx-ingress azure-aks


    【解决方案1】:

    可能是 nginx.ingress.kubernetes.io/rewrite-target: /$1 正在创建一个问题。我不确定。

    【讨论】:

      猜你喜欢
      • 2020-12-29
      • 2020-08-03
      • 2022-06-29
      • 2020-08-14
      • 1970-01-01
      • 2020-12-20
      • 2021-05-31
      • 1970-01-01
      • 2019-07-22
      相关资源
      最近更新 更多