avatar

甄天祥-Linux-个人小站

A text-focused Halo theme

  • 首页
  • 分类
  • 标签
  • 关于
Home 关于 Kubernetes 集群
文章

关于 Kubernetes 集群

Posted 2025-02-19 Updated 2025-02- 21
By Administrator
13~17 min read

1.svg

一、概述什么是 Kubernetes

Kubernetes(通常简称 K8s)是一个开源的容器编排平台,旨在自动化部署、扩展和管理容器化应用程序。它最初由 Google 开发,现由 Cloud Native Computing Foundation(CNCF)维护。Kubernetes 提供了一种高效的方式来管理跨多个主机的容器集群,支持多种容器技术,如 Docker 和 containerd。

1. Kubernetes 的核心概念

  • Pod:Pod 是 Kubernetes 中最小的可部署单元,它代表一个或多个容器的集合,这些容器共享同一个网络、存储卷和命名空间。通常,每个 Pod 只包含一个容器,但在某些场景下也可以包含多个容器,它们之间进行紧密协作。

  • Node:Node 是 Kubernetes 集群中的物理或虚拟机,每个 Node 运行一个或多个 Pod。节点分为两种类型:主节点(控制节点)和工作节点。主节点负责管理和调度任务,工作节点则负责执行容器化应用。

  • Cluster:集群由多个节点组成。Kubernetes 集群管理着所有的节点,并负责自动化调度、负载均衡、容器编排等任务。

  • ReplicaSet:ReplicaSet 用于保证指定数量的 Pod 副本在任何时候都在运行。它可以动态地增加或减少 Pod 的数量,以确保高可用性和负载均衡。

  • Deployment:Deployment 是一种高层次的抽象,基于 ReplicaSet 管理 Pod 的副本。它提供了滚动更新、回滚等功能,用于无缝更新和扩展应用。

  • Service:Service 是 Kubernetes 中的一种抽象,定义了如何访问一个或一组 Pod。Service 提供稳定的 IP 地址和 DNS 名称,解决了 Pod 动态生命周期管理中可能出现的 IP 地址变化问题。

  • ConfigMap 和 Secret:ConfigMap 和 Secret 用于存储配置信息和敏感数据(如数据库密码、API 密钥等),并可以在容器运行时动态加载,避免硬编码配置。

  • Namespace:Namespace 是 Kubernetes 中的一个虚拟集群,允许在同一个物理集群中创建多个独立的逻辑环境,用于资源隔离、权限控制和管理。

  • Ingress:Ingress 提供了 HTTP 和 HTTPS 路由功能,用于将外部请求转发到 Kubernetes 集群内部的 Service。它支持域名路由、负载均衡和 SSL/TLS 终结等功能。

2. Kubernetes 的优势

  • 高可扩展性:Kubernetes 通过自动化部署和管理容器,帮助用户动态扩展应用,保持系统高可用性。

  • 自愈能力:Kubernetes 能自动重启崩溃的容器,替换掉失效的容器,确保应用的持续可用。

  • 负载均衡:通过 Service 和 Ingress,Kubernetes 可以高效地实现流量的负载均衡和容器之间的通信。

  • 滚动更新和回滚:Kubernetes 允许无缝更新应用,避免停机时间,同时支持回滚功能,在更新失败时恢复到旧版本。

  • 资源管理和调度:Kubernetes 支持资源限制和调度策略,能够根据节点的资源状况优化容器分配,确保应用性能和资源的高效利用。

3. Kubernetes 的应用场景

  • 微服务架构:Kubernetes 能高效管理和调度分布式微服务,确保服务之间的高效通信和独立扩展。

  • DevOps 和 CI/CD:通过与 CI/CD 工具集成,Kubernetes 可实现自动化的应用部署、更新和回滚。

  • 大规模应用托管:Kubernetes 可扩展到成千上万的容器实例,适用于大规模、高可用的应用环境。

二、核心组件

Kubernetes 的核心组件主要包括控制平面(Control Plane)和工作节点(Node),这些组件共同工作,确保 Kubernetes 集群能够高效运行和管理容器化应用。以下是 Kubernetes 核心组件及其作用的概述:

1. kube-apiserver

  • 作用:kube-apiserver 是 Kubernetes 控制平面的入口,它暴露了 Kubernetes 的 API,并负责处理集群的所有 REST 请求(如 pod 创建、更新、删除等操作)。所有的操作都通过 kube-apiserver 与集群的其他组件进行交互。

  • 功能:提供统一的 API 接口,管理所有的集群资源和操作。它是整个集群的中心。

2. etcd

  • 作用:etcd 是一个高可用的键值存储,用于存储所有 Kubernetes 集群的配置数据和状态信息。它保存着集群的所有资源状态,如 Pod、Service、ReplicaSet 等。

  • 功能:作为分布式数据存储,确保 Kubernetes 配置和状态的持久化,并且能在集群恢复时重新加载数据。

3. kube-scheduler

  • 作用:kube-scheduler 负责决定哪个节点运行 Pod。它根据节点的资源使用情况、调度策略以及容器的要求来进行调度。

  • 功能:为新的 Pod 分配合适的节点,并确保在调度过程中考虑到资源利用、亲和性、反亲和性等调度策略。

