09 2024 档案
摘要:1、简介 kubernetes提供了两种的服务发现模式,环境变量和DNS。pod中的应用程序可以通过它们访问其他Service 2、环境变量 当创建一个pod时,kubernetes默认会见同一命名空间下的所有Service信息以环境变量的形式注入pod中。其中SERVICE_NAME_SERIVI
阅读全文
摘要:1、Service概述 Service是kubernetes中的一种资源对象,用于定义一组pod的网络访问规则,它为pod提供了一个稳定的统一访问入口,允许客户端始终使用同一个ip地址进行访问,避免了直接使用podip地址导致的不稳定性 Service主要有以下两种功能: 负载均衡:当多个pod提供
阅读全文
摘要:1、背景 在 Kubernetes 中,每次微服务的代码发布都意味着创建新版本的 pod 并删除旧 pod,如果部署不够优雅的话,可能出现如下两个问题: 正在处理请求的pod被删除,在请求没有做幂等处理的情况下,就会出现数据重复、数据错误,亦或导致分布式系统数据不一致; Kubernetes 将流量
阅读全文
摘要:1、简介 Deployment和DaemonSet资源主要用于部署和管理守护进程型的应用程序,如nginx、mysql、java进程等。这类应用程序的特点是持续运行,通常在没有明确停止或下线的情况下一直保持运行状态。此外,kubernetes还提供了Job和CronJob资源,用于管理一次性任务和定
阅读全文
摘要:1、DaemonSet简介 DaemonSet资源用于在集群中的每个节点上运行一个pod副本,具有以下特点 - 在每个节点上运行一个pod - 当向集群中加入一个新节点或者从集群中移除一个节点时,DaemonSet会自动在新节点上启动一个pod或在移除的节点上删除pod - 可以使用节点选择器或亲和
阅读全文
摘要:1、应用回滚简介 在滚动更新过程中,如果新版本的pod启动失败或者已升级完成,但新版本中存在bug,则可以选择回滚到之前的可用版本。‘kubectl rollout‘命令可以方便的执行回滚和其他滚动更新管理,该命令支持Deployment、DaemonSet和statefulset资源 查看博客网站
阅读全文
摘要:1、滚动更新实现 通过查看Deployment事件来了解具体的升级过程,如下所示: [root@k8s-master ~]# kubectl describe deployment django-blog -n blog Events: Type Reason Age From Message No
阅读全文
摘要:1、Deployment简介 Deployment是kubernetes中最常用的工作负载资源,具有以下特点和功能 - 副本管理:确保指定数量的pod副本在集群中运行。如果pod副本数小于期望值,则会自动创建pod;如果pod的副本数多余期望值,则删除多余的pod - 滚动更新:采用滚动更新策略,逐
阅读全文
摘要:在kubernetes中,通常不会直接创建pod。都是使用工作负载资源deployment、statefulset来创建和管理pod。这种方式简化了pod的管理,提供了诸多如多副本、滚动和更新、回滚和自动扩展等告警功能,使得部署和管理应用程序变得方便和搞笑 工作负载资源概述 工作负载资源是kuber
阅读全文
摘要:pod资源对象的着重需要了解的有:pod资源的概念、设计模式、基本管理操作、常用字段配置以及生命周期管理。具体如下 - pod允许定义多个容器,这些容器之间存在密切协作关系。pod主要为它们提供可交互的环境,包括共享网络和共享存储 - 启动容器时可通过command和args字段来执行命令或传递参数
阅读全文
摘要:1、创建pod 当创建一个pod时,它是通过多个组件来完成的 假设通过kubelet run nginx --image=ningx命令创建一个pod,其工作流程如下: 1、kubectl向API server发起创建pod的请求,请求中包含pod的配置信息 2、API server接收到请求后,校
阅读全文
摘要:1、容器服务质量 服务质量(quality of Services,QoS),是kubernetes用于对pod的进行优先级划分的一种机制。通过QoS,kubernetes将pod划分为3个等级。如下所示 Guaranteed 优先级最高 pod中每个容器都被设置了CPU/内存的资源请求和资源限制,
阅读全文
摘要:1、简介 容器生命周期回调是指在容器的生命周期中执行用户定义的操作。 kubernetes支持以下生命周期回调 PostStart(容器启动后):在容器启动后立即执行的回调,它可以用于执行一些初始化任务 PreStop(容器停止前):在容器停止之前执行的回调。它可以用于执行清理或保存状态的操作 可以
阅读全文
摘要:初始化容器(initContainers)是Pod中一种特殊类型的容器,专用于在主容器启动之前执行一些初始化任务和操作,以满足主容器所需的环境。 初始化容器在整个pod的生命周期内仅运行一次,并且在主容器启动之前完成它们的任务,既初始化容器一旦任务完成,就必须退出。 初始化容器有以下应用场景 数据库
阅读全文
摘要:1、资源限制 默认情况下,容器可以无限制的使用节点上所有的资源(如内存、cpu)。 假设在一个节点上运行多个pod,其中一个pod的访问量突然增加,该pod将不断请求节点资源。最终该pod占用大量资源,导致其他的资源缺乏足够的资源可用,从而引发访问速度非常慢,甚至无法正常提供服务的问题。 为了避免出
阅读全文
摘要:1、kubernetes中的资源对象是什么,有什么作用 在 Kubernetes 中,资源对象是集群内的一个个实体,它们代表了集群的状态和行为。这些资源对象通过 Kubernetes 的 API 进行定义和管理,每种资源对象都有特定的作用和用途 获取所有的资源 kubectl api-resourc
阅读全文