kubernetes 同步负载平衡器时出错:无法确保负载平衡器:无法构建负载平衡器

oxf4rvwz  于 2023-06-21  发布在  Kubernetes
关注(0)|答案(1)|浏览(147)

我们只是尝试Kubernetes设置并严格遵循文档(在这一点上)。我们在DigitalOcean上,有一堆与之相关的教程和文档(添加了所有这些作为参考)。
至此,我成功部署了两个pod,现在尝试以最简单的方式为它们配置负载均衡器。正在部署所有内容,但无法初始化负载均衡器,并出现以下错误:

Error syncing load balancer: failed to ensure load balancer: failed to build load-balancer request: specified health check port 8080 does not exist on service default/https-with-cert

我验证了健康检查实际上是工作的豆荚,如果我ping他们直接。事实上,这与我们过去两年在手动设置基础架构时使用的运行状况检查相同。
构建正在通过github操作运行,一切都没有问题:

其中deployment.yml看起来像这样:

---
kind: Service
apiVersion: v1
metadata:
  name: https-with-cert
  annotations:
    service.beta.kubernetes.io/do-loadbalancer-protocol: "http"
    service.beta.kubernetes.io/do-loadbalancer-algorithm: "round_robin"
    service.beta.kubernetes.io/do-loadbalancer-tls-ports: "443"
    service.beta.kubernetes.io/do-loadbalancer-certificate-id: "c1eae56c-42cd-4953-9ab9-1a6facae87f8"
    # "api.priz.guru" should be configured to point at the IP address of the DO load-balancer
    service.beta.kubernetes.io/do-loadbalancer-hostname: "api.priz.guru"
    service.beta.kubernetes.io/do-loadbalancer-enable-proxy-protocol: "true"
    service.beta.kubernetes.io/do-loadbalancer-disable-lets-encrypt-dns-records: "false"
    service.beta.kubernetes.io/do-loadbalancer-size-unit: "2"
    service.beta.kubernetes.io/do-loadbalancer-healthcheck-port: "8080"
    service.beta.kubernetes.io/do-loadbalancer-healthcheck-protocol: "http"
    service.beta.kubernetes.io/do-loadbalancer-healthcheck-path: "/v1/ping"
spec:
  type: LoadBalancer
  selector:
    app: priz-api
  ports:
    - name: http
      protocol: TCP
      port: 80
      targetPort: 8080
    - name: https
      protocol: TCP
      port: 443
      targetPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: priz-api
  labels:
    app: priz-api
spec:
  # modify replicas according to your case
  replicas: 2
  strategy:
    type: RollingUpdate
  selector:
    matchLabels:
      app: priz-api
  template:
    metadata:
      labels:
        app: priz-api
    spec:
      containers:
        - name: priz-api
          image: <IMAGE>
          env:
            - name: PRIZ_DATABASE_URL
              value: "${PRIZ_DATABASE_URL_PROD}"
            - name: PRIZ_DATABASE_USER
              value: "${PRIZ_DATABASE_USER_PROD}"
            - name: PRIZ_DATABASE_PASSWORD
              value: "${PRIZ_DATABASE_PASSWORD_PROD}"
            - name: PRIZ_AUTH0_DOMAIN
              value: "${PRIZ_AUTH0_DOMAIN_PROD}"
            - name: PRIZ_AUTH0_API_DOMAIN
              value: "${PRIZ_AUTH0_API_DOMAIN_PROD}"
            - name: PRIZ_AUTH0_API_CLIENT_ID
              value: "${PRIZ_AUTH0_API_CLIENT_ID_PROD}"
            - name: PRIZ_AUTH0_API_CLIENT_SECRET
              value: "${PRIZ_AUTH0_API_CLIENT_SECRET_PROD}"
            - name: PRIZ_APP_BASE_URL
              value: "${PRIZ_APP_BASE_URL_PROD}"
            - name: PRIZ_STRIPE_API_KEY_SECRET
              value: "${PRIZ_STRIPE_API_KEY_SECRET_PROD}"
            - name: PRIZ_SEARCH_HOST
              value: "${PRIZ_SEARCH_HOST_PROD}"
          ports:
            - containerPort: 8080
          resources:
            requests:
              cpu: 500m
              memory: 500Mi
            limits:
              cpu: 2000m
              memory: 2000Mi

我该如何调试这个问题?缺少什么?
我们使用的一些参考文献:https://docs.digitalocean.com/products/kubernetes/how-to/add-load-balancers/https://docs.digitalocean.com/products/kubernetes/how-to/configure-load-balancers/https://github.com/digitalocean/digitalocean-cloud-controller-manager/tree/master/docs/controllers/services/examples

fcy6dtqo

fcy6dtqo1#

我不知道这是否是同一个问题,但我在以下步骤中遇到了相同的错误消息
https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nginx-ingress-on-digitalocean-kubernetes-using-helm
事实上,它第一次工作,但我已经删除了集群,并在一个新的集群上测试,以确保我现在修改的脚本从头开始工作...
第二次我得到了上面的错误
所以我又把说明书看了一遍
此设置将使用具有三个节点的DigitalOcean Kubernetes集群,但您也可以手动创建集群。
为了保存成本,我设置了一个单节点集群
因此,我再次使用默认的3节点集群,它按预期工作。

相关问题