etcdctl安装 访问etcd的GitHub仓库,链接为:https://github.com/etcd-io/etcd/releases 在该页面中,找到与您的操作系统和体系结构相匹配的最新版本的etcd二进制文件。例如,对于Linux系统,您可以下载以etcd-vX.Y.Z-linux-amd ...
kube-controller之history
ControllerRevisionControllerRevision 实现了一个不可变的状态数据快照。客户端负责序列化和反序列化包含其内部状态的对象一旦成功创建了 ControllerRevision,就不能对其进行更新,但是可以被删除。APIServer会拒绝所有试图修改 Data 字段的请求 ...
kube-controller之ttlafterfinished
TTLAfterFinishedTTLAfterFinished是一种自动清理已完成的 Job(包括 Complete 或 Failed 状态)的方法。其使用 TTL 机制,通过指定 Job的 .spec.ttlSecondsAfterFinished 字段。 当 TTLAfterFinished- ...
kube-controller之job
Job在k8s中,Job是用于运行批处理或单次任务的资源。它代表了一个任务或一组并行任务,直到成功完成。Job通常用于数据处理、备份或其他需要执行一次或定期执行的任务CronJob。 以下是k8s中Job的一些关键特性和特点: 执行:Job确保任务成功完成后才将其标记为“完成”。每个任务都会执行直 ...
k8s hasSynced
k8s cache在k8s中为减轻apiserver的压力,会使用缓存来存储k8s中的资源,这样每次访问就可以直接从缓存了获取数据(k8s通过watch,resync机制来保证本地缓存和数据的同步)。 当我们在使用informer机制时,必须等待资源同步到本地缓存中。所以如何等待和判断数据已经同步到 ...
k8s Pod Qos
QOSQos(Quality of Service),k8s会根据Pod容器中指定的资源约束为每个Pod设置QoS类。k8s依赖这种分类来决定当Node上没有足够可用资源时要驱逐哪些 Pod。 QoS 类k8s 对你运行的 Pod 进行分类,并将每个 Pod 分配到特定的 QoS类中。 k8s 使用 ...
kube-controller之resourceclaim
动态资源分配动态资源分配是一个用于在 Pod 之间和 Pod 内部容器之间请求和共享资源的新 API。 它是对为通用资源所提供的持久卷 API 的泛化。第三方资源驱动程序负责跟踪和分配资源。 不同类型的资源支持用任意参数进行定义和初始化. resource.k8s.io/v1alpha2 API 组 ...
kube-controller之ttl
在k8s中TTLController负责根据集群大小在Node上设置ttl annotations。TTL annotations告诉kubelet在重新请求APISerever之前可以缓存资源对象(比如: secrets,configmap)多长时间。 // pkg/controller/ttl/ ...
kube-controller之daemonset
Kubernetes中的DaemonSet Controller是负责管理DaemonSet资源的控制器,确保在集群中的每个节点上都运行指定数量的Pod副本。DaemonSet Controller是一种类型的控制器,用于在每个节点上运行一个Pod副本,以便在整个集群中覆盖所有节点。DaemonSe ...
kube-controller之resource-quota
在 Kubernetes 中,ResourceQuota(资源配额)是一种机制,用于对命名空间中的资源使用进行限制和控制。它可以帮助管理员在 Kubernetes 集群中实施资源管理策略,确保不同的命名空间或用户不会滥用资源或超出预定的限制。 ResourceQuota 控制器是 Kubernete ...
k8s controller-expectation
Controller Expectation在Kubernetes中,Controller Expectation(控制器期望机制)是一种用于协调多个控制器对共享资源的操作的机制。它通过维护每个控制器对资源的期望状态,以确保只有一个控制器能够成功执行操作。 该机制的实现是通过Expectations ...
k8s源码中的一些实现
本文主要记录k8s中源码中一些函数实现。持续更新。 函数批量调用// pkg/controller/replicaset/replica_set.go// slowStartBatch 尝试调用fn总共count次,刚开始以较小的并发batchSize调用fn函数(用于检查是否发生错误)// 如果未 ...
kube-controller之hpa
HPAHPA全称HorizontalPodAutoscaler,pod水平自动扩缩。在 Kubernetes 中,HorizontalPodAutoscaler 自动更新工作负载资源 (例如 Deployment 或者 StatefulSet), 目的是自动扩缩工作负载以满足需求。 水平扩缩意味着对 ...
kube-controller之ServiceAccounts
ServiceAccountsController 是 Kubernetes 中的一个控制器,负责管理和维护 Service Account 资源。 Service Account 是 Kubernetes 中用于身份验证和授权的一种机制。它与 Pod 关联,为 Pod 提供一个身份标识。通过 Se ...
k8s之kube-proxy[下]
k8s之kube-proxy[上] kube-proxy是Kubernetes集群中的一个核心组件,负责实现服务的负载均衡和网络代理功能。 kube-proxy的源码分析可以涉及多个文件和功能模块,以下是一些主要文件和功能模块的概述: cmd/kube-proxy/app:该包包含了kube-pro ...
k8s之kube-proxy[上]
kube-proxy 是集群中每个节点(node)上所运行的网络代理, 是实现 Kubernetes 服务(Service) 概念的一部分。 kube-proxy 维护节点上的一些网络规则, 这些网络规则会允许从集群内部或外部的网络会话与 Pod 进行网络通信。 一次请求过程中需要kube-pro ...
kubelet之prober
在 Kubernetes 中,kubelet 组件负责管理和运行每个节点上的容器。kubelet 组件包含一个名为 prober 的子组件,它是用于容器的健康检查的一部分。 prober 是 kubelet 组件的一部分,它负责执行容器的健康检查。健康检查是一种用于确定容器是否正常运行的机制。pro ...
kubelet之imagegc-manager
imagegc-manager负责管理容器镜像生命周期。当磁盘的使用率达到所设置的值时会将没有使用的镜像给删除掉。 kubelet通过如下的的参数来设置ImageGC策略: ImageGCHighThresholdPercent:触发gc的阈值,超过该值将会执行gc,当值为100时,不启动gc I ...