k8s(1.28)使用Helm安装metrics-server

这篇具有很好参考价值的文章主要介绍了k8s(1.28)使用Helm安装metrics-server。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

metrics-server安装后,可以查看集群的node和pod的CPU和Memory占用情况,非常有用。


提示:以下是本篇文章正文内容,下面案例可供参考

一、安装步骤

1.下载metric-server的chart

官网地址:https://github.com/kubernetes-sigs/metrics-server/releases
找到一个版本的helm chart后下载到本地解压。

2.改vaules.yaml模板

找到values.yaml模板,打开后我们改如下三行:
repository: registry.aliyuncs.com/google_containers/metrics-server
repository: registry.aliyuncs.com/google_containers/autoscaling/addon-resizer
args:

  • –kubelet-insecure-tls

三处的代码块如下:

第一处:
image:
  repository: registry.aliyuncs.com/google_containers/metrics-server
  # Overrides the image tag whose default is v{{ .Chart.AppVersion }}
第二处:
args: 
   - --kubelet-insecure-tls
第三处:
  image:
    repository: registry.aliyuncs.com/google_containers/autoscaling/addon-resizer

改这三处的目的是:

  1. 修改镜像下载池为阿里源,方便国内用户下载;
  2. 增加一个args参数,忽略tls,否则会报错;

3.使用helm安装metrics

将原始的chart包传至k8s环境某目录
在该目录下重新vim一个values-metrics.yaml文件,将本地新改好的代码全部粘贴复制进这个新文件。然后在本目录下执行:
helm install <下载的原始chart包> --values values-metrics.yaml -n kube-system

root@k8s-master:/home/perry# helm install metrics-server metrics-server-3.11.0.tgz --values metric-value.yaml -n kube-system

等待几分钟后,即可正常执行
kubectl top nodes
kubectl top pods

二、遇到问题

我之前没有加“- --kubelet-insecure-tls” 参数,导致在执行kubectl top node的时候一直报错:
root@k8s-master:~# kubectl top nodes
error: Metrics API not available
root@k8s-master:~#
查看pod logs:
root@k8s-master:~# kubectl -n kube-system logs metrics-server-7c76c9655c-twhzr
报错:
scraper.go:140] “Failed to scrape node” err=“Get “https://11.0.1.139:10250/metrics/resource”: x509: cannot validate certificate for 11.0.1.139 because it doesn’t contain any IP SANs” node=“k8s-node2”

root@k8s-master:~# kubectl -n kube-system logs metrics-server-7c76c9655c-twhzr 
I0117 08:41:44.446733       1 serving.go:342] Generated self-signed cert (/tmp/apiserver.crt, /tmp/apiserver.key)
I0117 08:41:44.911378       1 secure_serving.go:267] Serving securely on [::]:4443
I0117 08:41:44.911537       1 requestheader_controller.go:169] Starting RequestHeaderAuthRequestController
I0117 08:41:44.911565       1 shared_informer.go:240] Waiting for caches to sync for RequestHeaderAuthRequestController
I0117 08:41:44.911796       1 dynamic_serving_content.go:131] "Starting controller" name="serving-cert::/tmp/apiserver.crt::/tmp/apiserver.key"
E0117 08:41:44.916116       1 scraper.go:140] "Failed to scrape node" err="Get \"https://11.0.1.138:10250/metrics/resource\": x509: cannot validate certificate for 11.0.1.138 because it doesn't contain any IP SANs" node="k8s-node1"
I0117 08:41:44.916282       1 tlsconfig.go:240] "Starting DynamicServingCertificateController"
W0117 08:41:44.916395       1 shared_informer.go:372] The sharedIndexInformer has started, run more than once is not allowed
I0117 08:41:44.916510       1 configmap_cafile_content.go:201] "Starting controller" name="client-ca::kube-system::extension-apiserver-authentication::requestheader-client-ca-file"
I0117 08:41:44.916536       1 shared_informer.go:240] Waiting for caches to sync for client-ca::kube-system::extension-apiserver-authentication::requestheader-client-ca-file
I0117 08:41:44.916571       1 configmap_cafile_content.go:201] "Starting controller" name="client-ca::kube-system::extension-apiserver-authentication::client-ca-file"
I0117 08:41:44.916592       1 shared_informer.go:240] Waiting for caches to sync for client-ca::kube-system::extension-apiserver-authentication::client-ca-file
E0117 08:41:44.932118       1 scraper.go:140] "Failed to scrape node" err="Get \"https://11.0.1.137:10250/metrics/resource\": x509: cannot validate certificate for 11.0.1.137 because it doesn't contain any IP SANs" node="k8s-master"
E0117 08:41:44.940757       1 scraper.go:140] "Failed to scrape node" err="Get \"https://11.0.1.139:10250/metrics/resource\": x509: cannot validate certificate for 11.0.1.139 because it doesn't contain any IP SANs" node="k8s-node2"

所以在创建的时候需要加上那个args参数“- --kubelet-insecure-tls”
创建完成后get pods -o yaml是如下形式:

root@k8s-master:/home/perry# kubectl -n kube-system get pods metrics-server-5f5fc55fd-znknr -o yaml
...
spec:
  containers:
  - args:
    - --secure-port=10250
    - --cert-dir=/tmp
    - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
    - --kubelet-use-node-status-port
    - --metric-resolution=15s
    - --kubelet-insecure-tls
    image: registry.aliyuncs.com/google_containers/metrics-server:v0.6.4

