翻译作者:Miazzy 翻译&转载:https://mindmajix.com/kubernetes-tutorial
Kubernetes教程
本教程为您提供了关于Kubernetes基础知识的概述和讨论。
Kubernetes是一个开源组合引擎,专门用于自动化容器化应用程序的部署,扩展和管理。它适用于任何规模和规模的容器,并由工具支持,可以将其连续分组为逻辑单元,并跟踪,管理和监控所有这些容器。Kubernetes可以帮助您做到这一点,被认为是容器管理的绝对工具。
什么是Kubernetes:
Kubernetes基本上是一个专门设计用于管理节点集群中不同类型的容器化应用程序的系统。它旨在解决现代集群基础设施的设计方式之间的脱节。几乎所有集群技术都努力提供独特或应用程序部署的平台。
用户不必关心工作安排的位置。呈现给用户的工作单元处于服务级别,并且可以由任何成员节点完成。另一方面,许多构建时考虑到扩展的应用程序实际上是创建了较小元素的服务,这应该在常量主机上是常规的。一旦他们信任特定的网络条件以便进行适当的沟通,它甚至是非常必要的。
考虑应用而非服务器
Kubernetes凭借其优雅的抽象允许开发人员接受应用程序,而不是特定服务器,Pet(宠物)服务器,主机名等上的单个容器的服务器。容器,复制服务和控制器是Kubernetes的基本单元,用于描述系统所需的状态。在Kubernetes中,部署基于规则进行处理,并通过主动监视,扩展和自动修复这些服务以进一步向前迈进,以维持其所需状态。
Kubernetes特点:
Kubernetes通过以下功能帮助用户快速有效地响应客户需求:
- *有助于快速,可预测地部署任何应用程序。
- *无缝推出新功能并动态
- *扩展应用程序,仅限硬件使用所需资源。
- *有助于减轻在公共云和私有云中运行应用程序的负担。
本教程提供了有关Kubernetes集群组合系统基础知识的演练。每个模块都包含一些关于kubernetes主要功能的背景信息和概念,包括交互式在线教程。本教程让读者可以管理一个简单的集群及其容器化应用程序。
使用这些交互式教程,您可以学习如何:
- *在集群上部署
- *容器化的应用程序,调试容器化应用程序
- *使用新软件版本扩展,更新容器化应用程序。
Kubernetes架构
H3主组件(H3 Master Components)
像CoreOS这样的系统在基础设施层面很难创建一个统一的环境,每个主机都是可互换的和一次性的。另一方面,Kubernetes以特定级别的主持人专业化运作。
Kubernetes集群控制服务称为主机或控制平面组件。它们根据管理员的主要管理联系点进行操作,并为相对愚蠢的工作节点提供多个群集范围的系统,这些系统可以安装在单个计算机上或分布在多个计算机上。
集群体系结构遵循客户端 - 服务器体系结构,其中主服务器安装在一台计算机上,节点安装在不同的Linux计
Kubernetes Master Machine的主要组件:Kubernetes的关键组件如下:
Etcd
它存储与群集节点可以使用的配置相关的信息。它具有分布在多个节点之间的高可用性密钥值存储,并且分布式密钥值存储只能由Kubernetes API服务器访问,因为它可能是一些敏感信息。
API服务器
Kubernetes是一个API服务器,它使用可以轻松通信的不同工具和库来实现集群上的所有操作。Kubeconfig用于公开Kubernetes API,附带服务器端工具,可用于通信。
控制管理器(Controller Manager)
此组件的此功能是调节群集的状态并执行任务,主要用于收集器。它在非终止循环中运行,负责向API服务器发送和收集信息。要使服务器进入所需状态,它会收集共享数据并进行更改。其关键控制器包括复制控制器,命名空间控制器,服务帐户控制器和端点控 控制器管理器运行不同类型的控制器来处理节点,端点等。
调度(Scheduler)
作为Kubernetes master的关键组件之一,它负责工作负载分配和跟踪群集节点上的工作利用率负载,然后通过接受工作负载将它们放在可用资源上。简而言之,它负责将pod分配给可用节点,并负责工作负载利用率。
Kubernetes节点的组件
以下是与Kubernetes master通信所必需的Node服务器的关键组件。
Docker - Docker是任何节点的主要要求,有助于运行任何封装的应用程序容器和轻量级操作环境。
Kubelet服务 - 每个节点中的服务负责通过与etcd存储库交互来读取配置和怀特的值,从而将信息传递到控制平面和从控制平面传递信息。它承担维护工作状态和节点的责任,还管理网络规则,端口转发等。
Kubernetes代理服务 - 这是一种在节点上运行的代理服务,有助于提供外部主机可用的服务。它负责转发请求以更正容器并执行原始负载平衡,并确保网络环境可访问,可预测以及隔离。这个的任何关键功能是管理机密,节点上的pod,卷,新容器创建等。
设置Kubernetes - 必须设置虚拟数据中心(VDC)来设置Kubernetes,它可以被视为一组负责通过网络相互通信的机器。
完成任何云上的IaaS设置后,您需要配置主服务器和节点。
在任何云上设置IaaS后,应该完成主服务器和节点的配置。
先决条件
Docker安装 - 每个Kubernetes安装都需要Docker。
安装Docker的步骤如下:
步骤1 - 使用root用户的登录凭据登录计算机。
步骤2 - 使用apt软件包,更新软件包信息
步骤3 - 运行以下命令。
步骤4 - 添加新的GPG密钥。
步骤5 - 更新API包图像。
$ sudo apt-get update
完成上述任务后,通过验证内核版本开始实际的Docker引擎安装
Docker Engine安装
运行以下命令以安装Docker引擎。
步骤1 - 登录到计算机。
步骤2 - 索引包更新。
$ sudo apt-get update
步骤3 - 使用以下命令更新信息。
$ sudo apt-get install docker-engine
第4步 - 启动Docker守护程序。
$ sudo apt-get install docker-engine
步骤5 - 使用以下命令,验证Docker引擎的安装。
$ sudo docker run hello-world
安装etcd 2.0
运行以下命令或安装Kubernetes Master Machine。
在上面的命令集中 -
下载etcd后,使用指定的名称保存它,然后取消tar tar包。
做一个目录。在/ opt命名bin中,然后将提取的文件复制到目标位置。
现在,我们可以通过在集群上的所有机器上安装Kubernetes来构建它。
上面的命令将在kubernetes文件夹的根目录中创建一个_output目录。现在,我们必须将目录解压缩到我们选择的/ opt / bin等目录中的任何目录。网络部分是下一个需要加强Kubernetes主站和节点设置的部分。为此,必须在节点机器上完成在主机文件中的输入。以下是上述命令的输出。
现在,实际配置从Kubernetes Master开始。首先将所有配置文件复制到正确的位置。
以上命令会将所有配置文件复制到所需位置。现在我们将回到我们构建Kubernetes文件夹的同一目录。
下一步是更新/ etc下复制的配置文件。DIR。
使用以下命令在master上配置etcd。
$ ETCD_OPTS = "-listen-client-urls = http://kube-master:4001"
使用Kubernetes部署应用程序
要在Kubernetes中部署应用程序,Kubeapps是最简单快捷的方法。它是Kubernetes的仪表板,可以通过任何格式的简单浏览和应用程序部署来增强集群。它还提供了一个完整的应用程序交付环境,使用户能够启动,审查和共享应用程序。Kubeapps是一个开源项目,旨在鼓励查看最新版本。它可以在几分钟内部署在集群中。
Kubeapps项目包括以下内容:
CLI
这主要用于增强群集和引导kubeapps以在终端窗口中运行Kubeapps CLI工具。可以使用单个命令安装完整的应用程序交付环境。
Dashboard
对于简化部署,Kubeapps提供了一个包含超过100个kubernetes就绪应用程序的集群内工具集,这些应用程序打包为Helm图表和无kubeless函数。
Hub
这是一个基于Web的社区,旨在发现,评估和审查预先打包的kubernetes应用程序,这些应用程序可通过kubernetes集群访问。
为何选择Kubernetes
Kubernetes至少可以在每个身体和数字机器的集群上安排和运行实用程序包装容器。但是,它还允许建筑商“切断”绳索到身体和数字机器,从以数字为中心的基础设施转移到以现场为中心的基础设施,提供继承到容器的若干优势。它提供了构建完整的以容器为中心的开发环境所需的基础结构。Kubernetes为Docker提供了一种基础技术,已经融入Linux内核已有一段时间了。
Kubernetes允许用户部署云原生应用程序,并在任何时间和地点完全按照他们的要求对其进行管理。其主要功能包括:
- *今天的基础架构框架
- *模块化以实现更好的管理
- *更新和部署用于扩展的软件
- *为云原生应用奠定坚实的基础
除此之外,Kubernetes还允许用户获得最大的容器实用程序并构建云原生应用程序,从而使其能够在任何地方独立于特定于云的要求运行。显然,它是一种快速简便的应用程序开发和操作的最有效模型。