k8s yaml文件如何添加HPA
时间: 2023-07-07 22:35:07 浏览: 271
要在Kubernetes中添加HPA,你需要创建一个 deployment 或 statefulset 对象,并在其上下文中定义 HPA。下面是一个示例:
首先,在 deployment.yaml 文件中定义 deployment 对象,如下所示:
```
apiVersion: apps/v1
kind: Deployment
metadata:
name: example-deployment
spec:
replicas: 3
selector:
matchLabels:
app: example
template:
metadata:
labels:
app: example
spec:
containers:
- name: example
image: example-image
ports:
- containerPort: 80
```
然后,在 hpa.yaml 文件中定义 HPA 对象,如下所示:
```
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: example-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: example-deployment
minReplicas: 1
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
targetAverageUtilization: 50
```
在这个示例中,我们定义了一个名为 example-hpa 的 HPA 对象,并指定了它所针对的 deployment 名称为 example-deployment。我们还为 HPA 指定了最小副本数为 1,最大副本数为 10,并设置了 CPU 利用率的目标平均值为 50%。
最后,使用 kubectl apply 命令将这两个 YAML 文件部署到 Kubernetes 集群中:
```
kubectl apply -f deployment.yaml
kubectl apply -f hpa.yaml
```
这样,Kubernetes 就会自动根据 HPA 对象的定义,在需要时自动扩展或缩容 deployment 的副本数,以满足指定的资源利用率目标。
阅读全文