随笔分类 - 黄嘉波-笔记汇总
摘要:在Kubernetes(简称K8S)中,Calico作为网络插件提供了容器网络解决方案和网络策略管理。以下是Calico的主要组件: Felix Felix是Calico的核心守护进程,在每个节点上运行,负责配置和维护本地网络策略、路由规则以及ARP表项等。 Calico CNI插件 Calico的
阅读全文
摘要:在Kubernetes(简称K8s)中,Horizontal Pod Autoscaler(HPA)是一种自动扩展Pod副本数量的机制,其原理是基于集群中运行的应用程序资源使用情况动态调整Pod副本的数量。 HPA的工作原理可以概括为以下几个步骤: 监控指标: HPA通过与Kubernetes Me
阅读全文
摘要:在Kubernetes(简称K8s)集群中,可以进行多种优化以提升性能、稳定性和资源利用率。以下是一些常见的优化措施: 控制面组件优化: kube-apiserver 高可用与扩展:通过配置多个API服务器实例并使用负载均衡器分发请求,确保即使单个节点故障也不会影响服务;设置合适的内存和CPU限制,
阅读全文
摘要:在Kubernetes(简称K8s)中,ReplicaSet和Deployment是两个相关但用途不同的资源对象: ReplicaSet(RS): ReplicaSet的主要职责是确保集群中特定数量的Pod副本始终处于运行状态。 它通过标签选择器来管理一组具有相同标签的Pod,当Pod因为任何原因终
阅读全文
摘要:在Kubernetes(简称K8s)中,Headless服务(也称为无头服务或无Cluster IP服务)是一种特殊类型的Service资源,它不分配ClusterIP地址。其主要作用如下: 直接访问Pod: 当创建一个Headless Service时,kube-dns或者coreDNS会为该服务
阅读全文
摘要:在Kubernetes(简称K8s)中,Pod的生命周期包含了一系列阶段和事件,从创建到终止。以下是一个简化的Pod生命周期概述: 创建阶段: 用户通过API服务器提交一个Pod定义(YAML或JSON格式)。 API服务器验证并接受Pod配置,将其存储在etcd中。 kube-scheduler根
阅读全文
摘要:在Kubernetes中,节点故障驱逐Pod的过程涉及多个参数和组件的相互作用。以下是该过程的简要概述: 默认设置:在默认配置下,节点故障时,工作负载的调度周期约为6分钟。 关键参数: node-monitor-period:节点控制器(node controller)检查每个节点的间隔,默认值为5
阅读全文
摘要:在Kubernetes(简称K8s)中,滚动更新是一个受控的过程,用于逐步替换集群中的应用实例以部署新版本,同时保持服务连续性。以下是滚动更新的核心步骤: 启动更新: 用户通过修改Deployment、DaemonSet或StatefulSet等控制器的Pod模板,比如更新容器镜像版本。 当这些变更
阅读全文
摘要:在Kubernetes(简称K8s)中创建Pod的过程涉及多个组件的交互,以下是简化版的Pod创建流程: 客户端请求: 用户通过kubectl apply命令、控制台界面或者API调用提交一个Pod的定义文件(YAML或JSON格式),向集群中的kube-apiserver发送创建Pod的请求。 验
阅读全文
摘要:在Kubernetes(简称K8s)中,为了实现高可用性(HA),不同的组件有不同的机制: kube-apiserver 高可用原理: 负载均衡:在一个集群中,通常会部署多个kube-apiserver实例,并通过负载均衡器(如云服务商的负载均衡服务或硬件负载均衡器,或者是内部软件如NGINX等)对
阅读全文
摘要:在Kubernetes(简称K8s)中,Pod污点(Taints)和容忍度(Tolerations)是集群调度策略的一部分,用于控制Pod在哪些节点上可以被调度运行。 污点(Taints): 节点上设置的污点表达了一个条件,它类似于一个标签,但带有负面效果。 污点作用于节点,表明该节点“排斥”或“不
阅读全文
摘要:在Kubernetes(简称K8S)中,Pod亲和性和反亲和性(Affinity and Anti-Affinity)是集群调度策略的重要组成部分,它们用于控制Pod如何与节点或其他Pod相对应地放置或避免放置在一起。 Pod亲和性(Affinity): Pod亲和性允许用户指定某种规则,使得Pod
阅读全文
摘要:在Kubernetes(K8s)中,Flannel作为一个常用的容器网络解决方案,其主要功能是为集群中的各个节点提供跨主机的网络连通性,即实现Pod间的通信。然而,Flannel默认情况下并不能直接固定节点IP地址和Pod的IP地址。 节点IP地址:节点的IP地址通常是根据集群所处的基础设施决定的,
阅读全文
摘要:在Kubernetes(简称K8S)中,Flannel作为常用的网络插件之一,为集群提供覆盖网络(Overlay Network)支持,帮助Pod间实现跨主机通信。Flannel支持多种后端网络模式来实现这一功能,主要包括: VXLAN模式: VXLAN是一种Layer 2虚拟化技术,它通过在IP包
阅读全文
摘要:在Kubernetes(简称K8S)中,有状态应用(Stateful Application)和无状态应用(Stateless Application)是根据应用程序对数据处理方式以及实例间的关系来区分的两种类型: 无状态应用(Stateless Application): 数据处理:无状态应用不保
阅读全文
摘要:在Kubernetes(简称K8S)中,DaemonSet是一种控制器资源对象,它的主要特性包括: 每个节点运行一个实例: DaemonSet确保集群中的每个工作节点上都运行着一个指定的Pod副本。这意味着当DaemonSet被创建时,系统会自动调度Pod到所有符合条件的节点上,确保每个节点上都有且
阅读全文
摘要:在Kubernetes中,PersistentVolume(PV)对象具有以下几种生命周期状态: Available (可用): PV在被创建并设置为可供绑定的状态时处于Available状态。 在此状态下,PV尚未与任何PersistentVolumeClaim(PVC)关联或绑定。 Bound
阅读全文
摘要:在Kubernetes(简称K8s)中,PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 是实现存储持久化的关键组件。它们之间的关联是用来动态或静态地将集群的存储资源与用户对存储的需求进行匹配和绑定的过程。 PersistentVolume (P
阅读全文
摘要:在Kubernetes(简称K8s)中,数据持久化是通过Volume机制来实现的。Volume是一个抽象概念,它代表了Pod能够访问的存储资源,这些资源可以是本地磁盘、网络文件系统(NFS)、云提供商提供的块存储或对象存储等。 以下是Kubernetes实现数据持久化的关键组件和过程: Volume
阅读全文
摘要:在Kubernetes(简称K8s)中,Service是定义访问Pod的一种抽象方法,它提供了负载均衡和网络代理功能。以下是Kubernetes Service的几种主要类型: ClusterIP (默认类型) 创建一个仅集群内部可以访问的虚拟IP。 通过这个IP地址,Kubernetes会将流量路
阅读全文