作者简介: 辭七七,目前大二,正在学习C/C++,Java,Python等
作者主页: 七七的个人主页
文章收录专栏: 七七的闲谈
欢迎大家点赞 👍 收藏 ? 加关注哦!💖💖
kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。
在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强大的容器编排平台,为用户提供了高度可扩展、自动化和弹性的容器化应用管理环境。
Master 组件
ETCD
kube-controller-manager
插件 addons
??关于 【K8s】K8s是什么,一文带你了解kubernetes的详细讲解,七七就先分享到这里了,如果你认为这篇文章对你有帮助,请给七七点个赞吧,如果发现什么问题,欢迎评论区留言!!💕💕