Kubernetes最全详解(6大架构组件图解)

Kubernetes最全详解(6大架构组件图解)

Kubernetes是云技术的最核心的部分,也是云原生的基石,下面我就全面来详解Kubernetes@mikechen

Kubernetes

Kubernetes(常缩写为“K8s:),是一个开源的容器编排平台,最初由Google开发,现在由云原生计算基金会(CNCF)维护。

Kubernetes主要解决:在自动化应用的部署、扩展、和管理…等问题。

Kubernetes最全详解(6大架构组件图解)

1、自动化部署与管理

比如:自动部署、扩展、和管理容器化应用。

以及,自动重启失败的容器,替换或重调度当节点失效时的容器。

2、服务发现与负载均衡

自动分配IP地址和DNS名称,负载均衡Pod间的流量。

3、存储编排

自动挂载所需的存储系统,如本地存储、云供应商存储、网络存储等。

4、自动伸缩

基于CPU使用情况、或其他自定义指标,自动扩展、或缩减应用实例的数量。

 

Kubernetes工作原理

Kubernetes通过以下组件和流程来实现其功能:

1、集群结构

如下图所示:

Kubernetes最全详解(6大架构组件图解)

Master节点:负责管理和控制整个集群,主要组件包括:API Server、Scheduler、Controller Manager和etcd。

Worker节点:负责运行应用容器,主要组件包括:Kubelet、Kube-proxy和容器运行时(如Docker)。

 

2、核心组件

API Server

API Server是Kubernetes集群的前端组件,它提供了一个RESTful API,用于管理集群的各种资源。它是Kubernetes中的中央控制点,所有的操作都通过API Server进行。

功能:

  • 提供集群管理的统一入口;
  • 处理来自客户端的API请求,包括创建、删除、更新和查询各种资源;
  • 实现了认证、授权、准入控制、资源验证和默认值等功能;
  • 提供了一种基于插件的机制,允许用户扩展API Server的功能。

etcd

etcd是一个高可用的分布式键值存储系统,用于存储Kubernetes集群的所有数据。

它是Kubernetes的后端数据库,用于存储集群的配置信息、状态信息和元数据等。

 

Scheduler

Scheduler是Kubernetes集群的调度器组件,负责为新创建的Pod选择合适的节点进行调度,以保证集群中的各种资源得到合理利用。

功能:

  • 监视集群中未分配节点的Pod;
  • 根据Pod的资源需求和调度策略选择合适的节点进行调度;
  • 考虑节点的负载情况和亲和性/反亲和性规则等因素进行调度;
  • 支持扩展和自定义的调度器插件。

Controller Manager

Controller Manager是Kubernetes集群的控制器管理器组件,负责管理集群中的各种控制器。

比如:ReplicaSet Controller、Deployment Controller。。。。。。等。

Kubernetes最全详解(6大架构组件图解)

 

Kubernetes和Docker关系

Kubernetes最全详解(6大架构组件图解)

Docker:是一种容器技术,用于创建和管理容器。它提供了构建、运行和分发容器的工具。

Kubernetes:是一个容器编排平台,用于管理多个Docker容器,它并不是替代Docker,而是构建在Docker之上的更高层次的管理工具。

在Kubernetes中,Docker通常作为容器运行时使用,负责启动、和管理容器。

Kubernetes提供了调度、扩展和管理这些容器的功能,从而将单个容器转变为一个可伸缩、和自我修复的集群应用程序。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