自学内容网 自学内容网

kubernetes第九天

1.statefulsets

 有状态服务面临的三大问题:

1.启动顺序,

2.每个pod有独立存储

3.ip地址动态变化

使用statefulsets可以解决这三个问题

2.部署metric-server

1.下载起源清单:

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

2.修改资源清单,如图所示,增加- --kubelet-insecure-tls,修改镜像,

3.创建应用:kubectl apply -f high-availability-1.21+.yaml

4.检查状态:kubectl -n kube-system get pods| grep metrics-server

5.验证 metrics-server是否正常

kubectl top pods

kubectl top node

3.HPA

Kubernetes的 HPA (Horizontal Pod Autoscaler) 是一种用于自动扩缩(伸缩)Pod副本数的机制,根据指标(如 CPU 使用率、内存使用率或自定义指标)动态调整部署的Pod数量,从而保证应用程序的性能和资源的高效使用。

简单来讲就是根据pod的性能指标,动态调整pod的数量

响应式创建HPA:kubectl autoscale deployment deployment资源名字 --min=2 --max=5 --cpu-percent=80

hpa的使用:(声明式创建HPA)

# 指定Api的版本号
apiVersion: autoscaling/v2
# 指定资源类型
kind: HorizontalPodAutoscaler
# 指定hpa源数据信息
metadata:
  # 指定名称
  name: deploy01-hpa
  # 指定名称空间
  namespace: default
# 用户的期望状态
spec:
  # 指定最大的Pod副本数量
  maxReplicas: 5
  # 指定监控指标
  metrics:
    # 指定资源限制
  - resource:
      # 指定资源限制的名称
      name: cpu
      # 指定限制的阈值
      target:
        averageUtilization: 80
        type: Utilization
    type: Resource
  # 指定最小的Pod副本数量
  minReplicas: 2
  # 当前的hpa规则应用在哪个资源
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: deploy-hpa

上述代码,动态调整部署的Pod数量为2-5,关联的是名字为deploy-hpa的Deployment,限制的是cpu资源为百分之八十

下面创建一个名字为deploy-hpa的Deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: deploy-hpa
spec:
  replicas: 3
  selector:
    matchExpressions:
    - key: apps
      operator: Exists
  template:
    metadata:
      labels:
        apps: hpa
    spec:
      containers:
      - name: web
        image: harbor.lxcedu.com/base-img/nginx:1
        resources:
          requests:
             cpu: 500m
             memory: 200M
          limits:
             cpu: 1
             memory: 500M

值得注意的是:Pod 的资源请求(requests)需要为 CPU 设置一个值。HPA 需要根据 CPU 的请求量来计算当前的 CPU 使用率。否则hpa功能无法实现

使用两个yaml文件创建资源文件

分别进去各个pod,进行压力测试:

kubectl exec deploy-hpa-5bd868655c-7kdwl -it -- sh

dd if=/dev/zero of=/dev/null bs=100M count=100000

如图所示,pods消耗资源超过限定的值,pod数量弹性扩展至5个

4.helm

helm的安装:

1.下载:wget https://get.helm.sh/helm-v3.9.0-linux-amd64.tar.gz

2.解压到指定目录:tar xf helm-v3.9.0-linux-amd64.tar.gz -C /usr/local/sbin/ linux-amd64/helm  --strip-components=1

3.验证helm安装成功:helm version

4.配置helm自动补全:helm completion bash > /etc/bash_completion.d/helm

helm的初体验:

1.创建chart:helm create lxc-linux

2.安装chart: 

         创建名称空间:kubectl create namespace lxc

         将chart安装到该名称空间下: helm install mychart01 lxc-linux -n lxc

         查看chart:  helm list -n lxc

3.卸载chart:

            helm uninstall mychart01 -n lxc

4.升级:

           先查看: helm list -n lxc

           修改变量升级:vim values.yaml (修改tags的值) 

             helm upgrade mychart01 lxc-linux -f  lxc-linux/values.yaml   -n lxc


原文地址:https://blog.csdn.net/ccnnlxc/article/details/145146333

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!