0
点赞
收藏
分享

微信扫一扫

Kuberneter之水平扩缩容

ITWYY 2024-11-22 阅读 13

1、水平自动扩容和缩容HPA

HPA全称是 Horizontal Pod Autoscaler, 就是 Pod 水平自动伸缩,

HPA 可以基于 CPU 使用率对 replication controllerdeploymentreplicaset 中 pod 的数量进行自动扩缩容

除 cpu 利用率外 ,也可以基于其他应用程序提供的度量指标 cu

Kuberneter之水平扩缩容_k8s

stom metrics 进行自动扩缩容),

pod 自动缩放不适用于 无法缩放的对象,比如 DaemonSets

HPA 由 k8s API 资源和控制器实现,资源决定了控制器的行为、控制器会周期性的获取目标资源(如:平均CPU 利用率)并与目标值相比较后来调整 Pod 副本数量

创建 Deployment API 资源测试

vim php-apache.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: php-apache
spec:
  selector:
    matchLabels:
      run: php-apache
  replicas: 1
  template:
    metadata:
      labels:
        run: php-apache
    spec:
      containers:
      - name: php-apache
        image: aminglinux/hpa-example
        ports:
        - containerPort: 80
        resources:
          limits:
            cpu: 500m  ##限制Pod CPU资源最多使用500m
          requests:
            cpu: 200m  ##K8s要保证Pod使用的最小cpu资源为200m
---
apiVersion: v1
kind: Service
metadata:
  name: php-apache
  labels:
    run: php-apache
spec:
  ports:
  - port: 80
  selector:
    run: php-apache

安装 merics-server (通过 它 才能获取到 具体的资源使用情况)

# 下载yaml文件
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/high-availability-1.21+.yaml

# 修改YAML文件
vim high-availability-1.21+.yaml

将image: k8s.gcr.io/metrics-server/metrics-server:v0.6.2 修改为 image: aminglinux/metrics-server:v0.6.2 
在image: 这行上面增加一行: - --kubelet-insecure-tls 
##见下图

Kuberneter之水平扩缩容_k8s_02

创建 HPA

vim  hpa-php-apache.yaml
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: php-apache
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: php-apache
  minReplicas: 1  ##最小Pod数为1
  maxReplicas: 10  ##最大Pod数为10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 50  ##当Pod的CPU使用率超过50%时,需要自动扩容

举报

相关推荐

0 条评论