Kubernetes 端口映射给我 502 错误网关

问题描述 投票:0回答:1

我想启动已经在 Kubernetes 中的 Docker 镜像中构建的 Crow cpp 服务器。 Cpp服务器正在监听18080端口:

目前我已经成功启动了 Docker 镜像,并使用命令将 Docker 容器的端口映射到 cpp 服务器:

docker run --name cpp --rm -d -it -p 81:18080 localhost:5000/cpp_test

并且在此设置中运行良好:

现在我正在 Kubernetes 中启动此配置,但每次都会收到 502 bad gateway Nginx 错误。那么我对 Kubernetes 有什么:

1.带有我的服务器推入图像的本地存储库(localhost:5000 / cpp_test);

2.安装了 nginx ingress (https://kubernetes.github.io/ingress-nginx/deploy/);

3.部署+服务yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: cpp-server
  namespace: cpp
  labels:
    app: cpp-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: cpp-server
  template:
    metadata:
      labels:
        app: cpp-server
    spec:
      containers:
      - name: cpp-server
        image: localhost:5000/cpp_test
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 18080           

---
apiVersion: v1
kind: Service
metadata:
  name: cpp-server
  namespace: cpp
spec:
  selector:
    app: cpp-server
  type: LoadBalancer
  ports:
    - protocol: TCP
      port: 8081
      targetPort: 18080

4 入口yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: root-ingress
  namespace: cpp
  annotations:
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
    nginx.ingress.kubernetes.io/backend-protocol: HTTPS
spec:
  ingressClassName: nginx
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: cpp-server
            port:
              number: 8081
          

应用所有 yaml 后,我得到以下 Kubernetes 状态:

当我尝试访问我的应用程序时,我收到 502 bad gateway:

我哪里做错了?或者我忘了提到什么?也许应该在部署的 pod 部分指定一些额外的端口信息?因为在docker中并没有显示kuber pod中有容器的端口映射。

kubernetes port crow
1个回答
0
投票

查看您的清单,尝试做这两件事

您不需要“LoadBalancer”服务。当您使用入口时,只需“ClusterIP”服务就足够了。 从您的服务中删除以下行(如果您不提及“类型”,Kubernetes 默认为“ClusterIP”服务类型)

type: LoadBalancer

根据您共享的控制台输出,您的后端服务似乎不支持“HTTPS”。 将入口注释更改为“HTTP”

nginx.ingress.kubernetes.io/backend-protocol: HTTP
    
© www.soinside.com 2019 - 2024. All rights reserved.