k8s Metrics Server 获取资源指标与 hpa 部署

使用 helm 部署 Metrics Server

helm repo add bitnami https://charts.bitnami.com/bitnami
helm install bitnami/metrics-server   会有报错,执行以下命令
helm upgrade loopy-saola bitnami/metrics-server     --set apiService.create=true

$  kubectl get pod   查看节点
loopy-saola-metrics-server-58796b4bc7-4mv4t      1/1     Running   0          16m

$ kubectl top nodes  不能获取资源指标,需要修改 deployment

$  kubectl get   deployment   loopy-saola-metrics-server       -o yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "3"
  creationTimestamp: "2019-12-06T10:18:00Z"
  generation: 3
  labels:
    app.kubernetes.io/instance: loopy-saola
    app.kubernetes.io/managed-by: Tiller
    app.kubernetes.io/name: metrics-server
    helm.sh/chart: metrics-server-4.1.0
  name: loopy-saola-metrics-server
  namespace: default
  resourceVersion: "77963814"
  selfLink: /apis/extensions/v1beta1/namespaces/default/deployments/loopy-saola-metrics-server
  uid: ae24b7b2-1811-11ea-a9a8-b8ca3a614e64
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app.kubernetes.io/instance: loopy-saola
      app.kubernetes.io/name: metrics-server
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app.kubernetes.io/instance: loopy-saola
        app.kubernetes.io/managed-by: Tiller
        app.kubernetes.io/name: metrics-server
        helm.sh/chart: metrics-server-4.1.0
    spec:
      containers:
      - command:
        - metrics-server
        - --secure-port=8443
        - --v=8                                         以下三行为修改的内容
        - --kubelet-insecure-tls
        - --kubelet-preferred-address-types=InternalIP
        image: docker.io/bitnami/metrics-server:0.3.6-debian-9-r27
        imagePullPolicy: IfNotPresent
        name: metrics-server
        ports:
        - containerPort: 8443
          hostPort: 8443                                   增加 host port
          name: https
          protocol: TCP
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      serviceAccount: loopy-saola-metrics-server
      serviceAccountName: loopy-saola-metrics-server
      terminationGracePeriodSeconds: 30
status:
  availableReplicas: 1
  conditions:
  - lastTransitionTime: "2019-12-06T10:17:05Z"
    lastUpdateTime: "2019-12-06T10:17:05Z"
    message: Deployment has minimum availability.
    reason: MinimumReplicasAvailable
    status: "True"
    type: Available
  - lastTransitionTime: "2019-12-06T10:16:54Z"
    lastUpdateTime: "2019-12-06T10:40:41Z"
    message: ReplicaSet "loopy-saola-metrics-server-58796b4bc7" has successfully progressed.
    reason: NewReplicaSetAvailable
    status: "True"
    type: Progressing
  observedGeneration: 3
  readyReplicas: 1
  replicas: 1
  updatedReplicas: 1

$ kubectl top node
NAME                          CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
k8s-master01.gdfsxxds.rjyun   423m         1%     28532Mi         44%
k8s-master02.gdfsxxds.rjyun   334m         1%     5932Mi          9%
k8s-master03.gdfsxxds.rjyun   361m         1%     4107Mi          6%
k8s-node01                    242m         1%     10696Mi         8%
k8s-node02                    560m         1%     12201Mi         18%
k8s-node03                    1811m        5%     28904Mi         45%       

$ kubectl top pod
NAME                                             CPU(cores)   MEMORY(bytes)
a9vg-project-v2-deployment-7bc4968b44-mzp5n      2m           273Mi
a9vg-static-deployment-7bb7576cd8-hcmgm          1m           26Mi
cm-acme-http-solver-x8tkd                        1m           7Mi
成功获取资源指标数据
部署 hpa
$ kubectl get pod  |grep ssr             部署前查看是一个pod
tgbus-ssr-deployment-85df9c9c59-2s4lw            1/1     Running   0          23h
$ cat hpa.yaml
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: tgbus-ssr-deployment
  namespace: default
spec:
  maxReplicas: 15
  minReplicas: 2
  scaleTargetRef:
    apiVersion: extensions/v1beta1
    kind: Deployment
    name: tgbus-ssr-deployment
  targetCPUUtilizationPercentage: 50

