kubernetes - GKE 在超过 5 个时杀死 pod
问题描述
我在 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 上的“缩放”按钮,但结果是一样的......
解决方案
推荐阅读
- android - Flutter 中的 svg 操作(与用户交互)
- gradle - Gradle 脚本语法
- php - 从 php url $url 中删除空格
- amazon-web-services - 尝试使用 cloudformation 在 AWS greengrass 版本 2 中创建 iot 组件时出错
- android - Jetpack compose 停止观察数据
- python - 如何优雅地处理 Selenium 中的 NoSuchElementElement 异常?
- visual-studio - 如何在 Visual Studio 2019 编辑器中查找颜色更改的类别
- python-3.x - 如何使用 cartopy 在地磁坐标中绘制数据?
- android - 我们可以在 Android 中使用 SQLite 数据库上的所有 SQL 查询和函数吗?
- loops - 有没有办法摆脱这个循环?(淡入淡出和 LED 的问题)