metrics-server

先说一下metrics-server,这是一个聚合器,专门用来显示集群的资源使用情况,主要是内存和cpu。

安装   metrics-server

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.7.0/components.yaml

部署好以后,执行kubectl top命令就会返回结果

# kubectl top nodes

# kubectl pod -A

K8s中常见的维护操作

查看pod详情

# kubectl describe pod frontend

查看pod日志

# kubectl logs frontend

查看pod资源用量

# kubectl top pod frontend

查看节点资源用量

# kubectl top nodes

禁止pod调度

# kubectl cordon host1

驱逐现有pod

# kubectl drain master --ignore-daemonsets

升级K8s流程

1、apt list  确定升级到哪个版本

# apt list kubeadm -a

2、禁止master节点接受新的调度

# kubectl cordon cka-master

# kubectl get nodes   #master节点应该显示schedulingdisabled

3、驱逐master节点上现有任务

# kubectl drain cka-master --delete-emptydir-data --ignore-daemonset

4、安装目标的kubeadm

# apt-mark unload kubeadm

# apt-get update

# apt install kubeadm=1.30.3-1.1 -y

# apt-mark hold kubeadm

# kubeadm version

5、验证升级计划

# kubeadm upgrade plan

6、执行升级

# apt-mark unhold kubeadm

# kubeadm upgrade apply v1.30.3 --etcd-upgrade=false

7、升级kubelet、kubectl

# apt-mark unhold kubelet kubectl

# apt install kubelet=1.30.3-1.1 kubectl=1.30.3-1.1 -y

8、恢复调度功能

# apt-mark hold kubelet kubeadm kubectl

# systemctl daemon-reload

# systemctl restart kubelet.service

# kubectl uncordon cka-master

# kubectl get nodes

9、验证集群状态和版本

ETCD的备份和恢复过程

Etcd是一个键值存储数据库,用来存储K8s集群数据。备份过程:申明etcd api的版本;完成备份;验证备份有效性。恢复过程:停止kubelet服务;恢复etcd;启动kubelet服务;查询数据库健康状态。

备份

先安装etcd客户端(安装etcdctl命令行工具,手动安装才能执行后续的备份指令)并抓取快照进行备份(生产中应定期执行该操作)

# apt install etcd-client -y

# ETCDCTL_API=3 etcdctl \

--endpoints=https://127.0.0.1:2379 \

--cacert=/etc/kubernetes/pki/etcd/ca.crt \

--cert=/etc/kubernetes/pki/etcd/server.crt \

--key=/etc/kubernetes/pki/etcd/server.key \

snapshot save etcdbackupfile.db

# ll etcdbackupfile.db

恢复

先停止服务

# mv /etc/kubernetes/manifects /etc/kubernetes/manifects.bak

删除现有etcd并通过快照恢复数据

# mv /var/lib/etcd /var/lib/etcd.bak

# ETCDCTL_API=3 etcdctl \

--endpoints=https://127.0.0.1:2379 \

--cacert=/etc/kubernetes/pki/etcd/ca.crt \

--cert=/etc/kubernetes/pki/etcd/server.crt \

--key=/etc/kubernetes/pki/etcd/server.key \

--data-dir /var/lib/etcd \

snapshot restore etcdbackupfile.db

恢复服务并验证

# mv /etc/kubernetes/manifests.bak /etc/kubernetes/manifests

# systemctl restart kubelet.service

# kubectl get node

检查etcd是否健康

ETCDCTL_API=3 etcdctl --endpoints=https://192.168.30.130:2379 \

--cacert=/etc/kubernetes/pki/etcd/ca.crt \

--cert=/etc/kubernetes/pki/etcd/server.crt \

--key=/etc/kubernetes/pki/etcd/server.key endpoint health

命令详解参看

【K8s】ETCD备份和恢复的过程-CSDN博客

Kustomization

Kustomize是k8s的原生配置管理工具,它的作用就是对yaml配置文件进行自定义和管理,它解决了在不同环境中管理大量相似,但是又有差别的yaml文件的难题。他的工作方式就是采用base+ overlay模式,首先定义一个base,包含了1套通用的,在所有环境中都共享的yaml文件,再创建一个overlay针对特定的生产环境,只定义与base配置中不同的部分。这些不同点被称为补丁(patch),例如增加副本数量,更改镜像标签,修改config map中的配置数据。第三步就是使用这个Kustomization.yaml文件。这个文件,会告诉Kustomize基础配置在哪里,需要应用哪些补丁或者修改。Kustomize会动态的,将base和overlay合并生成最终的yaml配置,并应用到集群中。

