zoukankan      html  css  js  c++  java
  • K8S 弹性伸缩

    HPA的原理

    Kubernetes有一个HPA(Horizontal Pod Autoscaler)的资源,可以实现基于CPU使用率的Pod自动伸缩的功能。HPA基于Master Node上的kube-controller-manager服务启动参数–horizontal-pod-autoscaler-sync-period定义的时长(默认为30秒),
    周期性的检测Pod的CPU使用率(需要事先安装heapster)。如果需要设置–horizontal-pod-autoscaler-sync-period可以在Master Node上的/etc/default/kube-controller-manager中修改,V1.18.1以后监控使用的是Metrics-Server,

    一、部署Metrics-Server

    1、下载并解压Metrics-Server

    https://github.com/kubernetes-sigs/metrics-server/archive/v0.3.6.tar.gz
    tar -zxvf v0.3.6.tar.gz 
    

    2、修改metrice-server配置

    cd metrics-server-0.3.6/deploy/1.8+/
    vim metrics-server-deployment.yaml
    

    3、vim metrics-server-deployment.yaml修改文件内容

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: metrics-server
      namespace: kube-system
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: metrics-server
      namespace: kube-system
      labels:
        k8s-app: metrics-server
    spec:
      selector:
        matchLabels:
          k8s-app: metrics-server
      template:
        metadata:
          name: metrics-server
          labels:
            k8s-app: metrics-server
        spec:
          serviceAccountName: metrics-server
          volumes:
          # mount in tmp so we can safely use from-scratch images and/or read-only containers
          - name: tmp-dir
            emptyDir: {}
          containers:
          - name: metrics-server
            # 修改image 和 imagePullPolicy
            image: mirrorgooglecontainers/metrics-server-amd64:v0.3.6
            imagePullPolicy: IfNotPresent
            # 新增command配置
            command:
            - /metrics-server
            - --kubelet-insecure-tls
            - --kubelet-preferred-address-types=InternalDNS,InternalIP,ExternalDNS,ExternalIP,Hostname
            volumeMounts:
            - name: tmp-dir
              mountPath: /tmp
            # 新增resources配置
            resources:
              limits:
                cpu: 300m
                memory: 200Mi
              requests:
                cpu: 200m
                memory: 100Mi
    

    4、安装metrics-server

    kubectl apply -f metrics-server-0.3.6/deploy/1.8+/
    

    5、查看nodes的信息

    [root@k8s-master 1.8+]# kubectl top nodes 
    NAME         CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
    k8s-master   94m          4%     959Mi           55%       
    k8s-node1    58m          5%     580Mi           66%       
    k8s-node2    39m          3%     552Mi           63%       
  • 相关阅读:
    web访问权限实现方法-探面向对象的编码设计
    解析二进制反码算数求和
    可以把erp当做一个分支-找自己的方向
    电脑开机是怎样自动加载进程
    球管模型和Java
    发明和发现
    漂浮
    js中的一些循环
    ES5中新增的一些方法
    git的一些操作
  • 原文地址:https://www.cnblogs.com/wuchangblog/p/14007930.html
Copyright © 2011-2022 走看看