Google Cloud kubernetes负载平衡器,后端的运行状况检查不起作用

时间:2019-09-10 11:25:53

标签: kubernetes google-cloud-platform google-kubernetes-engine kubernetes-ingress kubernetes-health-check

我正在将一个包含divolte的Kubernetes集群从一个GCP(Google云平台)项目复制到另一个。在已经运行的项目中,我与目标项目具有完全相同的配置。在我的新项目中,我没有使负载均衡器运行正确的运行状况检查,并且当我尝试从负载均衡器连接到静态IP时,出现了502服务器错误。

我已经执行了与原始项目相同的步骤:

  1. 在GCP上创建集群
  2. 授权本地kubectl到GCP上的群集
  3. 将TLS秘密添加到GCP上的kubernetes集群中
  4. 创建静态全局IP
  5. 使用divolte构建docker文件
  6. 将docker文件推送到eu.gcr.io/project-name
  7. 应用部署,入口和服务文件

部署文件:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: divolte
spec:
  selector:
    matchLabels:
      app: divolte
  replicas: 2
  strategy:
    rollingUpdate:
      maxSurge: 0
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: divolte
    spec:
      containers:
      - name: divolte
        imagePullPolicy: Always
        image: "eu.gcr.io/project-name/divolte-collector:latest"
        ports:
        - containerPort: 8290
        env:
        - name: JAVA_OPTS
          value: "-Xms512m -Xmx2048m -XX:+UseG1GC -Djava.awt.headless=true"
        resources:
          limits:
            cpu: 1
            memory: 3072Mi
          requests:
            cpu: 1
            memory: 2048Mi
        livenessProbe:
          httpGet:
            path: /divolte.js
            port: 8290
          initialDelaySeconds: 22
          timeoutSeconds: 1
        readinessProbe:
          httpGet:
            path: /ping
            port: 8290
          initialDelaySeconds: 22
          periodSeconds: 1
      terminationGracePeriodSeconds: 30

服务文件:

apiVersion: v1
kind: Service
metadata:
  name: divolte
spec:
  ports:
  - name: http
    port: 80
    targetPort: 8290
    nodePort: 30964
  selector:
    app: divolte
  type: NodePort

入口文件:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: divolte
  annotations:
    kubernetes.io/ingress.global-static-ip-name: ip-name-here
spec:
  tls:
  - secretName: ssl-cert-name-here
  backend:
    serviceName: divolte
    servicePort: 80

我希望负载平衡器能够像以前的GCP项目一样拾取配置文件,并将流量正确地重新路由到群集,但是我无法通过运行状况检查使GCP负载平衡器正常工作。有什么下一步的想法吗?

1 个答案:

答案 0 :(得分:1)

我找到了解决问题的方法。

感谢您的建议,我正在寻找负载均衡器中的症状,但这是错误的方向。

由于我忘记创建Google Storage存储桶,因此kubernetes豆荚卡在了“ crashloopbackoff”中,我没有在文档中设置环境,因此我忽略了它。我用“ kubectl日志”命令找到了它。该应用已启动并正在运行。