随笔分类 - 黄嘉波-笔记汇总 / Kubernetes:
摘要:在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会将流量路
阅读全文
摘要:在Kubernetes(K8s)中,Deployment和StatefulSet是两种不同类型的控制器对象,它们设计用于管理Pod的生命周期,但在管理和部署的应用程序类型、持久性保证以及Pod标识等方面存在显著区别: Deployment: 无状态应用:Deployment主要用于部署无状态服务,即
阅读全文
摘要:在Kubernetes (K8S) 中,Deployment的升级过程主要包括以下几个步骤: 更新Deployment配置: 当需要对应用程序进行升级时,通常会更新Deployment的YAML配置文件,可以更改的内容包括但不限于: 容器镜像版本(从v1.0升级到v2.0) 应用配置(环境变量、命令
阅读全文
摘要:在Kubernetes(简称K8s)中,创建一个Deployment的过程主要包括以下步骤: 编写Deployment YAML文件: 首先,需要使用YAML格式编写一个描述Deployment的配置文件。这个文件定义了 Deployment 的关键属性,如副本数(replicas)、容器镜像、Po
阅读全文
摘要:在Kubernetes(简称K8s)中,编写一个Deployment的YAML文件通常包括以下几个关键部分: apiVersion: apps/v1 # Kubernetes API版本,根据你的集群版本选择合适的API版本 kind: Deployment # 资源类型为Deployment me
阅读全文
摘要:在Kubernetes(K8S)中,实现API Server(kube-apiserver)的高可用性是构建稳定和可靠的集群架构的关键部分。以下是Kubernetes API Server实现高可用的主要方法: 冗余部署: 通常会部署多个API Server实例,并且它们之间是无状态的,这样任何一个
阅读全文
摘要:在Kubernetes(K8S)的部署中,二进制安装和使用Kubeadm工具进行安装的主要区别在于复杂性和灵活性: 二进制安装 手动与细致:通过下载官方提供的各个组件(如kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kubele
阅读全文