Kubernetes controller-manager
文章平均质量分 89
k8sssssssssssssssss
富士康质检员张全蛋
人生实难,唯有自渡。只有接受了真实现的现状和真实的自己,调整好心态,才能脚踏实地的活着,然后去发现角落处的那些惊喜和美好,去相信一切苦难困境都会过去!“即使身处阴沟,也要记得仰望星空”。
展开
-
Kubernetes APIServer,Etcd,controller manager,scheduler 高可用原理
这两个月和博云合作的项目是要用于客户生产环境的,这个和我以前做的东西有很大的不同,所有基础架构必须给出高可用的解决方案。在这之前我只做过一些流量较小的用户产品或者一些原型项目,一开始基础架构都只给出了单节点的解决方案,结果被大师兄喷这个在生产环境根本不可用。不过事实确实是在一个真实的分布式系统中硬件损坏、进程崩溃、网络不通都可能直接导致系统不可用。...原创 2022-07-20 21:28:27 · 1820 阅读 · 0 评论 -
Kubernetes kube-scheduler 硬核知识 控制器框架/Informer机制
之前我们了解了kube-scheduler,kube-scheduler其实经历了两个阶段,第一个阶段是predict阶段,把不符合要求的节点过滤掉。第二个阶段是priority,按照你的调度需求,把满足需求的备选节点打分,分数高的排在前面,最后从备选节点队列里面,第一个节点,也就是分值最高的节点,作为真正调度的节点,最后通过bind的方法,把节点和pod产生绑定的关系。......原创 2022-07-22 11:20:25 · 715 阅读 · 0 评论 -
Kuberbetes controller manager 控制器的协同原理
这个节点上面有kubelet,kubelet会去监听和我这个节点产生绑定关系的pod,比如使用getpod-owide可以查看到,那么kubelet就会去看调度的节点和我当前的节点hostname是否是一致的,那么说明我这里面是要启动这个pod的,那么kubelet就会去调用cri,来启动容器实例,调用cni为pod配置网络,如果有存储需求,那么就会调用csi接口。最对K8s这种分布式的系统,它是微服务管理系统,就是我有一个业务流,但是这个业务流是由不同的组件配合完成的,高内聚,松耦合。...原创 2022-07-22 12:15:22 · 359 阅读 · 0 评论 -
Kubernetes 编排其实很简单:谈谈“控制器”模型
实际上,你可能已经有所感悟:Pod 这个看似复杂的 API 对象,实际上就是对容器的进一步抽象和封装而已。说得更形象些,“容器”镜像虽然好用,但是容器这样一个“沙盒”的概念,对于描述应用来说,还是太过简单了。这就好比,集装箱固然好用,但是如果它四面都光秃秃的,吊车还怎么把这个集装箱吊起来并摆放好呢?所以,Pod 对象,其实就是容器的升级版。它对容器进行了组合,添加了更多的属性和字段。这就好比给集装箱四面安装了吊环,使得 Kubernetes 这架“吊车”,可以更轻松地操作它。而 Kubernet转载 2022-04-28 16:07:20 · 679 阅读 · 0 评论 -
Kubernetes 应用编排与管理: Deployment
本文将主要分享以下四方面的内容:需求来源; 用例解读; 操作演示以及架构设计。一、需求来源背景问题首先,我们来看一下背景问题。如下图所示:如果我们直接管理集群中所有的 Pod,应用 A、B、C 的 Pod,其实是散乱地分布在集群中。Deployment:管理部署发布的控制器这里就引入了我们今天课程的主题:Deployment 管理部署发布的控制器。可以看到我们通过 Deployment 将应用 A、B、C 分别规划到不同的 Deployment 中,每个 Dep..转载 2021-03-10 10:56:19 · 1294 阅读 · 0 评论 -
Kubernetes 经典PaaS的记忆:作业副本与水平扩展
而在今天这篇文章中,我就来为你详细讲解一下,Kubernetes 里第一个控制器模式的完整实现:Deployment。Deployment 看似简单,但实际上,它实现了 Kubernetes 项目中一个非常重要的功能:Pod 的“水平扩展 / 收缩”(horizontal scaling out/in)。这个功能,是从 PaaS 时代开始,一个平台级项目就必须具备的编排能力。举个例子,如果你更新了 Deployment 的 Pod 模板(比如,修改了容器的镜像),那么Deployment 就需要遵循转载 2022-04-30 15:43:45 · 671 阅读 · 0 评论 -
Kubernetes 灰度/滚动发布 滚动更新速率控制解读 maxUnavailable,maxSurge
利用kubernetes的滚动更新时,可能经常遇到发布“太快不稳定”或“太慢体验差”的情况。本文将介绍kubernetes滚动更新控制速率的特性。含义服务在滚动更新时,deployment控制器的目的是:给旧版本(old_rs)副本数减少至0、给新版本(new_rs)副本数量增至期望值(replicas)。大家在使用时,通常容易忽视控制速率的特性,以下是kubernetes提供的两个参数:maxUnavailable:和期望ready的副本数比,不可用副本数最大比例(或最大值),这个....原创 2020-11-10 17:34:14 · 14347 阅读 · 4 评论 -
Kubernetes 容器化守护进程的意义:DaemonSet
今天我和你分享的主题是:容器化守护进程的意义之 DaemonSet。在上一篇文章中,我和你详细分享了使用 StatefulSet 编排“有状态应用”的过程。从中不难看出,StatefulSet 其实就是对现有典型运维业务的容器化抽象。也就是说,你一定有方法在不使用 Kubernetes、甚至不使用容器的情况下,自己 DIY 一个类似的方案出来。但是,一旦涉及到升级、版本管理等更工程化的能力,Kubernetes 的好处,才会更加凸现。比如,如何对 StatefulSet 进行“滚动更新”(rol..转载 2022-05-30 16:58:49 · 686 阅读 · 0 评论 -
Kubernetes 深入理解StatefulSet(一):拓扑状态
今天我和你分享的主题是:深入理解 StatefulSet 之拓扑状态。在上一篇文章中,我在结尾处讨论到了 Deployment 实际上并不足以覆盖所有的应用编排问题。造成这个问题的根本原因,在于 Deployment 对应用做了一个简单化假设。它认为,一个应用的所有 Pod,是完全一样的。所以,它们互相之间没有顺序,也无所谓运行在哪台宿主机上。需要的时候,Deployment 就可以通过 Pod 模板创建新的 Pod;不需要的时候,Deployment 就可以“杀掉”任意一个 Pod。...转载 2022-05-24 23:48:18 · 561 阅读 · 0 评论 -
Kuberenetes 深入理解StatefulSet(二):存储状态
今天我和你分享的主题是:深入理解 StatefulSet 之存储状态。在上一篇文章中,我和你分享了 StatefulSet 如何保证应用实例的拓扑状态,在 Pod 删除和再创建的过程中保持稳定。而在今天这篇文章中,我将继续为你解读 StatefulSet 对存储状态的管理机制。这个机制,主要使用的是一个叫作 Persistent Volume Claim 的功能。在前面介绍 Pod 的时候,我曾提到过,要在一个 Pod 里声明 Volume,只要在 Pod 里加上 spec.volumes ..转载 2022-05-25 20:03:48 · 754 阅读 · 0 评论 -
Kubernetes 运行一次性任务Job
容器按照持续运行的时间可分为两类:服务类容器和工作类容器。服务类容器通常持续提供服务,需要一直运行,比如 http server,daemon 等。 工作类容器则是一次性任务,比如批处理程序,完成后容器就退出。Kubernetes 的 Deployment、ReplicaSet 和 DaemonSet 都用于管理服务类容器,对于工作类容器,我们用 Job。Job执行成功先看一个简单的 Job 配置文件 myjob.yml:[root@k8s-master ~]# cat m....原创 2020-11-06 15:18:02 · 3411 阅读 · 0 评论 -
Kubernetes 撬动离线业务:Job与CronJob
在前面的几篇文章中,我和你详细分享了 Deployment、StatefulSet,以及 DaemonSet 这三个编排概念。你有没有发现它们的共同之处呢?实际上,它们主要编排的对象,都是“在线业务”,即:Long Running Task(长作业)。比如,我在前面举例时常用的 Nginx、Tomcat,以及 MySQL 等等。这些应用一旦运行起来,除非出错或者停止,它的容器进程会一直保持在 Running 状态。但是,有一类作业显然不满足这样的条件,这就是“离线业务”,或者叫作 Batch Job(计算业转载 2022-06-13 23:24:44 · 324 阅读 · 0 评论 -
Kubernetes HPA pod扩容缩容基于Metrics Server(APIServer扩展)
第三种 Metrics,是 Kubernetes 相关的监控数据。这部分数据,一般叫作 Kubernetes 核心监控数据(core metrics)。这其中包括了 Pod、Node、容器、Service 等主要 Kubernetes 核心概念的 Metrics。其中,容器相关的 Metrics 主要来自于 kubelet 内置的 cAdvisor 服务。在 kubelet 启动后,cAdvisor 服务也随之启动,而它能够提供的信息,可以细化到每一个容器的 CPU 、文件系统、内存、网络等资源的使用情原创 2021-02-22 10:07:19 · 1145 阅读 · 0 评论 -
Kubernetes Kubeadm Kubelet 证书自动续签
Kubelet 证书自动续签K8s证书一般分为两套:K8s组件(apiserver)和Etcd假如按角色来分,证书分为管理节点和工作节点。• 管理节点:如果是kubeadm部署则自动生成,如果是二进制部署一般由cfssl或者openssl生成。• 工作节点:工作节点主要是指kubelet连接apiserver所需的客户端证书,这个证书由controller-manager组件自动颁发,默认是一年,如果到期,kubelet将无法使用过期的证书连接apiserver,从而导致无法正常工作,日志会原创 2021-02-25 10:54:23 · 4268 阅读 · 3 评论 -
Kubernetes controller-manager 常见参数解析
当 Kubernetes 中 Node 节点出现状态异常的情况下,节点上的 Pod 会被重新调度到其他节点上去,但是有的时候我们会发现节点 Down 掉以后,Pod 并不会立即触发重新调度,这实际上就是和 Kubelet 的状态更新机制密切相关的,Kubernetes 提供了一些参数配置来触发重新调度到嗯时间,下面我们来分析下 Kubelet 状态更新的基本流程。kubelet 自身会定期更新状态到 apiserver,通过参数--node-status-update-frequency指定上报频率,默原创 2022-01-23 15:15:15 · 1181 阅读 · 0 评论 -
Kubernetes Pod Eviction 简介
谈谈K8S Pod Eviction 机制_YP小站的博客-CSDN博客Pod Eviction 简介Pod Eviction是k8s一个特色功能,它在某些场景下应用,如节点NotReady、Node节点资源不足,把pod驱逐至其它Node节点。从发起模块...https://blog.csdn.net/qq_24794401/article/details/106626042Controller Manager 控制器是Kubernetes 集群的自动化管理控制中心,里面包含30 多个控制器,..转载 2022-01-14 12:04:54 · 986 阅读 · 0 评论 -
Kubernetes controller-manager Leader Election 机制来实现故障转移(Fail Over)
重学k8s: 04.Kubernetes集群高可用解析 - 架构小白|青蛙小白|关注程序开发、互联网技术、云原生向 Kubernetes 学习 - Controller manager 的高可用实现方式 - 人间指南向 Kubernetes 学习 - Controller manager 的高可用实现方式 这不是一系列入门级别的文章,也不是按部就班而来的,而是我看到哪里,发现有些代码写的精妙的地方,都值得我们学习下,顺手记录下来,一方面是让自己将来可以有迹可循,另外对大家应该也会有所帮助。 …http:/.原创 2022-01-07 19:13:13 · 2449 阅读 · 0 评论