Kumu's wiki
  • SUMMARY
  • Docker
    • 理论概述
    • 安装入门
    • 配置说明
    • 基础命令
    • 镜像构建
    • 镜像存储
      • OverlayFS 存储驱动
      • Habor 安装和升级标注
    • Compose
      • Compose 概览
      • Compose 安装
      • Compose 入门
      • Compose 环境变量
      • Compose 服务扩展
      • Compose 网络
      • Compose 生产实践
      • Compose 启动顺序控制
  • Kubernetes
    • 架构概览
    • 基础术语
    • 集群构建
    • 工作负载
      • Deployments
      • StatefulSets
      • Volumes
      • Persistent Volumes
    • 集群调度
      • 亲和性和反亲和性
      • 污点和容忍机制
    • 集群组件
      • Kubelet
    • 网络方案
      • 网络策略
      • Calico BGP 网络(v2.6.x)
      • Kubelet CNI 源码解析
    • client-go
      • client-go 背后机制
    • Helm
      • Helm 架构
      • Helm 快速上手
      • Helm 使用
      • Helm 命令
    • Google 大规模集群管理器 Borg
由 GitBook 提供支持
在本页
  • Kubernetes 架构
  • 集群控制平面(Cluster control plane)即 Master
  • Kubernetes 节点(The Kubernetes Node)
  • 附加组件和依赖

这有帮助吗?

  1. Kubernetes

架构概览

上一页Compose 启动顺序控制下一页基础术语

最后更新于5年前

这有帮助吗?

Kubernetes (通常称为 K8s) 是用于自动部署、扩展和管理容器化(containerized)应用程序的开源系统。Google 设计并捐赠给 Cloud Native Computing Foundation(CNCF,今属 Linux 基金会)来使用的。它旨在提供 “跨主机集群的自动部署、扩展以及运行应用程序容器的平台”。它支持一系列容器工具, 包括 Docker 等。 -- 摘自维基百科 词条

Kubernetes 架构

集群控制平面(Cluster control plane)即 Master

Kubernetes 控制平面由一系列组件组成,可以运行在一个单独的主节点上,也可以分布部署以支持高可用集群,或者运行在 Kubernetes 之上。

API 服务(API Server)

  • kube-apiserver

集群状态存储(Cluster state store)

  • etcd

etcd 是一个分布式 key-value 数据库,Kubernetes 用 etcd 作为后端数据存储。集群所有的持久性状态都存储在 etcd 实例中。etcd 提供了可靠配置数据存储。通过 watch 的支持,可以非常快速地通知协调组件变更。

控制管理服务(Controller-Manager Server)

  • kube-controller-manager

集群内部的管理控制中心,如 Node、Volume、Deployment 、Service 等资源管理,以及空间生命周期,Pod GC、节点 GC 等。

调度器(Scheduler)

  • kube-scheduler

执行 pod 的相关调度。调度程序监视未调度的 pod,并根据所请求资源的可用性,服务质量要求、亲和性和反亲和性设置以及其它约束,通过 /binding pod 子资源 API 绑定到相应节点。

Kubernetes 节点(The Kubernetes Node)

Kubelet

Kubelet 是 Kubernetes 中最重要和突出的控制器,它是驱动容器执行层的 Pod 和 Node API 的主要实现者。没有这些 API,Kubernetes 只是一个后端由键值存储支持的面向 CRUD 的 REST 应用程序框架。

容器运行时(Container runtime)

Kube Proxy

service 的抽象提供了一种在公共访问策略(如负载均衡)下对 pod 进行分组的方式。Service 通过创建 VIP,提供给客户端访问,再透明代理到 Service 中的 pods。每个节点都运行一个 kube-proxy 进程,该进程维护一套 iptables 规则,以捕获对服务 IPs 的访问,并重定向到正确的后端(1.12.x ipvs 正式 GA,性能相对 iptables 有很大的提升)。

附上华为关于 Service 性能这块的介绍,主要是对比 ipvs 和 iptables:

附加组件和依赖

一些基于 Kubernetes 的开源平台

Kubernetes GUI 从体验上来说还是相对比较差的,可以使用一些开源的替代版本:

    • 360 开源的 Kubernetes 多集群 Web UI

API server 提供 。API server 扮演集群网关的角色,它主要处理 REST 操作,验证并更新到 etcd 存储。

Kubelet 决定 Pod 是否可以运行在给定的节点上的最终决策者,不是调度器也或者 DaemonSets。此外,Kubelet 还集成了 资源监控 agent。

每一个节点运行一个容器运行时,负责下载镜像和运行容器。Kubelet 不集成容器运行时。作为替代,定义了一个 控制底层运行时并促进该层的可插拔性。当前支持的有 docker、、、。

提供集群内部解析和服务发现

提供内部服务七层代理到外部

替换 Heapster 监控

Kubernetes GUI

以及包括 等其它 组件。

Rancher 团队是做的比较早的,现在已经发布 2.x 版本了,支持中文,具体可以参考文档

Kubernetes Design and Architecture
Kubernetes API
cAdvisor
Container Runtime Interface
rkt
cri-o
frakti
华为云在 K8S 大规模场景下的 Service 性能优化实践
DNS
Ingress controller
Kubernetes Metrics Server
Dashboard
kube-state-metrics
add-ons
Multi-Cluster Kubernetes Management -- Rancher
Rancher 2.0-CN
Web UI for Kubernetes multi-clusters -- Wayne
Kubernetes
kubernetes-architecuture