【问题标题】:Google Container Engine Error: Does not have minimum availabilityGoogle Container Engine 错误:没有最低可用性
【发布时间】:2019-09-08 12:10:41
【问题描述】:

我正在尝试将网络服务部署到 Google 的 Kontainer 引擎。 我用cluster size: 4 AND total cores: 8 创建了一个集群。 在我的 yaml 配置中,我正在为我的三个服务和一个 Service 创建部署以公开这些服务以及 ingress 以处理路由。

这是我的 yaml:

kind: Deployment
apiVersion: apps/v1
metadata:
  name: nodeapp-deployment
  labels:
    app: nodeapp
spec:
  replicas: 3 #We always want more than 1 replica for HA
  selector:
    matchLabels:
      app: nodeapp
  template:
    metadata:
      labels:
        app: nodeapp
    spec:
      containers:
      - name: wishlist # svc name
        image: karthequian/wishlist:1.0 #Dockerhub image
        ports:
        - containerPort: 8080 #Exposes the port 8080 of the container
        env:
        - name: wishlist-port #Env variable key passed to container that is read by app
          value: "8080" # Value of the env port.        

      - name: catalog # svc name
        image: karthequian/wishlist-catalog:1.0 #Dockerhub image
        ports:
        - containerPort: 8081 #Exposes the port 8080 of the container
        env:
        - name: catalog-port #Env variable key passed to container that is read by app
          value: "8081" # Value of the env port.        

      - name: auth # svc name
        image: karthequian/wishlist-auth:1.0 #Dockerhub image
        ports:
        - containerPort: 8082 #Exposes the port 8080 of the container
        env:
        - name: auth-port #Env variable key passed to container that is read by app
          value: "8082" # Value of the env port.        


kind: Service
apiVersion: v1
metadata:
  name: nodeapp-service
  labels:
    app: nodeapp-service
  namespace: default
spec:
  type: ClusterIP
  selector:
    app: nodeapp
  ports:
  - name: wishlist-port
    protocol: TCP
    port: 8080
  - name: catalog-port
    protocol: TCP
    port: 8081
  - name: auth-port
    protocol: TCP
    port: 8082

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: nodeapp-service
  labels:
    app: nodeapp-service  
spec:
  rules:
  - host:
    http:
      paths:
      - path: /wishlist
        backend:
          serviceName: nodeapp-service
          servicePort: 8080
      - path: /products
        backend:
          serviceName: nodeapp-service
          servicePort: 8081
      - path: /login
        backend:
          serviceName: nodeapp-service
          servicePort: 8081

它返回一个令人困惑的错误:

没有最低可用性 正如您在下面的屏幕截图中看到的:

请帮帮我!

提前致谢!

【问题讨论】:

  • 你能运行“kubectl get po”吗?您的仪表板显示 3/3 的 pod 正在运行,因此这可能只是 GKE 仪表板的错误。
  • 嗨@PatrickW,在这种情况下,部署应该工作,但它不工作。
  • 这就是为什么我想要 'kubectl get po' 和 'kubectl describe po [pod_name] 的输出,这样我们就可以看到 pod 没有运行的原因
  • 为了增加一些清晰度,错误消息“没有最低可用性”不是一个有用的错误。仪表板只是告诉您并非所有 pod 都在运行,但没有提供任何有关原因的信息。

标签: kubernetes google-kubernetes-engine kubernetes-deployment


【解决方案1】:

对我来说,等待就完成了。我注意到在部署服务时;在侧窗格中写道,部署所有容器最多可能需要 5 分钟。

【讨论】:

    【解决方案2】:

    多个条件可能会触发此无信息错误:

    1. 资源不足
    2. 就绪探测失败
    3. 活力探测失败

    【讨论】:

      猜你喜欢
      • 2021-02-14
      • 1970-01-01
      • 2016-08-23
      • 2018-02-14
      • 2017-04-07
      • 1970-01-01
      • 1970-01-01
      • 2017-11-26
      • 2014-06-30
      相关资源
      最近更新 更多