CRD意义

 custom resource definition自定义资源定义,它就像一个新的模板,告诉k8s api有一种新的资源类型,它是元数据,定义了新资源的结构,但本身不做任何事情。CR自定义资源是根据CR户这个模板创建的一个具体的实例,它是数据,是用句声明的期望状态,还通常是一个yaml文件,由用户提交给k8s。它的意义首先k8s只能管理它内置的对象,比如pod service但是有了CRD,k8s就可以管理任何东西,比如数据库、中间件,它变成了一个云原生的操作系统,可以使用统一的k8s api来管理整个数据中心的所有资源。第二它实现了声明式的api,你只要提交一个yaml文件,就可以得到一个,你想要的资源。第三只有CRD或者CR是不够的,它们只是静态的声明,还需要operator去控制它operator=crd+controlle(控制器)r,控制器监听特定类型的CR的增删改查,当用户创建一CR时,控制器会解决这个yaml文件,然后通过一系列的操作驱动整个系统达到期望状态。最后,构建了丰富的生态系统,几乎所有的顶级的云原生项目(如 IstioArgo CD 等),这些复杂系统的安装和管理,只需要kubectl apply -f一个yaml文件即可。

CRD应用场景

CRD 的典型应用场景主要有:

1. 数据库管理:如 MySQLRedis 等数据库实例的声明式管理。

2. 应用部署:自定义应用部署资源(如 Application CRD)。

3. 监控告警:Prometheus ServiceMonitorAlertRule 等。

4. 网络策略:自定义网络配置和安全策略。

5. 备份恢复:定时备份任务的声明式定义。

6. CI/CD 流水线:自定义 Pipeline 资源。

CRD的创建和使用过程

1、创建一个yaml文件来定义CRD

2、Kubectl apply -f myapp-crd.yaml  创建CRD

Kubectl api-resources | grep -i CustomResourceDefinition 可以查看创建的CRD资源

创建一个yaml文件来定义CR

3、Kubectl apply -f myapp-sample.yaml  创建CR

4、创建控制器

5、部署控制器pod

6、使用CR

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/95242.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/95242.shtml
英文地址,请注明出处:http://en.pswp.cn/web/95242.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据分享】多份土地利用矢量shp数据分享-澳门

而今天要说明数据就是多份土地利用矢量shp数据分享-澳门。数据介绍▲ 土地利用数据(2025年)▲土地利用数据(2018年)▲ 30m土地利用数据(2023年)▲ 公路铁路道路河流水系数据概况其他概况注:本文…

增强现实—Gated-attention architectures for task-oriented language grounding

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

CC攻击的技术分析与防御策略

CC攻击(Challenge Collapsar Attack)是一种针对Web应用的拒绝服务攻击方式,其主要通过模拟正常用户行为来消耗服务器资源。为了更好地理解这种攻击,让我们详细分析其技术原理及防御策略。CC攻击的技术原理CC攻击主要是通过发送大量…

【图论】分层图

