Kubernets
简介
kubeadm-单节点-ubuntu
kubeadm-高可用集群-ubuntu
资源管理
Namespace
Pod
Pod控制器
Pod生命周期
Pod调度
Label
Service
数据存储
安全认证
DashBoard
kubeadm-单节点-centos
kubeadm-高可用集群-centos
本文档使用 MrDoc 发布
-
+
首页
简介
Kubernetes(通常简称为K8s)是一个开源的容器编排和管理平台,用于自动化部署、扩展和管理容器化应用程序。它提供了一种容器编排的解决方案,可以帮助您轻松地管理大规模的容器化应用程序。 Kubernetes的前身可以追溯到Google内部的一个项目,称为Borg。Borg是Google用于管理和编排其大规模应用程序和服务的系统。它最初于2003年开始开发,并在Google内部多年来得到广泛使用。 Borg的目标是提供一种高度自动化的方式来管理数千甚至数十万个任务,并在Google的数据中心中高效地运行它们。它可以自动处理任务的调度、容错、资源管理、监控和故障恢复等方面的工作。 随着时间的推移,Google意识到Borg的价值,并决定将其开源。这导致了Kubernetes的诞生。Kubernetes最初是由Google在2014年发布的开源项目,旨在将Borg的核心思想和功能带到更广泛的社区中。 Kubernetes的设计和架构受到了Borg的影响,但也进行了一些改进和适应,以适应更广泛的使用场景和不同的环境。Kubernetes提供了更灵活、可扩展和可定制的容器编排和管理解决方案,成为了容器化应用程序的事实标准。 因此,可以说Kubernetes是基于Google内部的Borg项目发展而来的,并在开源社区中得到了广泛的发展和采用。它的诞生为容器化应用程序的管理和编排带来了革命性的变化,并成为了云原生应用开发和部署的重要基石。 Kubernetes的主要目标是简化容器化应用程序的部署和管理,并提供高可用性、可扩展性和自动化的运维能力。它具备以下关键特性: 1. 自动化部署和扩展:Kubernetes可以自动化地部署和扩展应用程序,根据配置和需求自动创建、调度和管理容器。 2. 服务发现和负载均衡:Kubernetes提供内建的服务发现机制,使容器能够通过DNS或环境变量相互发现和通信。它还支持负载均衡,可以将流量均匀地分发到多个容器实例之间。 3. 自愈性和健康检查:Kubernetes可以监控容器的状态,并在容器失败或不健康时自动重新启动、替换或扩展容器实例,以确保应用程序的高可用性。 4. 自动扩展:Kubernetes可以根据应用程序的负载自动扩展容器实例的数量,以满足流量的需求。它可以根据预定义的规则自动调整容器副本的数量。 5. 存储编排:Kubernetes提供了对持久化存储的支持,可以管理应用程序所需的存储卷,并将其附加到容器中。这使得数据在容器迁移或重启时仍然可访问。 6. 配置和密钥管理:Kubernetes提供了集中化的配置管理机制,可以管理应用程序所需的配置和敏感信息(如密码、密钥等),并将其注入到容器中。 7. 扩展性和插件机制:Kubernetes具有高度可扩展的架构,支持插件机制,可以轻松地扩展功能和集成其他工具和服务。 Kubernetes提供了丰富的命令行工具和API,使您能够管理和监控整个集群以及其中的应用程序。它还提供了灵活的部署模型,可以在各种云平台、虚拟化平台和裸机环境中运行。 通过使用Kubernetes,可以更轻松地管理和扩展容器化应用程序,提高应用程序的可用性和可靠性,并实现更高效的资源利用。 # Kubernetes组件 ## 1. Master节点组件(控制平面) - ApiServer:资源操作的唯一入口,接收用户输入的命令,提供认证、授权、API注册和发现等机制 - Scheduler:负责集群资源调度,按照预定的调度策略将Pod调度到相应的node节点上 - ControllerManager:负责维护集群的状态,比如程序部署安排、故障检测、自动扩展、滚动更新等 - Etcd:负责存储集群中各种资源对象的信息 ## 2. Node节点组件(工作节点) - Kubelet: 负责维护容器的生命周期,即通过控制docker,来创建、更新、销毁容器 - KubeProxy: 负责提供集群内部服务发现和负载均衡 - Docker: 负责节点上容器的各种操作 ## 3. 其他组件 - Namespace:用于将集群划分为多个虚拟集群,以实现资源隔离和多租户支持。 - Pod:是Kubernetes的最小调度单位,可以包含一个或多个容器,共享网络和存储资源。 - ReplicaSet:用于定义和管理Pod的副本数量,确保指定数量的Pod副本在集群中运行。 - Deployment:用于声明式地定义应用程序的部署方式,管理ReplicaSet,并支持滚动升级和回滚操作。 - Service:提供了稳定的网络访问入口,通过标签选择器将流量路由到一组Pod。 - Volume:用于将持久化存储附加到Pod中,以便数据在容器迁移或重启时仍然可访问。 # kubernetes概念 - Master: 集群控制节点,每个集群需要至少一个master节点负责集群的管控 - Node: 工作负载节点,由master分配容器到这些node工作节点上,然后node节点上的docker负责容器的运行 - NameSpace: 命名空间,用来隔离pod的运行环境 - Pod: kubernetes的最小控制单元,容器都是运行在pod中的,一个pod中可以有1个或者多个容器 - Label: 标签,用于对pod进行分类,同一类pod会拥有相同的标签 - Controller: 控制器,通过它实现对pod的管理,比如启动pod、停止pod、伸缩pod的数量等等 - Service: pod对外服务的统一入口,下面可以维护者同一类的多个pod ![](/media/202406/2024-06-03_120259_5482690.9929727228471722.png)
done
2024年7月10日 12:14
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码