4. kube-controller-manager

  • 作用:kube-controller-manager 运行控制器进程,它监控 Kubernetes 集群的状态,并根据实际状态进行修正。例如,如果某个 Pod 未能按预期运行,它会自动创建一个新的 Pod 来替代。

  • 功能:管理和维护集群的状态,包括 ReplicaSet、Deployment、StatefulSet、DaemonSet 等控制器,确保集群的资源处于期望的状态。

5. cloud-controller-manager

  • 作用:cloud-controller-manager 用于与云服务提供商的 API 交互(如 AWS、GCP、Azure 等),并根据云环境的变化调整集群配置。

  • 功能:处理与云平台相关的资源管理和调整任务,如自动扩展、存储管理和负载均衡等。

三、工作节点组件(Node Components)

1. kubelet

  • 作用:kubelet 是工作节点上的核心组件,它负责确保容器化应用在节点上的运行和健康。kubelet 通过与 kube-apiserver 通信,获取 Pod 的配置,并启动、管理和监控容器。

  • 功能:管理节点上容器的生命周期,确保容器正常运行并报告状态给控制平面。

2. kube-proxy

  • 作用:kube-proxy 是负责在每个节点上维护网络规则的组件。它管理 Pod 之间的流量路由以及集群内部的负载均衡。

  • 功能:为 Service 提供负载均衡功能,将客户端请求转发到集群中的合适 Pod,同时确保网络通信的稳定性。

3. Container Runtime

  • 作用:容器运行时负责在节点上实际运行容器。Kubernetes 支持多种容器运行时,包括 Docker、containerd 和 CRI-O 等。

  • 功能:处理容器的生命周期管理,包括容器的创建、启动、停止、删除等操作。

四、总结

Kubernetes 提供了一种高效、可靠的容器编排平台,使得容器化应用的部署、扩展和管理变得更加容易。它为企业提供了自愈能力、负载均衡、滚动更新等关键特性,是云原生架构和微服务的核心组成部分。通过 Kubernetes,开发和运维团队能够更高效地协作,实现持续交付和自动化运维。

云原生与容器技术
Linux kubernetes
License:  CC BY 4.0
Share

Further Reading

Nov 19, 2025

Kubernetes 安装部署 Alist 并配置 Onlyoffice

Alist 是一个支持多种存储的目录列表程序,能够将网盘、对象存储和本地存储等挂载为统一目录,提供文件浏览、管理和分享功能。它支持 OneDrive、Google Drive、阿里云盘、百度网盘等多种存储方式,界面简洁美观,基于 Material Design 设计。Alist 功能强大,包括文件预览、下载、分享、搜索和权限管理等,并且开源免费。部署 Alist 服务可以通过 Docker、宝塔面板或直接运行等方式实现,文中以 K8S 部署为例,详细介绍了配置步骤及 OnlyOffice 的集成方法,用于在线预览和编辑 Office 文档。此外,还提供了如何通过 HTTPS 和自签名证书确保服务安全访问的指导。

Oct 23, 2025

KubeSphere-04-Dev-ops 流水线插件的使用

KubeSphere 基于 Jenkins 的 DevOps 系统专为 Kubernetes 中的 CI/CD 工作流设计,提供了一站式的解决方案,包括插件管理、Binary-to-Image (B2I)、Source-to-Image (S2I)等功能。该系统兼容第三方私有镜像仓库和代码库,提供了全面的可视化 CI/CD 流水线。本文档指导用户开启 KubeSphere 的 DevOps 插件,规划流水线并编写 Jenkinsfile,通过实战案例让用户掌握从理论到实践的全过程。文档详细介绍了如何解决开启 DevOps 组件时可能遇到的问题、配置步骤以及验证方法,并演示了创建和管理 DevOps 项目的过程,涵盖用户创建、企业空间与项目的建立等。此外,还提供了简化版的 DevOps 流水线设计示例,涉及从源代码检出到部署环境的整个流程,包括单元测试、编译、构建推送镜像及多环境部署策略。最后,通过一系列准备工作的说明和实际操作步骤,确保用户能够顺利实现自动化持续集成和部署。

Oct 14, 2025

KubeSphere-03-Logging 日志插件的使用

KubeSphere Logging 是 KubeSphere 平台的日志管理插件,基于 Elasticsearch 或 OpenSearch 构建,支持多租户日志收集、查询和分析。它自动采集容器、工作负载及平台审计日志,并通过 Fluent Bit 进行预处理。该插件提供直观的查询界面、灵活的日志保留策略(默认7天)、Sidecar模式增强可靠性以及外部日志系统集成等功能,帮助企业快速定位问题并满足合规要求。开启插件需编辑 ks-installer 配置文件以选择性启用 Elasticsearch 或 OpenSearch,并设置相关参数。此外,还介绍了一款基于 Go 的 OpenSearch 告警与可视化系统,支持多种通知渠道,可通过本地构建 Docker 镜像并在 Kubernetes 环境中部署使用。

OLDER

Kubernetes-部署EFK日志收集+告警

NEWER

Kubernetes 单 Master 集群安装

Recently Updated

  • Kubernetes 安装部署 Alist 并配置 Onlyoffice
  • KubeSphere-04-Dev-ops 流水线插件的使用
  • KubeSphere-03-Logging 日志插件的使用
  • KubeSphere-02-Service Mesh 的使用
  • KubeSphere-01-介绍与基础使用

Trending Tags

KVM Service Mesh Docker shell 路由规则 Mysql Containerd GitOps 网络设备 Prometheus

Contents

©2025 甄天祥-Linux-个人小站. Some rights reserved.

Using the Halo theme Chirpy