Created by Perry Hao at 2024.01.17文章来源地址https://www.toymoban.com/news/detail-827050.html

到了这里,关于k8s(1.28)使用Helm安装metrics-server的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • cetos7搭建部署k8s 版本1.28

    目录 系统最低要求 基础准备工作--三台主机 k8s集群安装 在master上安装 calico 网络插件 K8s集群加入node工作节点 k8s集群搭建完成 更改contianerd 运行时容器 为cri-docker 安装helm helm常用指令 彻底删除calico网络插件 POD命令 namespace命令 ERROR: cir-docke报错 内存最少是4G  cpu个数最少两

    2024年01月20日
    浏览(50)
  • K8S(1.28)--部署ingress-nginx(1.9.1)

    原文网址:K8S(1.28)--部署ingress-nginx(1.9.1)-CSDN博客 本文介绍K8S部署ingress-nginx的方法。 本文使用的K8S和ingress-nginx都是最新的版本。 官网地址 https://kubernetes.github.io/ingress-nginx/deploy/ Ingress里Nginx的代理流程: 1.确定版本 首先确定版本:https://github.com/kubernetes/ingress-nginx 我K8S是1.2

    2024年02月20日
    浏览(31)
  • 基于containerd容器运行时,kubeadmin部署k8s 1.28集群

    centos7u9 序号 主机名 ip地址 CPU 内存 硬盘 1 k8s-master1 192.168.1.200 2C 2G 100G 2 k8s-worker1 192.168.1.201 2C 2G 100G 3 k8s-worker2 192.168.1.202 2C 2G 100G 1.3.1主机名配置 vi /etc/sysconfig/network-scripts/ifcfg-ens33 1.3.3主机名与IP地址解析(hosts) vi /etc/hosts 1.3.4防火墙配置 关闭防火墙firewalld 1.3.5SELINUX配置 修改

    2024年02月01日
    浏览(45)
  • 【云原生 | Kubernetes 系列】— 部署K8S 1.28版本集群部署(基于Containerd容器运行)

    主机名 IP地址 备注 k8s-master01 192.168.0.109 master k8s-node1 192.168.0.108 node1 k8s-node2 192.168.0.107 node1 k8s-node3 192.168.0.105 node1 1、主机配置 2、升级内核 3、配置内核转发以及过滤 4、安装ipset ipvsadm,IPVS(IP Virtual Server)是一个用于负载均衡的 Linux 内核模块,它可以用来替代 kube-proxy 默认的

    2024年02月20日
    浏览(50)
  • k8s helm安装使用

    1.前言 Helm 是一个 Kubernetes 包管理工具,它的作用是简化 Kubernetes 应用程序的部署和管理。Helm 允许您将 Kubernetes 应用程序打包为 chart,chart 是一组预定义的 Kubernetes 对象模板,包括 Deployment、Service、Ingress 等。使用 Helm,您可以轻松地将 chart 安装到 Kubernetes 集群中,并在需要

    2024年02月13日
    浏览(31)
  • K8S中使用helm安装MinIO

    使用helm部署MinIO分为两部分 helm部署MinIO operator,用来管理tenant(K8S集群中只能部署一个) helm部署MinIO tenant,真实的MinIO Cluster(K8S集群中可以部署多个) 使用helm部署到K8S集群,则需要考虑如何暴露服务的问题。官方文档helm安装步骤是通过修改service nodePort配置,暴露服务。

    2024年01月20日
    浏览(50)
  • 【C站首发】全网最新Kubernetes(K8s)1.28版本探秘及部署 基于Containerd容器运行时(100年证书kubeadm)

    序号 操作系统及版本 备注 1 CentOS7u9 需求 CPU 内存 硬盘 角色 主机名 值 8C 8G 1024GB master k8s-master01 值 8C 16G 1024GB worker(node) k8s-worker01 值 8C 16G 1024GB worker(node) k8s-worker02 1.3.1 主机名配置 由于本次使用3台主机完成kubernetes集群部署,其中1台为master节点,名称为k8s-master01;其中2台为wor

    2024年02月08日
    浏览(44)
  • 【实战】使用Helm在K8S集群安装MySQL主从

    K8S对于云原生部署有着至关重要的作用,几乎所有的应用和中间件都可以部署在K8S,让其帮助我们进行管理。一般情况下我们推荐数据库不使用容器化部署,但是在某些场合为了方便管理也可以采用该种方式。今天我们就用在K8S集群部署MySQL,仅当作学习学习,在生产环境谨

    2024年02月22日
    浏览(34)
  • k8s之Helm安装

    一、最快安装–官网提供的脚本–默认获取最新版本 二、二进制安装 1、官网下载安装包 https://github.com/helm/helm/releases 下载方式: 点击下载、迅雷下载、wget下载-------建议迅雷下载! 2、 3、查看helm 4、命令补全 删除重新安装

    2024年02月14日
    浏览(29)
  • ubuntu 20.4安装k8s 1.24.0、1.28.0(使用containerd)

    环境: ubuntu20.4 、k8s 1.24、containerd 本篇来讲解如何在ubuntu20.4下使用kubeadm安装部署k8s 1.24集群,经过验证,部署1.28.0版本本文档依然合适。 准备3台虚拟机,1个master,2个node节点。 主机 说明 192.168.118.145 master节点,能连外网,ubuntu 20.04版本,至少2核CPU,2G内存 192.168.118.146 no

    2024年02月04日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包