随笔分类 - 黄嘉波-笔记汇总 / Kubernetes:
摘要:在 Kubernetes (K8s) 中,externalTrafficPolicy 字段是 Service 对象的一个属性,它主要应用于 NodePort 和 LoadBalancer 类型的服务,用于控制外部流量进入集群后如何路由到后端的 Pods。 externalTrafficPolicy
阅读全文
摘要:在 Kubernetes (K8s) 中,NodePort 服务类型的默认端口范围通常是 30000-32767。这个范围是 Kubernetes 项目早期设定的标准,并且被广泛接受为默认配置。选择这个端口范围的原因有以下几点: 避免冲突: 低于 30000 的端口往往被系统保留给一些知名的网络服务
阅读全文
摘要:在Kubernetes (K8s) 中,etcdctl 是用于直接与 etcd 集群交互的命令行工具,主要用于管理和调试 etcd 存储中的键值对数据。etcd 是 K8s 集群的核心组件之一,它作为一个高可用的分布式键值存储系统,用于保存集群的所有重要配置数据。 以下是如何在 Kubernetes
阅读全文
摘要:在Kubernetes(K8s)中,etcd中的数据更改主要发生在以下几个场景中: 创建、更新和删除Kubernetes资源对象: 当用户在Kubernetes中创建(POST)、更新(PUT)或删除(DELETE)一个资源对象(如Pod、Service、Deployment等)时,Kubernet
阅读全文
摘要:在Kubernetes(K8s)中,etcd 是一个高度可靠、分布式的键值存储数据库,用于存储集群的共享配置和服务发现信息。etcd 在 Kubernetes 架构中扮演着核心组件的角色,是集群状态数据的关键存储后端。 1.etcd 的类型: 键值存储(Key-Value Store):etcd 最
阅读全文
摘要:在Kubernetes(K8s)中,Helm 是一个用于简化Kubernetes应用程序部署和管理的包管理工具。它采用了声明式配置和模板化的概念,使得Kubernetes资源的打包、安装、升级、回滚等操作变得更加方便和高效。 Helm 主要由两个核心组件构成: Helm CLI(命令行接口): 提供
阅读全文
摘要:在Kubernetes (K8s) 中,Pod的优雅终止过程是一个有序的过程,旨在确保Pod中运行的应用程序能够平滑关闭,释放资源,并尽可能减少因突然关闭带来的数据丢失和服务中断。以下是Pod优雅终止的一般步骤: 删除Pod请求 用户或控制器发出删除Pod的请求,比如通过 kubectl delet
阅读全文
摘要:在Kubernetes中,当Pod的业务量比较大时,可以通过水平伸缩(Horizontal Pod Autoscaling, HPA)和扩容(Scaling)来实现动态的资源管理。以下是实现水平伸缩和扩容的一些步骤和方法: 1. 水平伸缩(Horizontal Pod Autoscaling, HP
阅读全文
摘要:在Kubernetes(K8S)中,Service(svc)与Pod关联失败的原因可能有多种。以下是一些常见的原因: 网络问题: kube-proxy配置问题:如果kube-proxy没有正确配置或未开启masquerade,可能导致Pod发出的包无法被正确伪装成Service的IP和MAC地址,从
阅读全文
摘要:在 Kubernetes (K8s) 中,若要查看 Pod 中某个容器的日志,可以使用 kubectl logs 命令,并通过 -c 或 --container 参数指定容器名称。以下是命令格式: kubectl logs <pod_name> -c <container_name> 这里的 <po
阅读全文
摘要:在Kubernetes(K8S)中,Worker节点启动阶段大致包括以下几个关键步骤: 系统初始化: Worker节点操作系统启动,加载基础系统服务和配置。 安装必备软件,如Docker或containerd作为容器运行时环境。 kubelet启动: kubelet是Kubernetes在每个节点上
阅读全文
摘要:在Kubernetes (K8S) 中,Pod的数据存储位置主要取决于Pod中容器挂载的卷(volume)。Pod的数据存储可以通过多种方式在Kubernetes集群中持久化或临时存储,以下是如何确定Pod数据存储位置的方法: 查看Pod YAML配置: 检查Pod的YAML定义文件,可以明确看到容
阅读全文
摘要:kube-proxy 在 Kubernetes 集群中负责实现 Service 的网络代理和负载均衡功能,支持三种不同的工作模式: Userspace 模式(已过时): 在早期的 Kubernetes 版本中(1.2 之前),kube-proxy 默认使用 Userspace 模式。 在此模式下,k
阅读全文
摘要:在Kubernetes(K8S)中,将一个Worker节点加入到高可用集群的过程与加入单Master集群大体相似,但需要注意的是,高可用集群中的Master通常是通过负载均衡器暴露服务端点的,这样无论哪个Master节点宕机,Worker节点都可以连接到活跃的Master节点。以下是加入高可用Kub
阅读全文
摘要:1.Pod亲和性 (Pod Affinity) 作用: 资源协同:当Pod需要与具有特定标签的Node或已经在特定Node上运行的Pod紧密合作时,比如共享硬件加速器或者进行高效的数据交互,可以利用Pod亲和性将这些Pod调度到一起。 负载分片:在大规模集群中,可以根据业务需求,将相似类型的Pod调
阅读全文
摘要:在Kubernetes(K8s)中,“节点选择器”(Node Selector)和“节点亲和性”(Node Affinity)都是用来指导Pod调度到合适节点的机制,但它们在功能和灵活性上有一定的区别: 节点选择器(Node Selector): 是较早且较为基础的一种调度策略,用于简单匹配节点的标
阅读全文
摘要:在Kubernetes (K8s) 中,影响Pod调度的因素非常多,主要包括但不限于以下几个方面: 资源需求与限制: 资源请求(Requests):Pod在创建时声明需要的最小资源量,如CPU和内存。调度器会寻找至少能满足这些资源请求的Node进行调度。 资源限额(Limits):Pod可使用的最大
阅读全文
摘要:在Kubernetes(K8S)中,解决周期性任务可以使用CronJob资源。CronJob是Kubernetes提供的一种工作负载API对象,它允许你根据预定的时间表(类似于Unix系统的cron作业)来周期性地运行任务。 以下是如何使用CronJob来解决周期性任务的步骤: 创建CronJob资
阅读全文
摘要:在Kubernetes(K8S)中,要让Pod运行一次并完成一次性任务,可以使用Job资源。Job是Kubernetes中用于运行一次性任务的工作负载API对象。它创建一个或多个Pod,并确保指定数量的Pod成功终止。当Pod成功完成后,Job将跟踪成功完成的情况。当达到指定的成功完成次数时,任务(
阅读全文
摘要:在Kubernetes (K8s) 中,可以通过不同的策略来实现金丝雀发布(灰度发布)和蓝绿发布。以下是两种发布方式在K8s中的基本实现方法: 金丝雀发布(灰度发布) 金丝雀发布是一种逐步将新版本应用推送给部分用户群体,以收集反馈并监控新版本表现的方式。在K8s中,可以通过以下步骤实现: 基于Dep
阅读全文