$ kubectl create -f hpa.yaml
$ kubectl get pod  |grep ssr
tgbus-ssr-deployment-85df9c9c59-2s4lw            1/1     Running   0          23h
tgbus-ssr-deployment-85df9c9c59-k75xh            1/1     Running   0          42s
发现已创建出新的pod    后续会根据负载情况动态增加减少pod 数量

  

原文地址:https://www.cnblogs.com/lixinliang/p/12217323.html

时间: 2024-11-08 14:42:33

k8s Metrics Server 获取资源指标与 hpa 部署的相关文章

启用k8s metrics server监控

1.创建aggregator证书 方法一:直接使用二进制源码包安装 $ wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 $ chmod +x cfssl_linux-amd64 $ mv cfssl_linux-amd64 /usr/local/bin/cfssl $ wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 $ chmod +x cfssljson_linux-amd64 $

十五. 资源指标API以及自定义指标API

目录 资源指标: Metrics-Server 资源指标: Metric-Server介绍 Metric-Server部署 下载yaml文件 因为有墙, 所以提前下载image镜像, 当然也可以手动修改yaml相关文件 修改文件, 不然报错 创建Metric-Server 自定义资源指标: Prometheus k8s-prometheus-adapter 项目 Prometheus 在k8s集群中部署Prometheus github地址 需要部署的服务清单 安装部署所有服务及插件 部署kub

kubeadm1.14.1 安装Metrics Server

Metrics API 介绍Metrics-Server之前,必须要提一下Metrics API的概念 Metrics API相比于之前的监控采集方式(hepaster)是一种新的思路,官方希望核心指标的监控应该是稳定的,版本可控的,且可以直接被用户访问(例如通过使用 kubectl top 命令),或由集群中的控制器使用(如HPA),和其他的Kubernetes APIs一样. 官方废弃heapster项目,就是为了将核心资源监控作为一等公民对待,即像pod.service那样直接通过api-

Kubernetes1.15.2集群部署并部署Metrics Server插件

环境信息: 操作系统 主机名 IP地址 CentOS 7.6 k8s-master 192.168.31.61 CentOS 7.6 k8s-node1 192.168.31.62 CentOS 7.6 k8s-node2 192.168.31.63 1. 安装要求 在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 操作系统 CentOS7.x-86_x64 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多 集群中所有机器之间网络互通 可以访问外网,需要

怎样从server获取图片

今天写了安卓程序与server通信.当中须要从server获取图片.本来以为下载流.处理文件流非常复杂.结果几句话就轻松搞定了.如今记在这里. // (2014.5.1第一种方法)通过server返回的图片url,再次向server请求,加入动态新闻图片 // 读取Bitmap图片 try { Bitmap bm; URL url; url = new URL(map.get("activityPhoto").toString()); HttpURLConnection conn =

向指定URL发送GET方法获取资源,编码问题。

http编码.今天遇到获取网页上的数据,用HTTP的GET请求访问url获取资源,网上有相应的方法.以前一直不知道什么事rest风格,现在我想就是开一个Controller,然后使人可以调用你的后台代码.((value="xxx")) @Controllerpublic class getWebDataController { public List<JSONObject> roadlist = new ArrayList<JSONObject>(); publ

使用HttpWebRequest WebClien获取资源

1.0 1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Linq; 5 using System.Net; 6 using System.Runtime.Remoting.Messaging; 7 using System.Text; 8 using System.Threading.Tasks; 9 10 namespace ConsoleApplication1 11

Servlet技术之——概述、实现、细节、获取资源、ServletConfig、ServletContext

Servlet概述.实现.细节.获取资源.ServletConfig.ServletContext (一) Setvlet基本概述 (1) 什么是Servlet ? Servlet(Server Applet)是JavaServlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容是 JavaWeb中,我们将会接触到三大组件(Servlet.Filter.Listener),Servlet由服务器

cocos2d-x学习笔记(七)利用curl获取资源包的大小

cocos2d-x将curl作为第三方库加进来,所以我们可以很方便的使用它. 最近在研究资源热更新,由于想在用户更新之前提示资源包大小,让用户知道此次更新所需消耗流量,所以在资源热更新AssetsManager类的基础上加入获取资源包大小的代码. 我用的是cocos2d-x 3.4的版本,AssetsManager源文件在cocos2d\extensions\assets-manager目录下. 一.首先在AssetsManager.h文件class AssetsManager底下加入代码 do