前言
kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
内容简介
Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。
在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。
产品特点
- 可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)
- 可扩展: 模块化,插件化,可挂载,可组合
- 自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展
Kubernetes的主要特点和关键概念
-
容器编排: Kubernetes允许用户定义、部署和扩展容器化应用程序。它能够自动化应用的部署、升级和扩展,确保应用在整个生命周期中的高可用性。
-
抽象层和标准化: Kubernetes引入了一系列的抽象层,如Pod、Service、Deployment等,提供了一种标准化的方式来描述、部署和管理应用程序。
-
自动伸缩: Kubernetes能够根据应用程序的负载自动伸缩,调整运行实例的数量,以满足性能需求,并在负载下降时减少资源使用。
-
服务发现和负载均衡: 通过Service抽象,Kubernetes提供了服务发现和负载均衡的机制,使应用程序能够可靠地相互通信,并确保流量分布均匀。
-
存储管理: Kubernetes支持多种存储后端,并提供了持久卷(Persistent Volumes)和持久卷声明(Persistent Volume Claims)等机制,确保应用程序对数据的持久性和可靠性。
-
配置管理: 使用ConfigMap和Secrets,Kubernetes允许将配置信息和敏感数据与应用程序分离,实现更灵活的配置管理。
-
多集群管理: Kubernetes支持多集群部署,允许用户在不同的云环境或数据中心中管理和扩展容器化应用。
产品组件
1. API Server(API服务器):
功能: 提供Kubernetes API,是所有组件之间通信的入口点。
作用: 接收和处理来自命令行工具、Web UI或其他部分的请求,并协调集群中的操作。
2. etcd:
功能: 一致性键值存储,用于保存集群配置数据和元数据。
作用: 存储集群的状态信息,包括配置、节点信息、Pod状态等。
3. Controller Manager(控制器管理器):
功能: 包含一系列控制器,用于监控集群状态并进行调整以满足期望状态。
作用: 确保系统中的实际状态与期望的状态一致,例如自动伸缩、滚动更新等。
4. Scheduler(调度器):
功能: 负责将新的Pod调度到集群中的节点上。
作用: 根据节点资源、约束条件和调度策略选择最适合的节点,并分配Pod。
5. Kubelet:
功能: 在每个节点上运行,负责与API服务器通信,并确保在节点上运行的Pod处于健康状态。
作用: 管理Pod的生命周期,包括拉取容器镜像、启动、停止和监控容器。
6. Container Runtime(容器运行时):
功能: 负责运行容器。
作用: 将容器镜像转换为运行时实例,通常使用Docker、containerd、CRI-O等。
7. kube-proxy:
功能: 提供网络代理和负载均衡服务。
作用: 确保Pod能够相互通信,实现服务发现和负载均衡。
8. Ingress Controller:
功能: 提供HTTP和HTTPS路由到集群中服务的规则。
作用: 允许从集群外部访问集群内的服务,并执行负载均衡和路由。
9. Service:
功能: 定义一组Pod的抽象,提供一个统一的访问入口。
作用: 允许应用程序通过服务名而不是IP地址相互通信。
10. ConfigMap和Secrets:
功能: 分别用于存储配置数据和敏感信息,如密码或API密钥。
作用: 允许将配置信息和敏感数据从应用程序中分离出来,方便管理和更新。
这些组件共同工作,构成了Kubernetes强大的容器编排平台,为用户提供了高度可扩展、自动化和弹性的容器化应用管理环境。
Kubernetes集群所需的各种二进制组件
Master 组件
- Master组件提供集群的管理控制中心。
- Master组件可以在集群中任何节点上运行。但是为了简单起见,通常在一台VM/机器上启动所有Master组件,并且不会在此VM/机器上运行用户容器。请参考构建高可用群集以来构建multi-master-VM。
ETCD
- etcd是Kubernetes提供默认的存储系统,保存所有集群数据,使用时需要为etcd数据提供备份计划。
kube-controller-manager
- kube-controller-manager运行管理控制器,它们是集群中处理常规任务的后台线程。
插件 addons
- 插件(addon)是实现集群pod和Services功能的。Pod由Deployments,ReplicationController等进行管理。Namespace 插件对象是在kube-system Namespace中创建。
关于 【K8s】K8s是什么,一文带你了解kubernetes的详细讲解,七七就先分享到这里了,如果你认为这篇文章对你有帮助,请给七七点个赞吧,如果发现什么问题,欢迎评论区留言!!💕💕