1.概述欢迎来到K8s入门课程。Kubernetes,也称为K8s或Kube,是来自Google的业界最受欢迎的容器编排器。本K8s教程由一系列关于K8s的文章组成。在第一部分中,我们将讨论什么是K8s以及K8s的基本概念。本课程专为初学者设计,您可以从零开始学习这门技术。我们将带您了解所有K8的基础知识,并帮助您理解这些概念。在开始学习K8s之前,让我们对容器引擎和容器有一个基本的了解。2、什么是容器引擎?容器引擎允许您在容器中绑定和运行应用程序,这是一个松散隔离的环境。由于隔离性和安全性,您可以在单个主机上操作多个容器。容器引擎利用了操作系统的内核资源隔离特性,可以在同一个操作系统上运行多个容器。人们经常将容器引擎比作虚拟机(VM)。另一方面,虚拟机在物理硬件资源的抽象层之上用可执行代码封装了整个操作系统。3、什么是容器?容器镜像是一个可运行的软件包,包含一个完整的可执行程序,包括运行时应用程序、系统库和所有重要设置的代码和默认值。通过使用容器,应用程序与底层主机架构分离。如下图所示,我们可以使用底层机器在容器引擎之上运行多个容器。这有助于跨各种操作系统和云场景部署容器。容器通过简化应用程序的扩展和部署来帮助企业实现现代化。然而,从头开始构建全新的基础设施,容器也带来了额外的问题和复杂性。大大小小的软件组织每天部署数以千计的容器实例,对其管理提出了越来越大的挑战。那么,他们是怎么做到的呢?4.什么是容器编排?容器编排与容器的生命周期管理有关,尤其是在大型动态环境中。软件团队使用容器编排器来控制和自动化容器管理的各种任务。容器编排器在任何使用容器的环境中工作。它可以帮助您在多个环境中部署相同的程序而无需重写它。5.容器编排工具容器编排技术提供了一个控制容器和微服务架构的框架。容器生命周期管理可以通过各种容器编排器解决方案来实现,Kubernetes、DockerSwarm和ApacheMesos是三种常见的解决方案/编排工具。DockerSwarm是一个Docker原生工具,非常容易安装和配置。K8s需要大量的人工干预来配置其组件,例如etcd、flannel和docker引擎。K8s以其与其他工具相比的各种优势和功能特性在行业中占据主导地位。6、什么是K8s?K8s是一种开源的容器编排器技术,最初由谷歌开发,用于容器化应用程序的自动部署、扩展和管理。K8s可以轻松部署和管理微服务架构应用程序。它通过在集群之上形成一个抽象层来实现这一点,让开发团队可以顺利地部署应用程序,而K8s主要处理以下任务:控制和管理应用程序对资源的使用在多个实例之间自动负载均衡应用程序请求间监控资源使用情况和资源限制,以自动防止应用程序消耗过多资源并重新恢复如果主机资源耗尽或主机崩溃,将应用程序实例从一个主机迁移到另一个选项时是可行的新主机加入集群,新加入的额外资源可以自动使用七、为什么市场推荐K8sK8s是云原生计算基金会(CloudNativeComputingFoundation,CNCF)最早发起的项目,是谷歌基金会最快的项目在Linux之后不断发展的开源软件项目。为什么现在很多企业都依赖K8s来满足他们的容器编排需求?原因有很多:可移植性和灵活性:K8s具有很强的兼容性,因为它可以运行在各种基础设施和环境设置下。大多数其他编排器没有这种灵活性。它们被锁定在特定的运行时或基础设施中。开源:CNCF管理K8s,这是一个完全开源、社区驱动的项目。它拥有多家重要的企业赞助商,但没有一家企业能够“控制”这个平台或控制它的发展方向。多云兼容性:K8s不仅可以将工作负载托管在单个云上,还可以将工作负载分布在多个云上。K8s还可以轻松地将其环境从一个云扩展到另一个云。虽然其他编排器也可以支持多云架构,但K8s在多云兼容性上完全可以超越。市场领导者:大多数公司都在使用K8s。根据RedHat的一项调查,K8s被客户广泛使用(88%),尤其是在生产环境中(74%)。8.K8s架构K8s是一个架构良好的分布式系统的例子。它将集群中的所有机器视为单个资源池的一部分。与其他成熟的分布式系统一样,K8s有两层:头节点和工作节点。头节点或主节点由控制平面和工作节点应用程序组成。一个K8s集群由许多头节点和工作节点组成。K8s引入了很多术语来描述应用程序的结构。我们将引导您完成每个学期。9.K8s组件头节点/主节点和工作节点由自己的组件组成,可以保证编排器的稳定运行。控制平面控制平面是管理员和用户管理不同节点的地方。它通过HTTP调用接收命令或连接到系统并运行命令行脚本。顾名思义,它控制着K8s如何与应用程序交互。APIserverAPIserver为K8s集群提供REST接口。在pod上激活的所有服务和其他对象都可以通过编程方式与端点交互。调度器调度器负责将任务分配给各个节点。它监控资源容量并确保工作节点性能保持在可接受的范围内。控制器管理器K8s控制器管理器是管理K8s核心控制循环的服务。它负责确保集群的共享状态正常运行。EtcdK8s使用Etcd,这是一个提供分布式键值存储的数据库,用于共享有关集群整体状态的信息。节点节点是运行pod的物理机或虚拟机。控制平面管理集群中的每个节点,其中包含运行pod所需的服务。PodsK8spod是K8s管理容器集合的最小单元。每个pod都有一个分配给pod中所有容器的IP地址。容器内存和存储资源在pod内共享。虽然应用程序只有一个进程,但Pod也可以有一个容器。KubeletKubelet是一个工作节点组件。它的工作是跟踪Pod及其容器的运行状态。它与pod的YAML或JSON描述文件相关联。Kubelet检查pod规格并确定pod是否健康。KubeProxyKubeProxy是一个网络代理和负载均衡器,充当每个节点和API服务器之间的连接。它在集群中的每个节点上运行,并允许您连接到内部和外部的pod。KubectlKubectl是K8s的命令行工具。用于部署应用、监控集群资源、查看日志。从用户的角度来看,Kubectl是K8s的控制面板。它使您能够执行所有K8s操作。从技术角度来看,Kubectl是K8sAPI的客户端。结论在本文中,我们了解了容器编排的基本概念和K8s的架构。在我们即将发布的文章中,我们将了解K8s的重要关键特性和单节点K8s安装。译者介绍范晓波,51CTO社区编辑,高级网络安全工程师。精通SDN、SD-WAN、VPN、NFV等网络相关技术。精通二层和三层网络转发。熟悉DPDK、VPP、OVS高性能网络开源框架。喜欢打羽毛球,做饭。原标题:Kubernetes简介|什么是Kubernetes,作者:M.S.M.西瓦姆
