我在 GKE 上部署了一个 k8s 集群,有一个“主”节点池包含 1 个节点,用于所有部署,一个节点池包含 1 个节点用于kube-ip。
在主节点池上,我想部署我的一个应用程序(flask API)的 10 个副本。但是,当数量超过 5 时,GKE 会不断杀死我的 pod 以使 pod 数量恢复到 5。
我试图修改我的不同 yaml 文件(deployment.yaml
和horizontalPodScheduler.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 上的“缩放”按钮,但结果是一样的......