首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >502将Apollo Server应用程序部署到GKE时网关不好

502将Apollo Server应用程序部署到GKE时网关不好
EN

Stack Overflow用户
提问于 2021-02-07 07:01:34
回答 1查看 291关注 0票数 0

我正在尝试将我的Apollo Server应用程序部署到我的GKE集群。但是,当我访问我的站点的静态IP时,我收到502 Bad Gateway错误。我能够让我的客户端以类似的方式正确部署,所以我不确定我做错了什么。我的部署日志似乎显示服务器正确启动。然而,我的入口表明我的服务是不健康的,因为它似乎没有通过健康检查。

这是我的deployment.yml

代码语言:javascript
复制
apiVersion: apps/v1

kind: Deployment

metadata:
  name: <DEPLOYMENT_NAME>
  labels:
    app: <DEPLOYMENT_NAME>

spec:
  replicas: 1
  selector:
    matchLabels:
      app: <POD_NAME>
  template:
    metadata:
      name: <POD_NAME>
      labels:
        app: <POD_NAME>
    spec:
      serviceAccountName: <SERVICE_ACCOUNT_NAME>
      containers:
        - name: <CONTAINER_NAME>
          image: <MY_IMAGE>
          imagePullPolicy: Always
          ports:
            - containerPort: <CONTAINER_PORT>
        - name: cloud-sql-proxy
          image: gcr.io/cloudsql-docker/gce-proxy:1.17
          command:
            - '/cloud_sql_proxy'
            - '-instances=<MY_PROJECT>:<MY_DB_INSTANCE>=tcp:<MY_DB_PORT>'
          securityContext:
            runAsNonRoot: true

我的service.yml

代码语言:javascript
复制
apiVersion: v1

kind: Service

metadata:
  name: <MY_SERVICE_NAME>
  labels:
    app: <MY_SERVICE_NAME>
  annotations:
    cloud.google.com/neg: '{"ingress": true}'

spec:
  type: NodePort
  ports:
    - protocol: TCP
      port: 80
      targetPort: <CONTAINER_PORT>

  selector:
    app: <POD_NAME>

还有我的ingress.yml

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1beta1

kind: Ingress

metadata:
  name: <INGRESS_NAME>
  annotations:
    kubernetes.io/ingress.global-static-ip-name: <CLUSTER_NAME>
    networking.gke.io/managed-certificates: <CLUSTER_NAME>

spec:
  rules:
    - http:
        paths:
          - path: /*
            backend:
              serviceName: <SERVICE_NAME>
              servicePort: 80

你知道是什么导致了这一失败吗?

EN

回答 1

Stack Overflow用户

发布于 2021-02-07 07:18:19

使用Apollo Server,您需要进行健康检查以查看正确的端点。因此,将以下内容添加到容器下的deployment.yml中。

代码语言:javascript
复制
livenessProbe:
  initialDelaySeconds: 30
  periodSeconds: 30
  httpGet:
    path: '/.well-known/apollo/server-health'
    port: <CONTAINER_PORT>
readinessProbe:
  initialDelaySeconds: 30
  periodSeconds: 30
  httpGet:
    path: '/.well-known/apollo/server-health'
    port: <CONTAINER_PORT>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66082875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档