繁体   English   中英

使用带有 Ingress 控制器的 Kubernetes 的 502 错误网关

[英]502 bad gateway using Kubernetes with Ingress controller

我在 Minikube 上使用以下配置进行了 Kubernetes 设置:

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myappdeployment
spec:
  replicas: 5
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
        - name: myapp
          image: custom-docker-image:latest
          ports:
            - containerPort: 3000

---
kind: Service
apiVersion: v1
metadata:
  name: example-service
spec:
  selector:
    app: myapp
  ports:
    - protocol: "TCP"
      # Port accessible inside cluster
      port: 3000
      # Port to forward to inside the pod
      targetPort: 3000
  type: NodePort

---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: example-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  - http:
      paths:
      - path: /
        backend:
          serviceName: example-service
          servicePort: 3000

我查看了这篇 Stackoverflow 帖子的解决方案,看起来我的配置是......好吗?

访问http://192.xxx.xx.x 时,我的 Minikube 地址出现 502 Bad Gateway,我做错了什么? nginx-ingress-controller日志说:

...
Connection refused while connecting to upstream
...

另一个奇怪的信息,当我按照本指南在 Kubernetes 上设置基本节点服务时,一切正常,当我打开 Minikube 添加时,我看到一个“Hello world”页面

采取的步骤:我跑了

kubectl port-forward pods/myappdeployment-5dff57cfb4-6c6bd 3000:3000

然后我访问了localhost:3000并看到

This page isn’t working
localhost didn’t send any data.
ERR_EMPTY_RESPONSE

我认为原因在日志中更明显,所以我跑了

kubectl logs pods/myappdeployment-5dff57cfb4-6c6bd 

并得到

Waiting for MySQL...
no destination
Waiting for MySQL...
no destination
Waiting for MySQL...
no destination
Waiting for MySQL...
no destination
...

因此,我推断我最初得到的是 502,因为由于没有设置 MySQL,所有 pod 都没有运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM