Kubernetes教程
目录
点击章节进入正文阅读
01
Kubernetes简介
Kubernetes概念 Kubernetes是一个开源的容器编排和管理平台,用于自动化应用程序的部署、扩展和操作,可促进声明式配置和自动化。 Kubernetes拥有一个庞大且快速增长的生态,其服务、支持和工具的使用范围相当广泛。 Kubernetes的目标是简化应用程序容器... 浏览 558 02Kubernetes安装
使用kubeadm安装Kubernetes 安装kubeadm 在安装Kubernetes之前,你需要准备一台兼容的Linux主机,并满足以下要求: 1、内存要求:每台机器需要至少2 GB的RAM,如果低于这个数字可能会影响应用程序的内存运行。 2、CPU要求:每台机器需要至少2个核心的... 浏览 1137 03Kubernetes架构
Kubernetes节点(Node) Kubernetes通过将容器放入运行在节点(Node)上的 Pod 中来执行工作负载,每个节点可以是虚拟机或物理机器,具体取决于集群的配置。节点包含了运行 Pod 所需的服务,而这些节点则由控制面负责管理。 通常,一个 Kubernetes 集群会... 浏览 739 04Kubernetes Pod管理
什么是Pod? Pod是Kubernetes中的最小调度单元,一个Pod封装一个容器(也可以封装多个容器),Pod里的容器共享存储、网络等。也就是说,可以把整个pod看作虚拟机,然后每个容器相当于运行在虚拟机的进程,同一个pod里的所有容器都被统一安排和调度。 也可... 浏览 498 05Kubernetes资源管理/扩展
Kubernetes资源对象 Kubernetes是一种强大的容器编排平台,提供了多种资源对象来定义和管理应用程序的各个方面。以下是几个常见的Kubernetes资源对象: Pod(容器组):Pod是Kubernetes中最小的可部署单元,它包含一个或多个紧密关联的容器。Pod提供了一... 浏览 1232 06Kubernetes容器镜像
容器镜像可以被视为是一个封装了应用程序和其所需软件依赖的可执行软件包。它是一个独立运行的软件包,可以放置在任何支持容器技术的环境中。容器镜像对于其运行时环境有明确的要求和假设。 通常情况下会创建应用程序的容器镜像,并将其存储在一个仓库中(... 浏览 1334 07Kubernetes容器回调
一、容器环境 Kubernetes 的容器环境给容器提供了几个重要的资源: 文件系统,其中包含一个镜像 和一个或多个的卷; 容器自身的信息; 集群中其他对象的信息。 1、容器信息 Pod的名称和命名空间可以通过下行API转换为环境变量,容器内可以使... 浏览 501 08Kubernetes容器运行时类
Kubernetes(常简称为K8s)是一个用于容器编排和管理的开源平台。在Kubernetes中,容器运行时类是指容器运行时的实现或接口,用于在Kubernetes集群中管理和执行容器的各项操作。RuntimeClass是一个用于选择容器运行时配置的特性,容器运行时配置用于运行Pod中... 浏览 503 09Kubernetes EndpointSlices
一、EndpointSlice 特性状态: Kubernetes v1.21 [stable] Kubernetes 的 EndpointSlice API 提供了一种简单的方法来跟踪 Kubernetes 集群中的网络端点(network endpoints)。EndpointSlices 为 Endpoints 提供了一种可扩缩和可拓展的替代方案。 二、En... 浏览 1224 10Kubernetes网络策略
如果希望在 IP 地址或端口层面(OSI 第 3 层或第 4 层)控制网络流量, 则可以考虑为集群中特定应用使用 Kubernetes 网络策略(NetworkPolicy)。 NetworkPolicy 是一种以应用为中心的结构,允许设置如何允许 Pod 与网络上的各类网络“实体” (我们这里使用实... 浏览 382 11Kubernetes Service(服务)
Kubernetes中Service是将运行在一个或一组Pod上的网络应用程序公开为网络服务的方法。Service 的一个关键目标是无需修改现有应用以使用某种不熟悉的服务发现机制。 可以在 Pod 集合中运行代码,无论该代码是为云原生环境设计的,还是被容器化的老应用。 可以... 浏览 955 12Kubernetes Ingress
Ingress 是 Kubernetes 集群中用于管理外部访问服务的 API 对象,典型的访问方式是通过 HTTP。Ingress 可以提供负载均衡、SSL 终结和基于名称的虚拟托管。 一、术语 为了表达更加清晰,常见术语如下: 1、节点(Node): Kubernetes 集群中的一台工作机器... 浏览 896 13Kubernetes EndpointSlice
一、EndpointSlice Kubernetes 的 EndpointSlice API 提供了一种简单的方式来跟踪 Kubernetes 集群中的网络端点(network endpoints)。EndpointSlices 提供了一个可扩展和可拓展的替代方案,用于替代传统的 Endpoints。 二、EndpointSlice API Endpoi... 浏览 929 14Kubernetes DNS
Kubernetes 为 Service 和 Pod 创建 DNS 记录,可以使用一致的 DNS 名称而非 IP 地址来访问 Service。Kubernetes 发布有关 Pod 和 Service 的信息,这些信息被用来对 DNS 进行编程,在此过程中,Kubelet 配置 Pod 的 DNS,以便运行中的容器可以通过名称而不是... 浏览 433 15Kubernetes IPv4/IPv6双栈
IPv4/IPv6 双协议栈网络可以同时为 Pod 和 Service 分配 IPv4 和 IPv6 地址。从 Kubernetes 1.21 版本开始,默认情况下启用了 IPv4/IPv6 双协议栈网络,以支持为 Pod 和 Service 同时分配 IPv4 和 IPv6 地址。这意味着集群中的 Pod 和 Service 可以同时具有 I... 浏览 420 16Kubernetes拓扑感知路由
拓扑感知路由(Toplogy Aware Routing)调整路由行为,以优先保持流量在其发起区域内。 这种方式在某些情况下有助于降低成本或提高网络性能。拓扑感知路由是 Kubernetes 中用于确定 Pod 之间最优路径的机制。通过使用节点和区域信息,将流量保留在同一个区域... 浏览 592 17Kubernetes Windows网络
Kubernetes 提供了对 Linux 或Windows 节点的全面支持,使用户可以在同一个集群内混合部署这两种类型的节点,为企业和开发人员提供了更大的灵活性和选择性,能够满足各种应用程序的需求。 一、Windows容器网络 Windows 容器网络通过 CNI 插件暴露,工作方式... 浏览 1216 18Kubernetes ClusterIP分配
在 Kubernetes 中,Service 是一种抽象的概念,用于公开一组 Pod 上运行的应用程序。Service 可以具有集群范围内的虚拟 IP 地址(使用 type: ClusterIP 的 Service)。 当客户端发起连接请求时,Kubernetes 会根据 Service 的负载均衡规则将流量分发给后台的... 浏览 1168 19Kubernetes内部流量策略
一、简介 Kubernetes服务内部流量策略已开启内部流量限制,这意味着只有发起方所在节点内的服务端点才能接收到内部流量。这里的“内部”流量指的是当前集群中 Pod 所发起的流量。这种机制有助于降低开销并提高资源利用率。 二、使用服务内部流量策略 可以通... 浏览 1086 20Kubernetes卷
Kubernetes容器中的文件在磁盘上是临时存储的,这给在容器中运行重要应用带来了一些问题。当容器崩溃或停止时,会出现一个问题。此时容器状态未保存,因此在容器生命周期内创建或修改的所有文件都将丢失。在崩溃期间,kubelet 会以干净的状态重新启动容器。当... 浏览 596 21Kubernetes持久卷
一、简介 存储管理与计算实例的管理是两个完全不同的问题。PersistentVolume子系统通过一组API,将存储制备的细节从其使用方式中抽象出来,为用户提供和管理员使用。为了实现这一点,Kubernetes引入了两种新的API资源:PersistentVolume和PersistentVolumeCl... 浏览 1370 22Kubernetes投射卷
一、简介 在Kubernetes中,投射卷(Projected Volumes)是一种可以将多个现有的卷源映射到一个共同目录上的卷类型。目前,以下类型的卷源可以被投射: secret downwardAPI configMap serviceAccountToken 所有的卷源都要求处于 Pod 所在的... 浏览 355 23Kubernetes临时卷
一、简介 有些应用程序需要额外的存储,但并不关心数据在重启后是否仍然可用。例如,缓存服务经常受限于内存大小,而且可以将不常用的数据转移到比内存慢的存储中,对总体性能的影响并不大。另外,有些应用程序需要以文件形式注入的只读数据,比如配置数据或... 浏览 343 24Kubernetes存储类
一、简介 StorageClass (存储类)为管理员提供了描述存储"类"的方法。不同的类型可能会映射到不同的服务质量等级或备份策略,或者由集群管理员制定的任意策略。Kubernetes本身并不清楚各种类代表的是什么,这个类的概念在其他存储系统中有时被称为"配置文件... 浏览 274 25Kubernetes动态卷制备
一、动态卷制备 动态卷制备允许按需创建存储卷。如果没有动态制备,集群管理员需要手动联系云或存储提供商来创建新的存储卷,并在Kubernetes集群中创建PersistentVolume对象来表示这些卷。动态制备功能消除了集群管理员预先配置存储的需求。相反,它能够在用... 浏览 1061 26Kubernetes卷的快照
提示:学习本篇教程前请先参阅《Kubernetes持久卷》。 一、卷快照介绍 PersistentVolume 和 PersistentVolumeClaim 这两个 API 资源用于给用户和管理员制备卷,而 VolumeSnapshotContent 和 VolumeSnapshot 这两个 API 资源则用于创建卷快照。 VolumeSna... 浏览 1046 27Kubernetes卷快照类
提示:学习本篇教程前请先参阅《Kubernetes卷的快照》和《Kubernetes存储类》。 一、卷快照类 Kubernetes 的卷快照类(VolumeSnapshotClass)为管理员提供了一种在配置卷快照时描述存储"类"的方法,就像StorageClass为管理员提供了一种在配置存储卷时描述存... 浏览 777 28Kubernetes CSI卷克隆
提示:学习本篇教程前请先参阅《Kubernetes卷》。 一、CSI卷克隆 CSI卷克隆功能现在支持通过dataSource字段指定要克隆的已存在的PVC,以创建已有Kubernetes卷的副本。这个克隆的副本可以像任何常规卷一样使用,并且与源PVC完全相同。不同之处在于,后端设备... 浏览 361 29Kubernetes存储容量
一、存储容量 Kubernetes 存储容量通常是有限的,并且在集群中的不同节点上可能存在差异,主要取决于存储供应器和集群的配置。对于网络存储,可能并非所有节点都能够直接访问它,取决于存储供应商的设置和网络拓扑。某些存储可能只在特定的节点上提供服务,... 浏览 895 30Kubernetes卷数限制
一、卷数限制 不同的云供应商通常对可以关联到一个节点的卷数量进行限制,这些限制是由云供应商实施的,并且Kubernetes必须遵守这些限制。如果超过了云供应商的限制,可能会导致Pod调度失败或卡住等待卷的关联。 例如谷歌、亚马逊和微软等云供应商在其文... 浏览 963 31Kubernetes Windows存储
一、持久存储 持久存储(Persistent Storage)是指可以长期保存数据的存储方式,与短暂的临时存储(Ephemeral Storage)相对。在容器编排和管理平台中,需要提供持久存储功能来保证在容器和节点之间的数据持久化,以支持应用程序的数据处理和持久性需求。... 浏览 1011 32Kubernetes ConfigMap
ConfigMap 是 Kubernetes 中的一个 API 对象,用于保存应用程序所需的非敏感性配置数据,如字符串、文件和命令行参数等。使用 ConfigMap 可以将这些配置数据与容器镜像分离,方便应用程序的可移植性和部署管理。 Pod 可以通过多种方式使用 ConfigMap 中保... 浏览 610 33Kubernetes Secret配置
一、Secret Secret 是 Kubernetes 中用于保存敏感信息的特殊对象。它可以包含密码、令牌、密钥等少量机密数据,并且可以被挂载到 Pod 的规约或镜像中使用。使用 Secret 的好处是,可以将机密数据与应用程序代码分离,从而增加安全性。 在创建 Secret 时,... 浏览 1280 34Kubernetes Pod资源管理
在 Kubernetes 中,可以为 Pod 中的每个容器选择性地指定所需的资源数量,最常见的是 CPU 和内存。此外,还有其他类型的资源,例如 GPU、网络带宽和磁盘空间等。 在为容器指定资源时,可以使用 request 和 limit 字段。request 表示容器所需的最小资源数量... 浏览 346 35Kubernetes Kubeconfig
一、Kubeconfig文件 Kubeconfig 文件用于组织有关 Kubernetes 集群、用户、命名空间和身份认证机制的信息,并配置集群访问。Kubectl 命令行工具使用 Kubeconfig 文件来查找选择集群所需的信息,并与集群的 API 服务器进行通信。Kubeconfig 文件包含多个配置... 浏览 539 36Kubernetes Windows管理
Linux 和 Windows 在资源管理方式上有很大的区别。在 Linux 节点上,cgroup 用作资源控制的 Pod 边界。在这个边界内创建容器以便于隔离网络、进程和文件系统。 cgroup API 可用于收集 CPU、I/O 和内存使用统计数据。 相比之下,在 Windows 中,每个容器对... 浏览 1022 37Kubernetes云原生安全
一、云原生 Kubernetes 是一个开源的容器编排和管理平台,为云原生应用提供了一种标准化的方式来部署、扩展和管理应用程序。它最初由 Google 设计并开源,现在已经成为 CNCF(Cloud Native Computing Foundation)的一部分,得到了全球广泛的认可和支持。... 浏览 1164 38Kubernetes Pod安全性标准
一、Pod安全性标准 Pod 安全性标准定义了三种不同的策略(Policy),以广泛覆盖安全应用场景, 这些策略是叠加式的(Cumulative),安全级别从高度宽松至高度受限。 本篇教程概述了每个策略的要求。 Profile 描述 Privileged 不受限制的策略,... 浏览 316 39Kubernetes服务账号
本篇教程将介绍 Kubernetes 中的 ServiceAccount 对象, 并讲述服务账号的工作原理、使用场景、限制、替代方案等信息。 一、服务账号介绍 服务账号在 Kubernetes 中是用于非人类用户的账号,它为集群中的不同实体提供了特定的身份标识。应用 Pod、系统组件... 浏览 987 40Kubernetes Pod安全性准入
一、Pod 安全性准入 Kubernetes Pod安全性标准(Security Standard)定义了不同的隔离级别,用于限制 Pod 的行为。这些标准能够以一种清晰、一致的方式定义如何限制 Pod 行为。 Kubernetes 提供了一个内置的 Pod Security Admission Controller,用于执行... 浏览 814 41Kubernetes Windows安全
一、保护节点上的Secret数据 在 Windows 上,Secret 数据以明文形式写入节点的本地存储(与在 Linux 上使用 tmpfs / 内存中文件系统不同),因此需要采取额外的措施来保护 Secret 文件的位置和卷级加密。具体来说,集群操作员应该采取以下两项额外措施:... 浏览 551 42Kubernetes API访问控制
Kubernetes API访问控制是其安全性的重要组成部分,它确保了对Kubernetes的各种客户端进行认证和鉴权操作。API请求访问的安全性对于这样的系统来说是非常重要的考虑因素,如果不对请求加以限制,那么可能会导致请求被滥用,甚至受到黑客的攻击。 用户可以... 浏览 748 43Kubernetes Secret实践
在 Kubernetes 中,Secret 是一个用于存储敏感信息(如密码、OAuth 令牌和 SSH 密钥)的对象。Secret 允许用户对如何使用敏感信息进行更多的控制,并减少信息意外暴露的风险。默认情况下,Secret 值被编码为 base64 字符串并以非加密的形式存储,但可以配置为... 浏览 371 44Kubernetes多租户
共享集群可以节省成本并简化管理,但同时也带来了安全性、公平性和管理嘈杂邻居等挑战。集群可以通过多种方式共享,例如不同的应用可能在同一个集群中运行,或者同一应用的多个实例可能在同一个集群中运行,每个实例对应一个最终用户。所有这些类型的共享通常... 浏览 439 45Kubernetes API服务器风险
Kubernetes API 服务器是外部用户和服务与集群交互的主要入口,它提供了几种关键的内置安全控制,例如审计日志和准入控制器。然而,存在一些方式可以绕过这些安全控制,从而修改集群的配置或内容。本教程详细描述了绕过 Kubernetes API 服务器中内置安全控制... 浏览 424 46Kubernetes安全检查清单
Kubernetes安全检查清单是一个用于确保 Kubernetes 集群安全性的基本指导列表,提供了一些基本的检查Kubernetes安全检查清单是一个用于确保 Kubernetes 集群安全性的基本指导列表,包含认证和鉴权、网络安全、Pod安全、日志和审计等。 一、认证和鉴权 1、在... 浏览 900 47Kubernetes资源限制范围
一般情况下,Kubernetes 集群上的容器运行使用的计算资源没有限制。使用 Kubernetes 资源配额,管理员(也称为集群操作者)可以在一个指定的命名空间内限制集群资源的使用与创建。在命名空间中,一个 Pod 最多能够使用命名空间的资源配额所定义的 CPU 和内存... 浏览 792 48Kubernetes资源配额
一、简介 资源配额是 Kubernetes 中的一种机制,用于限制用户或团队在共享具有固定节点数目的集群时的资源使用量。它的主要作用包括限制命名空间下所创建对象的数量和计算资源的总量。 资源配额通过 ResourceQuota 对象来定义,对每个命名空间的资源消耗... 浏览 722 49Kubernetes进程ID约束/预留
一、进程ID约束和预留机制 Kubernetes提供了进程ID(PID)约束和预留机制,以帮助管理员更好地管理节点上的资源。通过限制一个Pod中可以使用的PID数目,可以防止某个Pod中的进程消耗过多的系统资源,从而影响其他进程的正常运行。同时,管理员还可以为每个节... 浏览 685 50Kubernetes调度器
在 Kubernetes 中,调度是指将 Pod 放置到合适的节点上,以便对应节点上的 Kubelet 能够运行这些 Pod。 一、调度概览 调度器通过 Kubernetes 的监测(Watch)机制来发现集群中新创建且尚未被调度到节点上的 Pod,会将所发现的每一个未调度的 Pod 调度到一个... 浏览 1047 51Kubernetes指派Pod给节点
约束一个 Pod可以限制其只能在特定的节点上运行,或优先在特定的节点上运行。有几种方法可以实现这一点,推荐的方法都是用标签选择算符来进行选择。通常这样的约束不是必须的,因为调度器将自动进行合理的放置(比如,将 Pod 分散到节点上,而不是将 Pod 放置... 浏览 797 52Kubernetes Pod开销配置
一、Pod开销简介 在Kubernetes中,Pod的开销是一种独特的机制,用于计算Pod基础设施在容器请求和限制之上消耗的资源。启用Pod开销后,调度器在考虑Pod分配时,除了要考虑容器资源请求的总和外,还需要加入Pod的这部分额外开销。同时,Kubelet在确定pod cgrou... 浏览 1212 53Kubernetes Pod调度就绪态
Pod 一旦创建,就会被认为准备好进行调度。Kubernetes 调度程序会尽职尽责地寻找节点来放置所有待处理的 Pod。然而,在实际环境中,有些 Pod 可能会长时间处于 "缺少必要资源" 的状态。这些 Pod 实际上以一种不必要的方式扰乱了调度器(以及 Cluster AutoScal... 浏览 275 54Kubernetes Pod分布约束
使用拓扑分布约束(Topology Spread Constraints) 可以控制 Pod 在集群内故障域之间的分布, 例如区域(Region)、可用区(Zone)、节点和其他用户自定义拓扑域,有助于实现高可用并提升资源利用率。 可以将集群级约束设为默认值,或为个别工作负载配置拓... 浏览 734 55Kubernetes污点和容忍度
节点亲和性是 Pod 的一种属性,它使 Pod 被吸引到一类特定的节点上。这种属性可以基于偏好或硬性要求来设置。而污点(Taint)则相反,它使节点能够排斥一类特定的 Pod。 为了解决污点对 Pod 调度的影响,可以使用容忍度(Toleration)。容忍度应用于 Pod... 浏览 488 56Kubernetes调度框架
调度框架是面向 Kubernetes 调度器的一种插件架构,它为现有的调度器添加了一组新的“插件”API。这些API允许大多数调度功能以插件的形式实现,同时使调度“核心”保持简单且易于维护。插件会被编译到调度器中,从而扩展其功能和灵活性。 调度框架定义了一些扩... 浏览 1035 57Kubernetes动态资源分配
动态资源分配是 Kubernetes 中用于请求和共享资源的 API,它可以在 Pod 之间和 Pod 内部容器之间进行。它是对通用资源提供的持久卷 API 的泛化,可以支持不同类型的资源定义和初始化,并且可以通过任意参数进行配置。第三方资源驱动程序负责跟踪和分配这些资... 浏览 569 58Kubernetes调度器性能优化
作为 kubernetes 集群的默认调度器, kube-scheduler 主要负责将 Pod 调度到集群的 Node 上。在大规模集群中,可以调节调度器的表现来平衡调度的延迟和精度。本教程主要介绍一些在大规模 Kubernetes 集群下调度器性能优化的方式。 可以通过设置 kube-sched... 浏览 318 59Kubernetes资源装箱
Kubernetes资源装箱,也被称为“bin packing”,是一种优化容器部署的策略。在kube-scheduler的调度插件NodeResourcesFit中存在两种支持启用资源装箱的策略:MostAllocated和RequestedToCapacityRatio。 一、使用MostAllocated策略 MostAllocated 策略基于资... 浏览 298 60Kubernetes优先级和抢占
Pod的优先级和抢占是Kubernetes中的一种调度策略。这种特性从Kubernetes 1.8版本开始引入。Pod的优先级表示该Pod相对于其他Pod的重要性。当一个Pod无法被调度时,调度器会尝试抢占(驱逐)低优先级的Pod,以使悬决的Pod可以被调度。 在一个并非所有用户都... 浏览 473 61Kubernetes节点压力驱逐
节点压力驱逐是指在 Kubernetes 集群中,kubelet 主动终止 Pod 以回收节点上资源的过程。kubelet 是运行在每个节点上的 Kubernetes 组件,负责管理节点上的容器和 Pod。它会监控节点的资源使用情况,如内存、磁盘空间和文件系统的 inode 等。 当节点上的资... 浏览 525 62Kubernetes API驱逐
API 发起的驱逐是一个先调用 Eviction API 创建 Eviction 对象,再由该对象体面地中止 Pod 的过程。具体来说,使用 API 发起驱逐可以通过直接调用 Eviction API 或者编写客户端程序来实现。例如,可以使用 kubectl drain 命令来发起驱逐,该命令会创建一个 Ev... 浏览 297 63Kubernetes管理应用部署
Kubernetes 提供了一些工具来帮助管理应用部署,包括扩缩容和更新。本教程详细介绍了Kubernetes管理应用部署,例如组织资源配置、kubectl 中的批量操作、金丝雀部署、更新注解、扩缩应用、更新资源等等。 一、组织资源配置 许多应用需要创建多个资源,例如... 浏览 419 64Kubernetes集群网络系统
Kubernetes 集群网络系统的工作原理是一项挑战。这个系统是 Kubernetes 的核心部分,它需要处理多个关键问题,包括:高度耦合的容器间通信、Pod 间通信、Pod 与 Service 间通信以及 Service 与 External IP 间的通信等。 一、集群网络系统主要问题 下面列出... 浏览 1099 65Kubernetes日志架构
应用日志可以让了解应用内部的运行状况。日志对调试问题和监控集群活动非常有用。 大部分现代化应用都有某种日志记录机制。同样地,容器引擎也被设计成支持日志记录。 针对容器化应用,最简单且最广泛采用的日志记录方式就是写入标准输出和标准错误流。 由... 浏览 577 66Kubernetes系统组件指标
通过系统组件指标,我们可以更好地了解系统内部发生的情况。这些指标对于构建仪表板和告警非常有用,可以帮助我们及时发现问题并采取相应的措施。 在 Kubernetes 集群中,各个组件会以 Prometheus 格式生成度量值。这种格式是结构化的纯文本,旨在使人和机... 浏览 1158 67Kubernetes系统日志
Kubernetes系统组件的日志记录集群中发生的事件对于调试非常有用。通过配置日志的精细度,可以展示更多或更少的细节。日志可以是粗粒度的,例如只显示组件内的错误,也可以是细粒度的,例如显示事件的每一个跟踪步骤(如HTTP访问日志、pod状态更新、控制器动... 浏览 480 68Kubernetes系统组件追踪
在 Kubernetes 中,系统组件追踪功能可以记录集群操作的时延信息以及这些操作之间的关系。Kubernetes 组件使用 gRPC 导出器的 OpenTelemetry 协议来发送追踪信息。并用OpenTelemetry Collector 收集追踪信息,再将其转交给追踪系统的后台。 一、收集追踪信息... 浏览 511 69Kubernetes API优先级
对于集群管理员来说,确保 Kubernetes API 服务器在高负载情况下的稳定运行是一项关键任务。虽然 kube-apiserver 提供了一些控制机制,如命令行标志 --max-requests-inflight 和 --max-mutating-requests-inflight,用于限制未处理请求的数量,从而防止过量请... 浏览 425 70Kubernetes Addon扩展
Kubernetes Addon 是一种扩展组件,用于在 Kubernetes 集群上添加额外的功能和工具。这些插件可以提供各种功能,如监控、日志管理、网络策略、认证授权等,以满足不同的需求。本教程列举了一些可用的 add-on。 一、联网和网络策略 1、ACI 通过 Cisco ACI 提... 浏览 742 71Kubernetes Windows容器
Kubernetes 中的 Windows 容器为运行 Windows 应用程序提供了一种方便、安全的解决方案。Windows 容器技术可以将 Windows 应用程序封装在一个独立的容器中,包括所有的依赖项和配置参数,使得应用程序可以在任何支持 Windows 容器的环境中进行部署和运行。... 浏览 1074 72Kubernetes Windows部署
Kubernetes配置和部署Windows容器需要在 Windows 节点上安装容器运行时,创建容器镜像,并使用 Kubernetes 的 Pod 配置文件将容器部署到集群中。通过监控和管理工具,可以实时监测和管理 Windows 容器的状态和性能。 一、目的 1、配置 Deployment 样例以在... 浏览 1136 73Kubernetes Operator模式
Operator 是 Kubernetes 的扩展软件,它利用自定义资源来管理应用程序及其组件。Operator通过代码化的方式实现应用程序的自动化管理,会封装你编写的(Kubernetes 本身提供功能以外的)任务自动化代码。 一、简介 Operator 模式旨在帮助运维人员实现关键目... 浏览 670 74Kubernetes网络插件
Kubernetes 1.28引入了对容器网络接口(CNI)插件的支持,用于集群的网络联通。为了满足需求,需要选择一个与集群兼容并符合需求的CNI插件。在更广泛的Kubernetes生态系统中,可以选择使用各种开源和闭源的CNI插件。 为了实现Kubernetes的网络模型,需要选... 浏览 740 75Kubernetes设备插件
从Kubernetes v1.26版本开始,Kubernetes提供了一个设备插件框架,可以将系统硬件资源发布到Kubelet中。供应商可以实现设备插件,并将其手动部署或作为DaemonSet自动部署,无需定制Kubernetes核心代码。 这个框架支持多种目标设备,例如GPU、高性能网络接... 浏览 504 76Kubernetes API定制资源
定制资源(Custom Resource)是对Kubernetes API进行扩展的一种方式。在做出这种选择时,需要考虑两种添加定制资源的方法:一种是使用聚合器(Aggregator),另一种是使用自定义控制器(Custom Controller)。 一、定制资源 资源(Resource) 是 Kubernetes... 浏览 1136 77Kubernetes API聚合层
使用聚合层(Aggregation Layer),用户可以通过附加的 API 扩展 Kubernetes,而使用聚合层(Aggregation Layer),用户可以通过附加的 API 扩展 Kubernetes,而不仅仅局限于 Kubernetes 核心 API 提供的功能。这里的附加 API 可以是现成的解决方案,例如 met... 浏览 1033 78Kubernetes PKI证书
Kubernetes 需要使用 PKI(Public Key Infrastructure)证书来进行Kubernetes 需要使用 PKI(Public Key Infrastructure)证书来进行基于 TLS 的身份验证。如果使用 kubeadm 安装的 Kubernetes,则会自动生成集群所需的证书。此外,还可以生成自己的证书。例... 浏览 990 79Kubernetes证书管理
Kubernetes证书管理涉及对集群中各种证书的生成、分发、轮换和撤销等工作。在证书管理过程中,kubeadm 是一个常用工具,它可以自动为一个新创建的 Kubernetes 集群生成和管理证书。 由 kubeadm 生成的客户端证书将在一年后到期。本教程将介绍如何使用 kube... 浏览 582 80Kubernetes容器运行时
在 Kubernetes 集群中,Pod 是最小的调度单元,每个 Pod 都运行在一个或多个节点上。为了使 Pod 能够正常运行,需要在每个节点上安装一个容器运行时。本教程将介绍如何在集群内每个节点上安装容器运行时,并描述与节点设置相关的任务。 Kubernetes 1.28 要... 浏览 467 81Kubernetes cgroup配置
Kubernetes cgroup驱动配置是Kubernetes中用于管理容器资源分配和限制的重要机制。通过配置cgroup驱动,可以对容器的资源使用进行精细的控制,从而实现更高效的资源利用和更好的性能优化。 学习本教程之前请阅读《Kubernetes容器运行时》。 接下来将详... 浏览 456 82Kubernetes集群重置
Kubeadm 是一个用于快速部署 Kubernetes 集群的工具,但它并不支持自动重新配置托管节点上的组件。为了实现自动化,我们可以使用自定义的 operator。在修改组件配置时,必须手动编辑磁盘上关联的集群对象和文件。本文将介绍执行 kubeadm 集群重新配置所需遵循... 浏览 444 83Kubernetes集群升级
本教程详解如何将 kubeadm 创建的 Kubernetes 集群从 1.27.x 版本 升级到 1.28.x 版本以及从 1.28.x 升级到 1.28.y(其中 y > x)。介绍升级过程中需要注意的事项和可能会出现的问题,并提供一些实用的技巧和建议。 一、基本流程 升级工作的基本流程如下... 浏览 518 84Kubernetes Linux节点升级
使用 kubeadm 创建的 Linux 工作节点是 Kubernetes 集群中的一个重要组成部分。这些节点通常是由用户自己部署的,用于运行容器化的应用程序。本教程将介绍如何升级用 kubeadm 创建的 Linux 工作节点。 一、准备 必须拥有一个 Kubernetes 的集群,同时必须配... 浏览 781 85Kubernetes Windows升级
在 Kubernetes 集群中,kubeadm 是一个工具,它可以帮助用户快速、轻松地部署一个最小化的 Kubernetes 控制平面和一组工作节点。本教程将解释如何升级用 kubeadm 创建的 Windows 节点。 一、准备 1、必须拥有一个 Kubernetes 的集群,同时必须配置 kubectl... 浏览 1031 86Kubernetes软件包仓库更改
在使用Kubernetes的过程中,我们经常需要从软件包仓库中下载和安装各种组件和工具。然而,由于Kubernetes社区的快速发展和变化,软件包仓库也可能会发生变化。本教程将介绍在升级集群时启用包含 Kubernetes 次要版本的软件包仓库。 注意: 本教程仅适... 浏览 620 87Kubernetes容器运行时更改
本篇教程将为运行1.23或更早版本Kubernetes集群的操作人员提供将容器运行时从Docker改为containerd的步骤。同时,我们还将提供一个示例场景,涉及从dockershim迁移到containerd的过程。 一、腾空节点 kubectl drain <node-to-drain> --ignore-daemons... 浏览 1125 88Kubernetes节点迁移
一、说明 本教程为展示如何迁移 Docker Engine 节点,使之使用 cri-dockerd 而不是 dockershim。 在以下场景中,可以遵从这里的步骤执行操作: 期望不再使用 dockershim,但仍然使用 Docker Engine 来在 Kubernetes 中运行容器; 希望升级到 Kuberne... 浏览 1236 89Kubernetes容器运行时查询
在运行 Kubernetes 集群时,节点所使用的容器运行时可能是预先配置好的,也可能需要手动进行配置。如果使用的是托管的 Kubernetes 服务,可能还需要使用特定于厂商的方法来检查节点上配置的容器运行时。无论使用何种方式运行 Kubernetes,本篇教程所描述的方... 浏览 1301 90Kubernetes CNI插件错误
在部署 Kubernetes 集群时,CNI 插件是一个非常重要的组成部分。它负责将容器的网络与物理网络进行连接,从而实现容器之间的通信和跨主机网络访问。然而,由于 CNI 插件的复杂性和多样性,在使用过程中可能会出现各种错误和问题。接下来将介绍如何排查 CNI 插... 浏览 488 91Kubernetes Dockershim
Kubernetes的dockershim组件曾经使得Docker可以作为Kubernetes的容器运行时。这个组件的功能被硬编码到了Kubernetes中,随着容器化成为行业标准,Kubernetes项目增加了对其他运行时的支持,最终实现了容器运行时接口(CRI),让系统组件(如kubelet)以标准化... 浏览 406 92Kubernetes迁移dockershim
Kubernetes 对与 Docker Engine 直接集成的支持已被弃用且已经被删除。 大多数应用程序不直接依赖于托管容器的运行时。但是,仍然有大量的遥测和监控代理依赖 docker 来收集容器元数据、日志和指标。 本文汇总了一些信息和链接:信息用于阐述如何探查这些依赖... 浏览 242 93Kubernetes手动生成证书
在Kubernetes集群中,为了实现安全的通信,我们需要为Kubernetes的各个组件生成证书和私钥。在使用客户端证书认证的场景下,可以通过 easyrsa、 openssl 或 cfssl 等工具以手工方式生成证书。 一、easyrsa easyrsa 支持以手工方式为集群生成证书。 1、下... 浏览 343 94Kubernetes内存请求和限制
一个 Kubernetes 集群可被划分为多个命名空间。 如果在具有默认内存限制 的命名空间内尝试创建一个 Pod,并且这个 Pod 中的容器没有声明自己的内存资源限制, 那么控制面会为该容器设定默认的内存限制。本篇教程将介绍如何为命名空间配置默认的内存请求和限制... 浏览 682 95Kubernetes CPU请求和限制
一个 Kubernetes 集群可被划分为多个命名空间。 如果在具有默认 CPU 限制 的命名空间内创建一个 Pod,并且这个 Pod 中任何容器都没有声明自己的 CPU 限制, 那么控制面会为容器设定默认的 CPU 限制。本篇教程介绍如何为命名空间配置默认的 CPU 请求和限制。... 浏览 264 96Kubernetes命名空间约束
在Kubernetes中,命名空间是一种隔离不同应用程序资源的方式。除了CPU和存储资源之外,内存也是容器运行所需的重要资源之一。为了确保应用程序的稳定运行,我们可以为每个命名空间配置最小和最大内存约束。本教程介绍如何设置在名字空间中运行的容器所使用的... 浏览 930 97Kubernetes最大/小CPU约束
Kubernetes为命名空间配置CPU最小和最大约束是一种资源限制机制,用于控制命名空间中运行的Pod所能使用的CPU资源。通过为命名空间设置CPU最小和最大约束,可以确保该命名空间中的应用程序能够获得足够的CPU资源,同时避免过度使用系统资源导致系统性能下降或... 浏览 285 98Kubernetes内存/CPU配额
在 Kubernetes 中,命名空间是一种将集群资源划分为多个独立的虚拟集群的方法。通过为命名空间配置内存和 CPU 配额,我们可以更好地控制和管理集群资源的使用。本文将介绍如何在 Kubernetes 中为命名空间配置内存和 CPU 配额,以便实现对集群资源的优化和限制... 浏览 222 99Kubernetes配置Pod配额
在 Kubernetes 中,通过为命名空间配置 Pod 配额,我们可以更好地控制和管理集群中的 Pod 数量,从而避免因过多的 Pod 导致资源耗尽或性能下降等问题。本教程将介绍如何在 Kubernetes 中为命名空间配置 Pod 配额,以便实现对集群资源的优化和限制。 一、准备... 浏览 393 100Kubernetes Cilium策略
Cilium 是一个开源的容器网络代理,它提供了一种灵活且可扩展的网络策略管理机制。NetworkPolicy是 Cilium 提供的一种网络访问控制机制,它允许我们定义一组规则,这些规则可以限制特定命名空间中的 Pod 之间的网络通信。通过使用NetworkPolicy,我们可以实现... 浏览 1189 101Kubernetes API访问集群
使用 Kubernetes API 访问集群是一种常见的操作,它可以帮助我们管理和监控 Kubernetes 集群。通过 Kubernetes API,我们可以执行各种任务,如创建、更新和删除资源,以及查询集群状态等。本篇教程将介绍如何使用 Kubernetes API 访问集群。 一、准备 必须... 浏览 442 102Kubernetes指定资源扩展
Kubernetes 节点指定资源扩展是一种动态调整节点资源的方法,它可以帮助我们更好地管理和优化集群性能。通过为节点指定资源扩展,我们可以在需要时增加或减少节点的资源,以满足应用程序的需求。本篇教程将介绍如何使用 Kubernetes 为节点指定资源扩展。... 浏览 542 103Kubernetes自动扩缩DNS
在 Kubernetes 集群中,DNS 服务是一个重要的组件,它负责将域名解析为相应的 IP 地址。随着集群规模的扩大,DNS 服务的负载也会相应增加,因此需要启用和配置 DNS 服务的自动扩缩功能,以确保其性能和可靠性。本教程将介绍如何在 Kubernetes 集群中启用和配... 浏览 461 104Kubernetes更新容器状态
Kubernetes 从轮询切换为基于 CRI 事件的更新来获取容器状态是一种重要的改进,它能够提高集群的性能和可靠性。CRI 是容器运行时接口的缩写,它是 Kubernetes 与容器运行时之间的通信接口。通过使用 CRI 事件,Kubernetes 可以实时地获取容器的状态信息,从而... 浏览 364 105Kubernetes StorageClass
Kubernetes 默认的 Storage Class 是用于存储卷的抽象,它定义了如何创建、删除和挂载存储卷。本篇教程展示了如何改变默认的 Storage Class,它用于为没有特殊需求的 PersistentVolumeClaims 配置 volumes。 一、准备 必须拥有一个 Kubernetes 的集群,同时... 浏览 316 106Kubernetes更改PV
在Kubernetes中,PersistentVolume(PV)是用于存储应用程序数据的持久性存储资源。当PV被删除或释放时,其上的数据也需要得到妥善处理。为了确保数据的安全性和可靠性,Kubernetes提供了回收策略来定义PV释放后数据的处理方式。本文将介绍如何更改Kubernetes... 浏览 322 107Kubernetes云管理控制器
Kubernetes是一个开源的容器编排平台,用于自动化应用程序部署、扩展和管理。由于云驱动的开发和发布的步调与 Kubernetes 项目不同,将服务提供商专用代码抽象到 cloud-controller-manager 二进制中有助于云服务厂商在 Kubernetes 核心代码之外独立进行开发。... 浏览 1188 108Kubernetes kubelet镜像
在Kubernetes中,从版本1.20开始,kubelet引入了镜像凭据提供程序插件机制。kubelet 使用 Kubernetes 版本化 API 通过标准输入输出(标准输入、标准输出和标准错误)和 exec 插件通信。这些插件允许 kubelet 动态请求容器仓库的凭据,而不是将静态凭据存储在... 浏览 575 109Kubernetes API对象配额
API对象配额是Kubernetes的一种限制用户或应用程序可以创建、更新或删除的API对象数量的策略。通过为API对象配置配额,用户可以确保集群的稳定性和性能,防止资源滥用和潜在的安全问题。本文将介绍如何在Kubernetes中为API对象配置配额,包括 PersistentVolum... 浏览 977 110Kubernetes控制CPU管理
在Kubernetes中,通过合理配置CPU管理策略,我们可以防止某个应用程序或用户独占过多的计算资源,从而影响其他任务的执行。本文将介绍如何在Kubernetes中控制节点上的CPU管理策略,以及如何根据实际需求调整这些设置。 按照设计,Kubernetes 对 Pod 执行相... 浏览 959 111Kubernetes控制拓扑管理
拓扑管理器(Topology Manager) 是一个 kubelet 组件,旨在协调负责这些优化的一组组件,可以防止某个应用程序或用户独占过多的计算资源,从而影响其他任务的执行。本文将介绍如何在Kubernetes中控制节点上的拓扑管理策略,以及如何根据实际需求调整这些设置... 浏览 550 112Kubernetes自定义DNS
在Kubernetes中,通过为集群提供一个可靠的DNS服务,我们可以简化应用程序之间的通信,提高整体的可扩展性和稳定性。本文将介绍如何在Kubernetes中配置DNS Pod,以及定制集群中 DNS 解析过程。 一、准备 必须拥有一个 Kubernetes 的集群,同时必须配置 kube... 浏览 372 113Kubernetes调试DNS问题
在 Kubernetes 集群中,DNS 是一个重要的服务,它负责将域名解析为 IP 地址。当应用程序需要访问其他服务时,通常会使用 DNS 来查找目标服务的 IP 地址。在某些情况下可能会出现 DNS 问题,导致应用程序无法正常访问其他服务。本文将介绍一些常用的 Kubernete... 浏览 777 114Kubernetes声明网络策略
在 Kubernetes 中,NetworkPolicy API 用于管理 Pod 之间的通信。通过使用 NetworkPolicy API 可以定义网络策略规则,以控制哪些 Pod 可以相互通信,以及它们可以访问哪些服务和端口。本文将介绍如何使用 Kubernetes 的 NetworkPolicy API 声明网络策略去管理... 浏览 279 115Kubernetes云控制器开发
云控制器管理器(Cloud Controller Manager)是 Kubernetes 控制平面云控制器管理器(Cloud Controller Manager)是 Kubernetes 控制平面组件之一,它嵌入了特定于云平台的控制逻辑。通过使用云控制器管理器,可以将集群连接到云提供商的 API,并将与该云平台... 浏览 388 116Kubernetes静态加密数据
Kubernetes静态API数据加密可以保护敏感信息不被未经授权的用户访问,允许用户编辑的持久 API 资源数据的所有 API 都支持静态加密。 例如可以启用静态加密 Secret,此静态加密是对 etcd 集群或运行 kube-apiserver 的主机上的文件系统的任何系统级加密的补充... 浏览 315 117Kubernetes解密静态加密
Kubernetes 静态加密的机密数据是使用 Kubernetes API Server 的内置机制进行保护的。这些机密数据可以包括密码、证书等敏感信息。但在某些情况下可能需要解密这些已静态加密的机密数据以进行一些特定的操作或处理。本文介绍如何停止静态加密 API 数据,以便... 浏览 1079 118Kubernetes集群代理功能
在Kubernetes集群中,ip-masq-agent是一种常用的网络代理工具,它可以为容器提供私有IP地址和NAT服务。本文将介绍如何配置和启用ip-masq-agent以实现Kubernetes集群中的代理功能。 一、准备 必须拥有一个 Kubernetes 的集群,同时必须配置 kubectl 命令行工... 浏览 811 119Kubernetes限制存储量
在Kubernetes中,限制一个名字空间中的存储使用量可以通过设置persistent volume claims(在Kubernetes中,限制一个名字空间中的存储使用量可以通过设置PersistentVolumeClaim(PVC)的ResourceQuota来实现。本教程将介绍如何限制一个名字空间中的存储使用量... 浏览 1058 120Kubernetes控制面迁移
云控制器管理器(Cloud Controller Manager,简称CCM)CCM是Kubernetes的一个组件,它负责管理集群中的资源和服务,包括节点、Pods、服务等。通过将控制面迁移到CCM,可以更好地利用云服务提供商的特性和优势,提高集群的可扩展性和可靠性。 一个 Kubernet... 浏览 355 121Kubernetes名字空间
随着集群规模的扩大和业务复杂度的增加,如何有效地管理和组织资源成为了一个重要的问题。为了解决这个问题,Kubernetes提供了名字空间(Namespace)这一强大的功能,它允许将集群中的资源进行细分,从而实现更好的资源隔离和管理。接下来将详细介绍如何使用K... 浏览 333 122Kubernetes etcd集群
Etcd是分布式且可靠的键值存储,用于保存分布式系统中的关键数据。在Kubernetes生态系统中,Etcd担任着重要的角色,它不仅作为服务发现的后端,还负责储存集群的状态及其配置信息。为了确保数据的可靠性和高可用性,Etcd通常被部署为一个集群,多个节点之间的... 浏览 302 123Kubernetes资源预留
在Kubernetes中,节点可以按照容量进行调度。默认情况下,Pod能够使用节点的全部可用容量。然而,这可能会导致问题,因为节点本身通常运行了许多驱动操作系统和Kubernetes的系统守护进程。如果未为这些系统守护进程留出资源,它们将与Pod竞争资源,从而导致节... 浏览 971 124Kubernetes rootless模式
在默认情况下,Kubernetes会以root用户的身份运行容器,这可能会带来安全风险和一些限制。本文将介绍如何在Kubernetes上以非root用户身份运行容器的步骤和注意事项。而是通过使用用户命名空间去运行 Kubernetes 节点组件(例如 kubelet、CRI、OCI、CNI)。这... 浏览 698 125Kubernetes安全清空节点
PodDisruptionBudget(PDB)是一种Kubernetes用于保护应用程序免受意外删除或驱逐的保护机制,允许管理员指定在一段时间内最多可以中断或删除多少个 Pod。然而,在某些情况下,可能需要清空一个节点以进行维护或其他操作。 一、准备 此任务假定已经满足了以... 浏览 1085 126Kubernetes集群保护
随着容器化技术的普及,越来越多的企业将其应用程序迁移到 Kubernetes 集群中,这使得 Kubernetes 集群成为了攻击者的主要目标之一。因此,确保 Kubernetes 集群的安全性至关重要。本教程将探讨与保护集群免受意外或恶意访问有关的主题,并提出一些总体安全性... 浏览 596 127Kubernetes kubelet配置
Kubernetes 集群中的kubelet 是负责管理容器运行的组件。通过保存在硬盘上的配置文件,可以设置 kubelet 的部分配置参数,以便更好地满足特定的需求和优化性能。本文将介绍如何通过保存在硬盘上的配置文件来设置 kubelet 的部分配置参数。 通过保存在硬盘... 浏览 471 128Kubernetes共享集群
Kubernetes 是一个强大的容器编排平台,它提供了许多功能来管理和部署容器化应用程序。其中一个重要的功能是使用名字空间来划分集群。通过将不同的应用程序或团队分配到不同的命名空间中,可以更好地管理资源、控制访问权限和隔离环境。本文将介绍如何使用 Ku... 浏览 1204 129Kubernetes集群升级
随着技术的不断发展和创新,Kubernetes已经成为了现代容器化应用程序的主流编排平台。然而,为了保持与时俱进并充分利用最新的功能和性能优化,需要定期对Kubernetes集群进行升级。本教程将详细介绍Kubernetes集群升级的步骤。 升级集群的方式取决于最初部... 浏览 463 130Kubernetes集群级联删除
Kubernetes是一个强大的容器编排平台,它提供了许多功能来管理集群中的资源。其中之一就是级联删除,它可以帮助我们在删除一个对象时自动删除与之关联的其他对象。那么,如何在Kubernetes集群执行垃圾收集时使用的级联删除呢? 一、准备 必须拥有一个 Kuber... 浏览 511 131Kubernetes KMS数据加密
在Kubernetes集群中,我们可以通过集成密钥管理服务(KMS)进行动态数据加密。首先,KMS驱动使用封套加密模型来对etcd中的数据进行加密,这些数据是通过数据加密密钥(DEK)进行加密的。本教程展示了如何配置密钥管理服务(Key Management Service,KMS)驱动... 浏览 1088 132Kubernetes升级CoreDNS
在Kubernetes集群中,CoreDNS负责域名和IP解析,可以作为内网的DNS解析服务器。升级CoreDNS版本可以解决一些bug和漏洞,从而稳定系统的性能。本篇教程介绍了 CoreDNS 升级过程。 一、准备 必须拥有一个 Kubernetes 的集群,同时必须配置 kubectl 命令行工具... 浏览 291 133Kubernetes节点本地缓存
NodeLocal DNSCache功能通过在每个集群节点上作为Daemon在Kubernetes集群中,NodeLocal DNSCache功能通过在每个集群节点上作为DaemonSet运行一个DNS缓存代理来提高DNS性能。本篇教程将介绍如何使用Kubernetes中的NodeLocal DNSCache功能。 一、准备 必须拥... 浏览 281 134Kubernetes集群使用sysctl
从 Kubernetes 1.23 版本开始,kubelet 支持使用 / 或 . 作为 sysctl 参数的分隔符。 从 Kubernetes 1.25 版本开始,支持为 Pod 设置 sysctl 时使用设置名字带有斜线的 sysctl。 例如,可以使用点或者斜线作为分隔符表示相同的 sysctl 参数,以点作为分隔符表... 浏览 319 135Kubernetes内存管理器
Kubernetes 内存管理器(Memory Manager)为 Guaranteed QoS 类的 PodsKubernetes 内存管理器(Memory Manager)为 Guaranteed QoS 类的 Pods 提供可保证的内存(及大页面)分配能力。内存管理器使用提示生成协议来为 Pod 生成最合适的 NUMA 亲和性配置。... 浏览 974 136Kubernetes验证容器镜像
随着容器镜像的广泛使用,如何确保这些镜像的安全性和完整性成为了一个重要的问题。为了解决这个问题,Kubernetes引入了一种名为签名镜像(Signed Images)的特性,它可以验证容器镜像是否已经被正确地签名。那么,如何在Kubernetes中验证已签名的容器镜像呢... 浏览 1167 137Kubernetes分配内存资源
在Kubernetes中,内存资源的分配对于容器和Pod的正常运行至关重要。为了确保容器能够获得所需的内存资源并避免过度使用,Kubernetes提供了内存请求(request)和内存限制(limit)的概念。通过合理地设置这两个参数,我们可以为容器分配适当的内存资源,从而... 浏览 458 138Kubernetes分配CPU资源
Kubernetes容器使用的 CPU 不能超过所配置的限制。 如果系统有空闲的 CPU 时间,则可以保证给容器分配其所请求数量的 CPU 资源。通过合理地设置这两个参数,我们可以为容器分配适当的CPU资源,从而保证其性能和稳定性。本教程展示如何为容器设置 CPU request... 浏览 1145 139Kubernetes调整内存资源
Kubernetes 节点会基于 Pod 的 requests 为 Pod 分配资源, 并基于 Pod 的容器中指定的 limits 限制 Pod 的资源使用。本篇教程详细说明如何在不重启 Pod 或其容器的情况下调整分配给运行中 Pod 容器的 CPU 和内存资源。 对于原地调整 Pod 资源而言: 1... 浏览 443 140Kubernetes配置GMSA
通过使用GMSA,我们可以为Windows容器提供类似于Linux容器的隔离环境,同时确保它们具有访问网络资源的权限。本教程将展示Kubernetes如何为将运行在 Windows 节点上的 Pod 和容器配置 组管理的服务账号(Group Managed Service Accounts,GMSA)。 组管理... 浏览 997 141Kubernetes Username
Kubernetes使用RunAsUserName可以为Windows容器提供类似于Linux容器的隔离环境,同时确保它们具有访问网络资源的权限。本教程将介绍如何为运行为在 Windows 节点上运行的 Pod 和容器配置 RunAsUserName。 一、准备 必须有一个 Kubernetes 集群,并且 kubect... 浏览 285 142Kubernetes Windows Pod
Windows HostProcess容器是一种能够在Windows主机上运行容器化负载的解决方案。这类容器以普通的进程形式运行,但具有适当的用户特权,可以访问主机的网络命名空间、存储和设备。通过使用HostProcess容器,可以在Windows节点上部署各种网络插件、存储配置、设... 浏览 537 143Kubernetes Pod服务质量
Kubernetes提供了一种称为服务质量类(Quality of Service class,QoS class)的功能,它允许用户为Pod配置特定的优先级和资源限制。在本教程中,我们将详细介绍如何配置Pod以让其归属于特定的服务质量类。当集群中的Node资源不足时,Kubernetes将使用这些QoS... 浏览 316 144Kubernetes容器指定扩展
在Kubernetes中,为容器指定扩展资源可以通过在容器清单中包含resources:requests字段来实现。这些扩展资源可以使用任何完全限定的名称,只是不能使用 *.kubernetes.io/ 。有效的扩展资源名的格式为 example.com/foo ,其中 example.com 应被替换为你的组织的... 浏览 294 145Kubernetes使用卷存储
在Kubernetes中,卷(Volume)是一种独立于容器的持久化存储方式。与容器的文件系统不同,卷的生命周期并不依赖于容器的生命周期。即使容器终止并重新启动,对卷的改动也不会丢失。 对于独立于容器的持久化存储,可以使用卷。 这对于有状态应用程序尤为重要,... 浏览 755 146Kubernetes使用PVC
在 Kubernetes 中,PersistentVolumeClaim(PVC)是一种用于请求持久化存储的抽象。它允许用户或应用程序声明所需的存储容量和访问模式,而无需关心底层的存储实现细节。本教程将详细介绍如何配置 Pod 使用 PersistentVolumeClaim 作为存储。 作为集群管... 浏览 277 147Kubernetes投射卷储存
在 Kubernetes 中,卷(Volume)是一种用于将主机上的文件或目录挂载到容器中的机制。然而,有时候我们可能需要将多个卷资源挂载到相同的目录,以实现更灵活的存储管理。本文将介绍如何通过 projected 卷将现有的多个卷资源挂载到相同的目录,帮助更好地理解... 浏览 1127 148Kubernetes安全上下文
Kubernetes的安全上下文是传递给容器运行时的参数,能够在运行时配置Pod和容器的安全性。要为Pod设置安全性设置,可以在Pod规约中包含securityContext字段。这个字段的值是一个PodSecurityContext对象,通过这种方式,可以为Pod设定所需的安全性配配置。... 浏览 373 149Kubernetes Pod服务账号
Kubernetes 提供两种完全不同的方式来为客户端提供支持,这些客户端可能运行在集群中, 也可能与集群的控制面相关, 需要向 API 服务器完成身份认证。 服务账号(Service Account) 为 Pod 中运行的进程提供身份标识, 并映射到 ServiceAccount 对象。当向... 浏览 409 150Kubernetes私有镜像仓库
Kubernetes私有仓库可以提供更加安全和可控的镜像管理方式,避免了直接从公共仓库下载镜像可能带来的安全风险。本教程将介绍如何使用 Secret 从私有的镜像仓库或代码仓库拉取镜像来创建 Pod。 有很多私有镜像仓库正在使用中,这个任务使用的镜像仓库是 Docker... 浏览 1134 151Kubernetes探针
在Kubernetes中,存活、就绪和启动探针是三种重要的容器健康检查机制。存活探针(Liveness Probe)用于确定容器是否正在运行,如果容器未能在规定时间内响应,则kubelet将重启该容器以确保其持续运行。本教程将介绍如何给容器配置存活(Liveness)、就绪(Rea... 浏览 496 152Kubernetes Pod指派节点
在Kubernetes中,通过将Pod调度到特定的节点上,可以更好地利用集群资源、提高应用程序的性能和可靠性。本篇教程将介绍如何在Kubernetes中将Pod指派给集群中的特定节点。 一、准备 必须拥有一个 Kubernetes 的集群,同时必须配置 kubectl 命令行工具与集群... 浏览 471 153Kubernetes分配Pod到节点
在Kubernetes中,节点亲和性(node affinity)是一种将Pod调度到特定节点上的机制。通过配置节点亲和性规则,可以控制Pod与节点的匹配关系,从而实现更加灵活的调度策略。本教程将介绍如何使用节点亲和性将Pod分配到特定的节点上。 一、准备 必须拥有一个 K... 浏览 566 154Kubernetes配置Pod初始化
在 Kubernetes 中,Pod 是最小的调度单元,每个 Pod 可以包含一个或多个容器。Init 容器是在应用容器运行之前执行的,它们通常用于完成一些初始化任务,比如设置环境变量、创建存储卷等。本教程将介绍如何配置 Pod 的初始化过程,包括如何使用 Init 容器来初... 浏览 393 155Kubernetes挂接处理函数
Kubernetes 支持 postStart 和 preStop 事件。 当一个容器启动后,Kubernetes 将立即发送 postStart 事件;在容器被终结之前, Kubernetes 将发送一个 preStop 事件。本篇教程将演示如何为容器的生命周期事件挂接处理函数。 一、准备 必须拥有一个 Kubernet... 浏览 341 156Kubernetes用ConfigMap
在Kubernetes中,ConfigMap允许我们将配置数据与应用程序代码分离,从而提高应用程序的可移植性和可维护性。通过使用ConfigMap,我们可以将配置文件、环境变量和其他配置信息作为键值对存储在ConfigMap中,并在Pod中使用这些配置信息。 ConfigMap 概念允许... 浏览 1099 157Kubernetes命名空间共享
在Kubernetes中,每个Pod都有自己的进程命名空间,其中的进程相互隔离,互不干扰。但是,在某些情况下,我们可能需要让多个Pod中的进程共享同一个进程命名空间。这可以通过将多个Pod配置在同一个节点上并使用共享存储来实现。那么如何为 Pod 配置进程命名空间... 浏览 577 158Kubernetes用户名字空间
Kubernetes中每个Pod都有自己的进程命名空间,其中的进程相互隔离,互不干扰。但是,在某些情况下可能需要让多个Pod中的进程共享同一个进程命名空间,可以通过将多个Pod配置在同一个节点上并使用共享存储来实现。本教程将介绍如何为Pod配置进程命名空间共享。... 浏览 440 159Kubernetes创建静态Pod
在Kubernetes中,Pod是最小的可部署对象,它包含了一个或多个紧密耦合的容器。除了通过Kubernetes API Server动态创建Pod之外,我们还可以使用静态Pod的方式来创建和管理Pod。静态 Pod 在指定的节点上由 kubelet 守护进程直接管理,不需要 API 服务器监管。... 浏览 378 160Kubernetes转换Compose
Docker Compose文件通过使用Kompose可以转换为Kubernetes资源。Kompose是一个转换工具,可将 compose (即 Docker Compose)所组装的所有内容转换成容器编排器(Kubernetes 或 OpenShift)可识别的形式。 一、准备 必须拥有一个 Kubernetes 的集群,同时必... 浏览 1138 161Kubernetes Pod安全标准
Kubernetes提供了一种内置的准入控制器,称为PodSecurityPolicy(Pod 安全策略),用于强制实施 Pod 安全性标准。通过配置PodSecurityPolicy,可以定义并应用一组安全策略规则,限制哪些Pod可以被创建和运行。 一、准备 Pod 安全性准入(Pod Security Admis... 浏览 976 162Kubernetes名字空间标签
在 Kubernetes 中,名字空间(Namespace)是一种将集群资源划分为多个独立的虚拟集群的方法。名字空间可以打上标签以强制执行 Pod 安全性标准。 特权(privileged)、 基线(baseline)和 受限(restricted) 这三种策略涵盖了广泛安全范围,并由 Pod 安全准... 浏览 721 163Kubernetes PSP迁移
Kubernetes在1.21版本中已经宣布弃用PodSecurityPolicy(PSP)的功能,并在后续版本中引入了内置的PodSecurity准入控制器作为替代方案。这也说明对于那些使用PSP来实现容器安全策略的用户来说,迁移到内置的PodSecurity准入控制器是一个必要的步骤。 本教... 浏览 913 164Kubernetes kubectl排查
而kubectl是与Kubernetes集群进行交互的主要命令行工具。当kubectl遇到故障时,及时而准确地进行故障排查是至关重要的。如果在访问 kubectl 或连接到集群时遇到问题,本教程概述了各种常见的情况和可能的解决方案,以帮助确定和解决可能的原因。 一、准备 1... 浏览 1050 165Kubernetes资源监控工具
Kubernetes作为一个容器编排和管理平台,为用户提供了一系列资源监控工具,可以深入了解应用程序在部署时的行为。这些工具可以检测容器、Pod、Service和整个集群的特征,以评估应用程序的性能,并找出消除瓶颈的方法。 Kubernetes提供了多种资源监控工具,... 浏览 811 166Kubernetes资源指标管道
Kubernetes是一个流行的容器编排平台,Metrics API是其提供的一种API,用于收集和暴露关于节点和Pod的资源使用情况的指标。这些指标可以用于支持自动扩展、监控和调优等用例。通过部署Metrics API到Kubernetes集群中,Kubernetes API客户端可以查询这些指标,... 浏览 1024 167Kubernetes节点健康检测
节点问题检测器(Node Problem Detector)是一个守护进程,用于监视和报告节点的健康状况。它可以以DaemonSet或独立守护进程的形式在Kubernetes集群中运行。节点问题检测器会监视节点上运行的各种守护进程,例如容器运行时、kubelet、系统服务等,以便及时发... 浏览 320 168Kubernetes crictl调试
crictl 是 CRI 兼容的容器运行时命令行接口,用于管理和调试 Kubernetes 节点上的容器运行时和应用程序。crictl 的源代码托管在 cri-tools 代码库中,管理员可以在该代码库中获取最新版本的 crictl 工具,并根据需要进行自定义和编译。 一、准备 由于 crict... 浏览 833 169Kubernetes Windows调试
Windows 容器与传统的 Linux 容器有着一些不同之处,因此需要采用特定的技巧和工具来进行调试。在本教程中,我们将探讨一些 Kubernetes 上运行 Windows 容器的调试技巧,帮助大家更好地理解和解决与 Windows 容器相关的问题。 一、工作节点级别排障 1、我的... 浏览 989 170Kubernetes审计
Kubernetes 的审计(Auditing)功能提供了与安全相关的、按时间顺序排列的记录集,用于记录每个用户、使用 Kubernetes API 的应用程序以及控制平面自身引发的活动。Kubernetes 审计功能可以帮助组织满足合规性要求,并加强对集群安全的管理和监控。 审计功... 浏览 854 171Kubernetes开发/调试服务
Kubernetes 应用程序通常由多个独立的服务组成,每个服务都在自己的容器中运行。 在远端的 Kubernetes 集群上开发和调试这些服务可能很麻烦, 需要在运行的容器上打开 Shell, 以运行调试工具。 telepresence 是一个工具,旨在简化本地开发和调试服务的过... 浏览 979 172Kubernetes Kubectl调试
Kubectl是Kubernetes的命令行工具,可以用于与Kubernetes集群进行交互和操作。在开发和调试过程中,我们经常需要使用Kubectl来诊断和解决节点的问题。本教程将介绍如何使用Kubectl来调试Kubernetes节点。 一、准备 必须拥有一个 Kubernetes 的集群,同时必... 浏览 644 173Kubernetes调试Pod
在 Kubernetes 中,部署应用只是第一步。本教程将提供一套实用的方法和工具,帮助大家有效地调试那些部署到 Kubernetes 后出现问题的应用。将重点关注Pod级别的问题,而不是集群级的调试过程,以便大家可以快速地定位并解决影响应用性能的具体问题。 一、调... 浏览 961 174Kubernetes调试Service
对于新安装的 Kubernetes,经常出现的问题是 Service 无法正常运行。例如已经通过 Deployment(或其他工作负载控制器)运行了 Pod,并创建 Service , 但是当尝试访问它时,没有任何响应。本教程将介绍这一问题原因和解决方法。 一、在Pod中运行命令 对于这... 浏览 311 175Kubernetes StatefulSet
在 Kubernetes 环境中,StatefulSets 提供了一种管理有状态服务的强大方式,确保了应用的稳定性和数据一致性。当StatefulSets出现问题时,调试和恢复可能会比无状态服务更加复杂。本教程将引导大家通过一系列步骤来诊断和解决StatefulSet中的问题。 一、准备... 浏览 927 176Kubernetes Pod失败原因
在 Kubernetes 环境中,Pods 可能会因为多种原因而失败。本教程将深入探讨如何编写和解读容器的终止消息,终止消息为容器提供了一种方法,可以将有关致命事件的信息写入某个位置, 在该位置可以通过仪表板和监控软件等工具轻松检索和显示致命事件。 在大多... 浏览 364 177Kubernetes调试Init容器
在 Kubernetes 中,Init容器可以用于配置环境、下载依赖项或等待外部服务变得可用。本教程将显示如何核查与 Init 容器执行相关的问题。 下面的示例命令行将 Pod 称为 <pod-name>,而 Init 容器称为 <init-container-1> 和 <init-container-2&g... 浏览 390 178Kubernetes调试运行中Pod
在 Kubernetes 的动态和复杂的运行环境中,即使是最好的部署计划也可能会遭遇意外的挑战。当 Pod 在运行中遇到问题或崩溃时,能够快速有效地进行调试是至关重要的。本教程将向大家展示如何在节点上对运行中的 Pod 进行故障排除。 一、准备 Pod 应该已经被调... 浏览 597 179Kubernetes获取Shell
在 Kubernetes 环境中,有时候您可能需要直接与运行中的容器交互,以便进行故障排除或执行管理任务。本教程将详细介绍如何使用 kubectl exec 命令来获取正在运行的容器的 Shell。包括编写 nginx 的根页面、在容器中运行单个命令、当 Pod 包含多个容器时打开 s... 浏览 1085 180Kubernetes对象管理
在 Kubernetes 中,你可以通过存储多个对象配置文件在一个目录中,并使用 kubectl apply 命令来批量创建和更新资源对象。这个过程会递归地处理目录中的每个文件,逐一创建或更新对应的资源。重要的是,这个方法会保留对现有资源所做的任何修改,而不会把这些... 浏览 484 181Kubernetes更新API对象
在Kubernetes中,kubectl patch命令是一个功能强大的工具,它允许你使用JSON或者YAML格式的补丁就地更新资源对象。本篇教程将通过一些练习来展示如何使用kubectl patch命令来应用这两种类型的补丁。 一、准备 必须拥有一个 Kubernetes 的集群,同时必须配置... 浏览 489 182Kubernetes管理Secret
在Kubernetes中,Secrets是一种用来存储敏感信息如密码、OAuth令牌、SSH密钥等的API对象。它们被设计为以安全的方式管理这些数据,确保只有授权的Pods可以访问。本教程主要介绍如何使用kubectl命令行工具创建、修改、查看和删除Secrets,从而有效地保护应用程... 浏览 820 183Kubernetes容器设置参数
在 Kubernetes 集群中运行容器时,通常需要根据应用程序的需求或环境条件来配置容器的行为。这可以通过设置参数来实现,例如环境变量、命令行参数或者设备映射等。本教程将展示如何为 Pod 中容器设置启动时要执行的命令及其参数。 一、准备 必须拥有一个 Ku... 浏览 630 184Kubernetes环境变量
在Kubernetes中,环境变量是一种常见的配置方式,用于将配置信息传递给运行在容器内的应用程序。本教程主要介绍如何为 Kubernetes Pod 中的容器定义相互依赖的环境变量和为容器设置环境变量,并通过环境变量将 Pod 信息呈现给容器。 必须拥有一个 Kubernet... 浏览 715 185Kubernetes无状态运行
在Kubernetes中,使用Deployment来运行无状态应用是一种常见的做法。Deployment提供了对Pod和 ReplicaSet的管理能力,能够确保应用程序在集群中的稳定运行,并支持滚动更新和扩展。接下来,让我们来看看如何通过Deployment在Kubernetes中运行一个无状态应用。... 浏览 913 186Kubernetes之Deployment
在Kubernetes(K8S)集群环境中,Deployment是一种高级资源控制器,为应用程序的部署、扩展和更新提供了声明式管理能力。Deployment通过管理ReplicaSet(副本集)间接控制Pod实例,实现了丰富的功能。站长百科本文将主要介绍Deployment在Kubernetes上的全方位... 浏览 778 187Kubernetes部署Springboot
Springboot是专门用户构建独立且可执行的Spring应用程序的框架,主要为了简化传统Java EE开发的过程。将Springboot应用程序部署到Kubernetes中可以提供更好的应用程序部署和管理体验,开发者可以轻松构建出高度可伸缩和可靠的微服务架构。接下来将主要介绍如... 浏览 839 188Kubernetes运维脚本
Kubernetes的日常运维里重复操作多了难免让人觉得繁琐,比如天天手动备份配置、反复敲命令进入Pod查看日志,时间久了既耗精力又容易出错。其实攒几个顺手的脚本,能省不少事。下面分享7个自己常用的运维脚本,涵盖备份、容器交互、日志查看等场景。 一、back... 浏览 113 189Kubernetes故障排查
系统化梳理Kubernetes集群的故障排查方法论。涵盖Pod生命周期异常、服务发现失效、存储卷挂载失败、网络策略冲突等核心故障场景,结合Prometheus监控指标、eBPF深度追踪、CNI插件分析等技术手段,为企业运维团队提供从现象定位到根因分析的全链路解决方案。... 浏览 982 190Kubernetes常见问题及解决方法
在Kubernetes(K8s)运维中,可能会遇到多种问题,例如Pod无法创建或启动、服务创建失败、节点无法加入集群等等。为了帮助大家发现并及时解决,站长百科为大家详细分享了Kubernetes运维中常见的问题以及解决办法。 一、Kubernetes常见问题及解决方法 1、Pod... 浏览 500 191Kubernetes管理界面部署项目服务
通过Kubernetes管理界面部署项目服务,无需编写复杂的YAML配置文件即可完成服务上线。整个流程涵盖创建部署、配置工作负载、容器信息、存储挂载及服务路由等关键环节,最终需通过状态检查与故障排查确保服务稳定运行。 一、进入部署创建页面 登录Kubernetes... 浏览 115相关电子书
同分类下的其他电子书
OpenStack教程
OpenStack是目前全球最流行的开源云计算平台之一,其核心优势在于其开放性和灵活性,旨在为公有云、私有云和混合云环境提供易于部署和管理的解决方案。OpenStack教程主要旨在为初学者和有经验的技术人员提供一个全面而系统的学习平台,帮助深入了解OpenStack的基本概念、架构和实际应用。为不同的项目或业务提供可靠、灵活和高效的解决方案。
Docker教程
Docker作为容器化技术的佼佼者,已经成为大部分开发者们不可或缺的工具,它不仅能够实现应用程序的轻量级部署和快速扩展,还能提高开发效率和系统资源的利用率。Docker教程将带领大家走进Docker的世界,从Docker的基本概念讲起,逐步深入到实际应用,例如安装配置、镜像管理以及容器编排等核心知识,为后续的容器化实践打下坚实的基础。
VMware vSphere教程
VMware vSphere是业界领先且最可靠的虚拟化平台。通过将应用程序和操作系统与底层硬件分离,vSphere极大地简化了IT操作的复杂性,帮助企业实现资源的最大化利用,提高效率并降低成本。VMware vSphere教程涵盖了vSphere安装设置、基础映像、故障排除及解决方法等资源,程旨在帮助用户快速上手并深入理解vSphere的各个方面。
SSL证书教程
SSL证书是什么?SSL证书是一种数字证书,通过安全套接字层(SSL)技术实现,帮助验证网站身份并确保数据传输的安全。SSL证书教程旨在帮助用户全面了解并顺利完成证书配置。提供了详细的SSL证书安装和使用指南,帮助用户确保网站的安全性和数据传输的保护。