k8s
文章平均质量分 83
k8s全称kubernetes,这个名字大家应该都不陌生,k8s是为容器服务而生的一个可移植容器的编排管理工具,越来越多的公司正在拥抱k8s,并且当前k8s已经主导了云业务流程,推动了微服务架构等热门技术的普及和落地,正在如火如荼的发展。
Young丶
这个作者很懒,什么都没留下…
展开
-
Kubernetes 那些奇技淫巧
有时我们可能需要在Kubernetes集群中创建一个容器来测试集群的状态或对其它容器进行操作,这时候我们需要一个操作节点,可以使用一个普通的CentOS容器来实现。看似很简单,使用数组的方式定义,所有命令使用跟 Dockerfile 中的 CMD 配置是一样的,但是有一点不同的是,我们可以想象一下这样的场景,让 Pod 来调用宿主机的 docker 能力,只需要将宿主机的。这是一种最暴力的方式,我们不建议直接操作etcd中的数据,在操作前请确认知道你是在做什么。必须具有可执行权限,否则容器启动时会出错。原创 2022-10-10 05:00:00 · 26874 阅读 · 0 评论 -
K8s 无备份,不运维!
Kubernetes 集群备份主要是备份 etcd 集群。而恢复时,主要考虑恢复整个顺序:停止 Kube-apiserver --> 停止 etcd --> 恢复数据 --> 启动 etcd --> 启动 kube-apiserver。原创 2024-03-28 14:06:19 · 463 阅读 · 0 评论 -
Kubernetes弃用Dockershim,转向Containerd:影响及如何应对
与之前的方案相比,这不仅带来了更纯粹的功能模块,而且缩短了调用链,提高了系统的效率和稳定性。containerd 是一种容器运行时引擎,原属于 Docker 的组件的一部分,主要提供容器生命周期管理(从创建到销毁容器)、拉取和推送镜像、存储管理(管理镜像及容器数据的存储)、调用 runc 容器运行等,现已由开源社区拆分脱离出来单独作为容器运行时项目。在 Kubernetes 中,Containerd 作为容器运行环境,负责管理 Pod 的生命周期,包括容器的创建、启动、停止和删除等操作。原创 2023-12-29 15:11:20 · 13267 阅读 · 0 评论 -
无痛迁移:图解 Kubernetes 集群升级步骤
在执行升级前,请确保备份重要数据和配置,并在生产环境中进行升级前做好充分测试。原创 2023-11-21 09:21:53 · 372 阅读 · 0 评论 -
Kubernetes 100个常用命令!点赞收藏一键三连
显示 Kubernetes 版本:显示集群信息:列出集群中的所有节点:查看一个具体的节点详情:列出所有命名空间:列出所有命名空间中的所有 pod:列出特定命名空间中的 pod:查看一个 Pod 详情:查看 Pod 日志:尾部 Pod 日志:在 pod 中执行命令:检查 Pod 准备情况:检查 Pod 事件:列出命名空间中的所有服务:查看一个服务详情:列出命名空间中的所有 Deployment:查看一个 Deployment 详情:查看滚动发布状态:查看滚动发布历史记录:列出命名空间中的所有 Stateful原创 2023-10-26 08:46:03 · 1097 阅读 · 0 评论 -
Kubernetes之network: failed to set bridge addr: “cni0“ already has an IP address different from xxx问题
再k8s网络插件错误导致Kubernetes部署应用时发现有Pod一直不能创建成功,使用得到的结果如下图:从上面的截图中看到问题出现在给Pod分配IP上,意思是cni0的IP不同于10.244.9.1/24,下面我们进入到node9中使用ifconfig命令查看IP信息,结果如下:从上面的图中我们可以看到flannel.1的IP为10.244.9.0,然后我们又使用cat /run/flannel/subnet.env,该文件内容如下:其实现在的问题就比较明确了,我们使用的Overlay ne原创 2023-04-17 05:30:00 · 41670 阅读 · 0 评论 -
K8s实战小技巧——该如何查看pod崩溃前的日志
并且是链接文件,链接到docker的容器的日志文件,同时kubelet还会保留上一个容器,同时有一个链接文件链接到pod上一个崩溃的容器的日志文件,使用previous就是查看的这个文件。看到分别指向了这两个容器的日志文件,一个是当前pod里在跑的容器,一个是pod上次跑的容器,现在已经退出了。下的日志文件,且专门有个链接文件来指向上一个退出容器的日志文件,以此来获取容器崩溃前的日志。的时候,读的是上次退出的容器的日志文件,由于kubelet为pod保留了上次退出的容器。代表是第2394次重启后的日志。原创 2023-06-01 06:30:00 · 50148 阅读 · 0 评论 -
企业级实战 Spring Boot + K8S 中的滚动发布、优雅停机、弹性伸缩、应用监控、配置分离
下面为大家介绍我司生产环境使用了3年的基于K8S的dev ops 配置实现 K8s + SpringCloud实现零宕机发版,优雅重启:健康检查+滚动更新+优雅停机+弹性伸缩+Prometheus监控+配置分离(镜像复用)原创 2023-05-26 09:15:00 · 35095 阅读 · 0 评论 -
针对大集群node 对 Kubernetes 集群七大优化大法
目前的解决方案是使用etcd operator来搭建etcd 集群,operator是CoreOS推出的旨在简化复杂有状态应用管理的框架,它是一个感知应用状态的控制器,通过扩展Kubernetes API来自动创建、管理和配置应用实例。对于公有云上的 Kubernetes 集群,规模大了之后很容器碰到配额问题,需要提前在云平台上增大配额。3、设置 —quota-backend-bytes 增大etcd的存储限制。4、需要配置单独的 Etcd 集群存储 kube-apiserver 的 event。原创 2023-05-04 07:30:00 · 41674 阅读 · 0 评论 -
Kubernetes 上 Java 应用的最佳实践
了解 Kubernetes 中的 liveness 和 readiness 探针之间的区别至关重要。如果这两个探针都没有仔细实施,它们可能会降低服务的整体运行,例如导致不必要的重启。第三种类型的探针,启动探针,是 Kubernetes 中一个相对较新的特性。它允许我们避免在 liveness 或 readiness 探针上设置 initialDelaySeconds ,因此如果您的应用程序启动需要很长时间,它特别有用。有关 Kubernetes 探针的一般和最佳实践的更多详细信息,我可以推荐。原创 2023-03-06 08:30:00 · 52757 阅读 · 0 评论 -
k8s 实战 常见异常事件 event 及解决方案分享
重启集群中的coredns组件发生重启(重新创建),一般是由于coredns组件压力较大导致oom,请检查业务是否异常,是否存在应用容器无法解析域名的异常。如果是local-dns重启,说明local-dns的性能也不够了,需要优化。原创 2023-01-06 08:15:00 · 60733 阅读 · 0 评论 -
Prometheus Operator实战—— Prometheus、Alertmanager、Grafana 监控Springboot服务 Tomcat
我们可以利用Prometheus client自定义metric这一步非必要,只是创建业务需要的监控数据@Service// 定义name为prometheus_counter的counter}try {}}}}原创 2022-12-19 10:40:46 · 60301 阅读 · 4 评论 -
Kubernetes 高级篇 k8s Event详述及持久化方案
Kubernetes的事件(Event)是一种资源对象(Resource Object),用于展示集群内发生的情况,Kubernetes系统中的各个组件会将运行时发生的各种事件上报给Kubernetes API Server。例如,调度器做了什么决定,某些Pod为什么被从节点中驱逐。可以通过或命令显示事件,查看Kubernetes集群中发生了哪些事件。执行这些命令后,默认情况下只会显示最近(1小时内)发生的事件。原创 2022-12-18 08:30:00 · 62628 阅读 · 1 评论 -
Kubernetes自定义监控指标——Prometheus Adapter实战演练
kubernetes的监控指标分为两种:Core metrics(核心指标):从 Kubelet、cAdvisor 等获取度量数据,再由提供给 kube-scheduler、HPA、 控制器等使用。Custom Metrics(自定义指标):由Prometheus Adapter提供API custom.metrics.k8s.io,由此可支持任意Prometheus采集到的指标。核心指标只包含node和pod的cpu、内存,原创 2022-12-17 09:00:00 · 51409 阅读 · 2 评论 -
Kubernetes核心指标监控——Metrics Server详解
从Kubernetes v1.8 开始,资源使用情况的监控可以通过 Metrics API的形式获取,例如容器CPU和内存使用率。这些度量可以由用户直接访问(例如,通过使用kubectl top命令),或者由集群中的控制器(例如,Horizontal Pod Autoscaler)使用来进行决策,具体的组件为Metrics Server,用来替换之前的heapster,heapster从1.11开始逐渐被废弃。Metrics-Server是集群核心监控数据的聚合器。原创 2022-12-16 10:40:24 · 56395 阅读 · 2 评论 -
k8s镜像下载不下来?利用 github Action 自己动手一次性解决难题,丰衣足食
无论是在学习k8s还是正式环境部署k8s中,第一步安装k8难倒了各大英雄好汉。原因是k8s 各种组件镜像在谷歌服务器上(k8s.gcr.io),而我们有墙的存在,所以会经常性的下载失败。解决办法是搭梯子,或者是使用其他镜像源。本仓库使用配合 github action 同步 k8s docker镜像(k8s.gcr.io) 到 dockerhub。提高k8s docker镜像(k8s.gcr.io)成功率,解决云原生第一大难题。docker-image-syncer 运行原理下拉所需镜像。原创 2022-12-13 10:49:18 · 59330 阅读 · 0 评论 -
【Prometheus】 Prometheus 入门到实战搭建监控系统
多维度数据模型方便的部署和维护灵活的数据采集强大的查询语言实际上,多维度数据模型和强大的查询语言这两个特性,正是时序数据库所要求的,所以 Prometheus 不仅仅是一个监控系统,同时也是一个时序数据库。那为什么 Prometheus 不直接使用现有的时序数据库作为后端存储呢?这是因为 SoundCloud 不仅希望他们的监控系统有着时序数据库的特点,而且还需要部署和维护非常方便。..................原创 2021-12-20 14:27:43 · 6779 阅读 · 0 评论 -
【Prometheus】Exporter详解
在 【Prometheus】 Prometheus 入门到实战搭建监控系统 中为了采集主机的监控样本数据,我们在主机上安装了一个Node Exporter程序,该程序对外暴露了一个用于获取当前监控样本数据的HTTP访问地址。这样的一个程序称为Exporter,Exporter的实例称为一个Target。Prometheus通过轮询的方式定时从这些Target中获取监控数据样本,并且存储在数据库当中。 在这一章节当中我们将重点讨论这些用于获取特定目标监控样本数据的程序Exporter。Exporter是什么原创 2021-12-21 11:29:55 · 18760 阅读 · 2 评论 -
【Prometheus】监控Kubernetes
Kubenetes是一款由Google开发的开源的容器编排工具,在Google已经使用超过15年。作为容器领域事实的标准,Kubernetes可以极大的简化应用的管理和部署复杂度。本章中,我们将介绍Kubernetes的一些基本概念,并且从0开始利用Prometheus构建一个完整的Kubernetes集群监控系统。同时我们还将学习如何通过Prometheus Operator简化在Kubernetes下部署和管理Promethues的过程。Kubenetes是一款由Google开发的开源的容器编排工具(.原创 2022-08-12 09:00:00 · 17640 阅读 · 0 评论 -
【Prometheus】PromQL 万字详解
在上一文当中,通过Node Exporter暴露的HTTP服务,Prometheus可以采集到当前主机所有监控指标的样本数据。其中非#开头的每一行表示当前Node Exporter采集到的一个监控样本:node_cpu和node_load1表明了当前指标的名称、大括号中的标签则反映了当前样本的一些特征和维度、浮点数则是该监控样本的具体值。原创 2021-12-21 10:13:43 · 11870 阅读 · 0 评论 -
【Prometheus】Relabeling机制
在Prometheus所有的Target实例中,都包含一些默认的Metadata标签信息。可以通过Prometheus UI的Targets页面中查看这些实例的Metadata标签的内容:上面这些标签将会告诉Prometheus如何从该Target实例中获取监控数据。除了这些默认的标签以外,我们还可以为Target添加自定义的标签。一般来说,Target以__作为前置的标签是在系统内部使用的,因此这些标签。原创 2022-08-12 04:30:00 · 19763 阅读 · 0 评论 -
Spring Boot实战,整合Prometheus实现应用监控
Micrometer 为 Java 平台上的性能数据收集提供了一个通用的 API,应用程序只需要使用 Micrometer 的通用 API 来收集性能指标即可。Micrometer 会负责完成与不同监控系统的适配工作。这就使得切换监控系统变得很容易。Micrometer 还支持推送数据到多个不同的监控系统。Micrometer类似日志系统中SLF4J。Micrometer中有两个最核心的概念,分别是是计量器(Meter)和计量器注册表(MeterRegistry),下面来分别看下这两个概念。...原创 2022-08-14 22:51:51 · 19612 阅读 · 0 评论 -
【Prometheus】Prometheus 集群与高可用
实现自定义Remote Storage需要用户分别创建用于支持remote_read和remote_write的HTTP服务。实现自定义Remote Storage需要用户分别创建用于支持remote_read和remote_write的HTTP服务。原创 2022-08-12 04:45:00 · 22476 阅读 · 0 评论 -
Prometheus Operator 实战 监控 etcd 集群
这节课给大家介绍如何在 Prometheus Operator 中添加一个自定义的监控项。除了 Kubernetes 集群中的一些资源对象、节点以及组件需要监控,有的时候我们可能还需要根据实际的业务需求去添加自定义的监控项,添加一个自定义监控的步骤也是非常简单的。接下来我们就来为大家演示如何添加 etcd 集群的监控。无论是 Kubernetes 集群外的还是使用 Kubeadm 安装在集群内部的 etcd 集群,我们这里都将其视作集群外的独立集群,因为对于二者的使用方法没什么特殊之处。原创 2022-11-23 07:30:00 · 26962 阅读 · 0 评论 -
【Prometheus】 Grafana数据与可视化
通过Dashboard页面的Settings选项,可以进入Dashboard的配置页面并且选择Variables子菜单:用户需要指定变量的名称,后续用户就可以通过$variable_name的形式引用该变量。类型工作方式Query允许用户通过Datasource查询表达式的返回值动态生成变量的可选值Interval该变量代表时间跨度,通过Interval类型的变量,可以动态改变PromQL区间向量表达式中的时间范围。如rate(node_cpu[2m])Datasource。...原创 2022-08-11 04:30:00 · 22501 阅读 · 0 评论 -
监控系统 Prometheus 和 Zabbix 对比
新公司要上监控,面试提到了 Prometheus 是公司需要的监控解决方案,我当然是选择跟风了。之前主要做的是 Zabbix,既然公司需要 Prometheus,那没办法,只能好好对比一番,了解下,毕竟技多不压身。但稍稍深入一点,我就体会到了 Prometheus 的优点,总结一下这两种监控方式。两种监控工具的历史简介PrometheusKubernetes 自从 2012 年开源以来便以不可阻挡之势成为容器领域调度和编排的领头羊。Kubernetes 是 Google Borg 系统的开源实转载 2021-12-20 15:09:32 · 9575 阅读 · 0 评论 -
【Prometheus】Node Exporter常用查询PromQL 语句大总结
通过计算cpu空闲使用率 用1-空闲率 则为cpu使用率表示机器在非重启情况下开机到现在所使用的时间(s)由于cpu资源会不断的被机器利用,其中对应了很多模式,包括内核进程、用户进程、io等待、中断等使用模式可以通过查询node_cpu_seconds 指标来看各种对应的模式cpu空闲对应的模式:model=“idle”:空闲的cpu时间。......原创 2022-08-10 07:15:00 · 21834 阅读 · 0 评论 -
【Promethues 实战】监控 Kubernetes 集群节点
监控 Kubernetes 集群节点原创 2022-12-08 16:50:47 · 38124 阅读 · 0 评论 -
Kubernetes 调度器详解
是 kubernetes 系统的核心组件之一,主要负责整个集群资源的调度功能,根据特定的调度算法和策略,将 Pod 调度到最优的工作节点上面去,从而更加合理、更加充分的利用集群的资源,这也是我们选择使用 kubernetes 一个非常重要的理由。如果一门新的技术不能帮助企业节约成本、提供效率,我相信是很难推进的。默认情况下,kube-scheduler 提供的默认调度器能够满足我们绝大多数的要求,我们前面和大家接触的示例也基本上用的默认的策略,都可以保证我们的 Pod 可以被分配到资源充足的节点上运行。但是原创 2022-12-09 08:45:00 · 40291 阅读 · 5 评论 -
K8s 实战 动态PV StorageClass 存储类
前面我们学习了 PV 和 PVC 的使用方法,但是前面的 PV 都是静态的,什么意思?就是我要使用的一个 PVC 的话就必须手动去创建一个 PV,我们也说过这种方式在很大程度上并不能满足我们的需求,比如我们有一个应用需要对存储的并发度要求比较高,而另外一个应用对读写速度又要求比较高,特别是对于 StatefulSet 类型的应用简单的来使用静态的 PV 就很不合适了,这种情况下我们就需要用到动态 PV,也就是我们今天要讲解的 StorageClass。Kubernetes提供了一套可以自动创建PV的机制,即原创 2022-12-05 11:21:12 · 39889 阅读 · 7 评论 -
Prometheus Operator 极简配置方式在k8s一条龙安装Prometheus 监控
提供Kubernetes原生部署和管理Prometheus和相关的监控组件。该项目的是简化和自动化配置Prometheus的监控Kubernetes集群。Kubernetes自定义资源:使用Kubernetes自定义资源来部署和管理Prometheus、Alertmanager和相关组件。简化的部署配置:从本地Kubernetes资源配置Prometheus的基本功能,如版本、持久性、保留策略和副本。原创 2022-11-23 07:15:00 · 36059 阅读 · 0 评论 -
高级 Kubernetes 部署策略
在现代技术领域,Kubernetes 是一个采用非常广泛的平台。它让组织能够大规模部署和管理应用程序。这一容器编排平台极大的简化了基于微服务的应用程序的基础架构配置工作,并通过模块化设计实现了高效的负载管理。Kubernetes 支持各种部署资源,以帮助运维人员使用更新和版本控制来实现 CI/CD 管道。虽然 Kubernetes 提供了滚动更新作为默认部署策略,但一些用例需要非常规方法来部署或更新集群服务。原创 2022-11-22 06:00:00 · 29441 阅读 · 2 评论 -
Kubernetes HPA 的三个误区与避坑指南
至此,我们已经大致了解了 HPA 的工作机理。合理利用 HPA 可以有效提升资源利用率,在这之中我们总结了一些注意事项,熟记这些点可以在使用 HPA 时“有效避坑”。HPA 的设计架构导致了 HPA 只能被动响应指标进行弹性扩缩,这种模式下,弹性滞后是一定存在的。HPA 的利用率计算方法是基于 Request,实际利用率/期望利用率超过 100%是正常的,配置较高的期望利用率需要合理规划集群资源和审视相应风险。原创 2022-11-21 05:30:00 · 26295 阅读 · 1 评论 -
k8s查看各组件日志的方法
K8S是kubernetes的缩写,是为解决容器服务编排而生的,在运维K8S服务的过程中,经常会遇到各种报错和诊断问题,那么我们一般怎么查看K8S组件的日志,怎么看日志呢?原创 2022-11-18 07:00:00 · 33162 阅读 · 0 评论 -
kubernetes调度器性能调优
当集群中的可调度节点少于 50 个时,调度器仍然会去检查所有的 Node,因为可调度节点太少,不足以停止调度器最初的过滤选择。如果集群中的 Node 在多个区域,那么调度器将从不同的区域中轮询 Node,来确保不同区域的 Node 接受可调度性检查。在对下一个 Pod 进行调度的时候,前一个 Pod 调度筛选停止的 Node 列表的位置,将会来作为这次调度筛选 Node 开始的位置。在大规模集群中,你可以调节调度器的表现来平衡调度的延迟(新 Pod 快速就位)和精度(调度器很少做出糟糕的放置决策)。原创 2022-11-16 08:00:00 · 24725 阅读 · 0 评论 -
k8s master 实现高可用
k8s的高可用,主要是实现Master节点的高可用。那么我们看看各个组件是如何解决高可用的。:只工作在当前Node节点上,无需高可用。:etcd如果是放在集群内部的,在kubeadm1.5之后,对于多Master集群,一个Master节点加入集群后将自动实现集群化扩展。所以集群已经自动实现高可用,无需再人工干预。:对于多Master集群,这个组件只会有一个正常工作,其它处于休眠挂起状态。当工作节点发生故障时才会唤醒另一个接管。所以集群已经自动实现高可用,无需再人工干预。原创 2022-11-16 06:45:00 · 28037 阅读 · 0 评论 -
K8s 有损发布问题探究
流量有损是在应用发布时的常见问题,其现象通常会反馈到流量监控上,如下图所示,发布过程中服务 RT 突然升高,造成部分业务响应变慢,给用户的最直观体验就是卡顿;或是请求的 500 错误数突增,在用户侧可能感受到服务降级或服务不可用,从而影响用户体验。转载 2022-11-15 01:00:00 · 24100 阅读 · 0 评论 -
必知必会,7 张图轻松理解 K8S 集群内服务通信
深入了解支持服务间通信的 3 个原生 k8s 对象:ClusterIP Service、DNS 和 Kube-Proxy。原创 2022-11-07 04:45:00 · 16884 阅读 · 0 评论 -
Jenkins 真得牛逼,只怪你不会用而已~
jenkins 有 2 种流水线分为声明式流水线与脚本化流水线,脚本化流水线是 jenkins 旧版本使用的流水线脚本,新版本 Jenkins 推荐使用声明式流水线。文档只介绍声明流水线。声明式流水线在声明式流水线语法中,流水线过程定义在Pipeline{}中,Pipeline 块定义了整个流水线中完成的所有工作,比如。原创 2022-11-02 05:15:00 · 25988 阅读 · 1 评论 -
喜马拉雅容器化实践
针对开发日常的各种问题,比如项目 IP 是多少,项目为什么启动失败等,我们专门开发了一个后台,起了一个很唬人的名字:容器云平台。但容器在最开始落地时,为了降低推广成本,减少使用差异过大(相比物理机)给开发带来的不适应,需要在容器内运行ssh,实质上要求在容器内运行多进程,这需要一个多进程管理工具(entrypoint不能是业务进程),最终在 runit/systemd/supervisor 中选择了 runit。喜马拉雅在发布平台的实践中,为了保障线上服务的稳定,沉淀了一套自己的经验和规则。转载 2022-10-23 10:29:43 · 24391 阅读 · 0 评论