首页 > 解决方案 > GKE 在超过 5 个时杀死 pod

问题描述

我在 GKE 上部署了一个 k8s 集群,有一个“主”节点池包含 1 个节点,用于所有部署,一个节点池包含 1 个节点用于kube-ip

在主节点池上,我想部署我的一个应用程序(flask API)的 10 个副本。但是,当数量超过 5 时,GKE 会不断杀死我的 pod 以使 pod 数量恢复到 5。

我试图修改我的不同 yaml 文件(deployment.yamlhorizontalPodScheduler.yaml)中的值

水平PodScheduler.yaml

apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  labels:
    app: my-app
    env: production
  name: my-app-hpa
  namespace: production
spec:
  maxReplicas: 20
  metrics:
    - resource:
        name: cpu
        targetAverageUtilization: 80
      type: Resource
  minReplicas: 10
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: my-app

部署.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: my-app
    env: production
  name: my-app
  namespace: production
spec:
  replicas: 10
  selector:
    matchLabels:
      app: my-app
      env: production
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: my-app
        env: production
    spec:
      nodeSelector:
        cloud.google.com/gke-nodepool: my-pool
      containers:
        - image: gcr.io/my_project_id/github.com/my_org/my-app
          imagePullPolicy: IfNotPresent
          name: my-app-1

即使我设置了这些值,GKE 总是将它们覆盖为 5 个副本:

这是我的主节点的资源摘要,您可以看到有很多资源可以部署副本(这是一个非常简单的 API)

我也尝试使用 GKE UI 上的“缩放”按钮,但结果是一样的......

资源

标签: kubernetesgoogle-cloud-platformgoogle-kubernetes-enginekubernetes-hpa

解决方案


推荐阅读