一、分层图的核心思想 分层图是一种将图的不同状态拆分为多个“层”的建模方法,每层对应一种特定状态。通过这种方式,可以将复杂的状态转移问题转化为多层图中的最短路径问题。 核心特点: 层内边:表示普通操作(如正常行…

当稳定币开始生息:USDT0 与 Berachain 的二次进化故事

如果说过去几年,稳定币是 DeFi 世界里最安稳的一块基石,那么 2025 年的 Berachain 正在把它们重新塑造成一种新的资产类型。在这条新兴的公链上,稳定币不再只是 “资金的搬运工”,而是摇身一变,成为能生息、能博弈、能…

Kafka、RabbitMQ 与 RocketMQ 在高并发场景下的高可用与性能对比分析

Kafka、RabbitMQ 与 RocketMQ 在高并发场景下的高可用与性能对比分析 消息队列作为分布式系统中常见的异步解耦组件,在高并发场景下对可用性和性能提出了极高的要求。本文基于生产环境需求,深入分析 Kafka、RabbitMQ 与 RocketMQ 三大主流消息中间件在高…

深入理解 HTTP 与 HTTPS:区别以及 HTTPS 加密原理

目录 一、HTTP 与 HTTPS 的基本概念 二、HTTP 与 HTTPS 的核心区别 三、为什么需要 HTTPS? 四、HTTPS 的加密通信原理(核心) 1. 客户端发起 HTTPS 请求 2. 服务端返回 SSL/TLS 证书 3. 客户端验证证书 4. 客户端生成对称密钥并用公钥…

零售行业的 AI 革命:从用户画像到智能供应链,如何让 “精准营销” 不再是口号?

AI 浪潮下的零售变革​在科技飞速发展的今天,人工智能(AI)正以前所未有的态势席卷全球,深刻地改变着各行各业的运营模式和发展轨迹,零售行业自然也难以置身事外。AI 技术凭借其强大的数据处理能力、精准的分析预测能力…

PyTorch 面试题及详细答案120题(96-105)-- 性能优化与调试

《前后端面试题》专栏集合了前后端各个知识模块的面试题,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,SQL,Linux… 。 前后端面试题-专栏总目录 文章目录 一、本文面试题目录 96. 如何查看PyTorch模型的…

Linux 孤儿进程 (Orphan Process)

🎁个人主页:工藤新一 🔍系列专栏:C面向对象(类和对象篇) 🌟心中的天空之城,终会照亮我前方的路 🎉欢迎大家点赞👍评论📝收藏⭐文章 文章目录孤…

Linux Tun/Tap 多队列技术

🔥 Linux Tun/Tap 多队列技术 引用:Linux tun/tap 驱动多队列模式(C/C) 📖 引言 Tun/Tap 是 Linux 内核提供的虚拟网络设备,广泛应用于 VPN、虚拟化、网络隧道等领域。传统单队列模式在高吞吐量场景下存…

docker 启动一个clickhouse , docker 创建ck数据库

1. 拉镜像:docker pull clickhouse/clickhouse-server2. 创建容器并且启动命令:docker run -d --name clickhouse-server \-p 8123:8123 -p 9000:9000 \clickhouse/clickhouse-server3. 日志文件的映射,可以自己配置下,目前创建的…

合约服务架构-OOP 方式

文章目录前言🎯 经典的面向对象编程!1. 🏗️ **封装 (Encapsulation)**2. 🧬 **继承 (Inheritance)**3. 🎭 **多态 (Polymorphism)**4. 🎨 **抽象 (Abstraction)**🏛️ 设计模式的应用1. **工厂…

C# 生成器模式(一个投资跟踪程序)

一个投资跟踪程序 我们考虑一个稍微简单一点的例子,在这个例子中,用一个类构造一个用户界面。假设我 们要编写一个程序来跟踪投资的效益。我们有股票、债券和基金等投资项目,对每一种投资项 目都要显示持有量的列表,这样就能够选择…

【DBCExcelConvent】CAN报文解析辅助工具之DBC与Excel互转

前言 CAN总线翻译文件DBC是整车解析过程中非常核心的一部分,因此为了能被各大CAN工具解析,它也有自己的一套编码规则。但并不是无时无刻都有条件打开该文件,对于工程师而言。其实比较直观和通用的大多数还是Excel表格。因此,为了打…

如何将iPhone日历传输到电脑

iPhone日历是i设备上一个非常出色的内置应用程序,可以帮助你创建、查看和管理日程或事件。对于所有iPhone用户来说,在iPhone日历上添加新事件非常容易。然而,当涉及到将日历从iPhone传输到电脑时,许多人可能会感到困惑&#xff0c…

TDengine 3.3.7.0 新增性能基准工具 taosgen

taosgen 工具参考手册 taosgen 是时序数据领域产品的性能基准测试工具,支持数据生成、写入性能测试等功能。taosgen 以“作业”为基础单元,作业是由用户定义,用于完成特定任务的一组操作集合。每个作业包含一个或多个步骤,并可通…

模式组合应用-组合模式

写在前面Hello,我是易元,这篇文章是我学习设计模式时的笔记和心得体会。如果其中有错误,欢迎大家留言指正! 本文为设计模式间的组合使用,涉及代码较多,个人觉得熟能生巧,希望自己能从中学习到新…

在Ubuntu中安装配置MySql Server

1.安装MySql Server在命令行控制台执行安装命令:sudo apt install mysql-server安装完成后,因为没有root用户的密码,所以,登录不了mysql的cli。另外,MySql 8以上,lower-case-table-names默认值0&#xff0c…

Docker 40个自动化管理脚本-1 (20/40)

文章目录1. 自动化容器创建脚本2. 批量启动所有容器3. 批量停止运行中容器#!/bin/bash4. 批量删除停止的容器5. 运行容器并在退出后自动清理6. 自动重启关键容器7. 容器资源监控脚本8. 监控所有容器资源使用9. 检查所有容器日志10. 清理未使用资源脚本11. 删除悬空镜像12. 容器…