本文概述
什么是Kubernetes?
Kubernetes也被称为” k8s”。这个词来自希腊语, 意思是飞行员或舵手。
Kubernetes是Google在2014年设计的可扩展, 可移植的开源平台。它主要用于在节点集群中自动执行基于容器的应用程序的部署, 扩展和操作。它还旨在使用不同的方法来管理容器化应用程序的服务, 这些方法可提供可伸缩性, 可预测性和高可用性。
它实际上是” Borg”的增强版本, 用于管理长时间运行的流程和批处理作业。如今, 许多云服务都提供了基于Kubernetes的基础架构, 可以将其部署为平台提供的服务。此技术或概念可与许多容器工具(例如docker)一起使用, 并遵循客户端-服务器体系结构。
Kubernetes的主要对象
以下是Kubernetes中存在的关键对象:
下
它是Kubernetes应用程序中最小, 最简单的基本单元。该节点标识集群中正在运行的进程。
节点
节点不过是一个主机, 用于运行虚拟机或物理机。 Kubernetes集群中的一个节点也称为奴才。
服务
Kubernetes中的服务是Pod的逻辑集合, 可以协同工作。借助服务, 用户可以轻松管理负载平衡配置。
复制集
Kubernetes中的ReplicaSet用于标识在给定时间正在运行的Pod副本的特定数量。它取代了复制控制器, 因为它功能更强大, 并允许用户使用”基于集合”的标签选择器。
命名空间
Kubernetes支持各种虚拟集群, 称为名称空间。这是在两个或多个用户之间分配群集资源的一种方法。
Kubernetes的特征
以下是Kubernetes的基本功能:
- Pod:它是Kubernetes中的一个部署单元, 具有单个Internet协议地址。
- 水平缩放:这是Kubernetes中的重要功能。此功能使用HorizontalPodAutoscalar根据观察到的CPU利用率自动增加或减少部署, 复制控制器, 副本集或有状态集中的窗格数。
- 自动装箱:Kubernetes帮助用户声明其容器的计算机的最大和最小资源。
- 服务发现和负载平衡:Kubernetes为一组容器分配IP地址和DNS名称, 并在它们之间平衡负载。
- 自动部署和回滚:Kubernetes使用部署, 将更改和更新分发到应用程序或其配置。如果系统中发生任何问题, 则此技术会立即为你回滚这些更改。
- 持久存储:Kubernetes提供了一项称为“持久存储”的基本功能来存储数据, 在吊舱被终止或重新安排之后不会丢失。 Kubernetes支持各种存储系统来存储数据, 例如Google Compute Engine的永久磁盘(GCE PD)或Amazon Elastic Block Storage(EBS)。它还提供了分布式文件系统:NFS或GFS。
- 自我修复:此功能在Kubernetes的概念中起着重要的作用。在执行过程中失败的那些容器, Kubernetes会自动重新启动它们。并且, 那些不回复用户定义的运行状况检查的容器将阻止它们自动运行。
Kubernetes体系结构
Kubernetes的架构实际上遵循客户端-服务器架构。它由以下两个主要组件组成:
- 主节点(控制平面)
- 从属/工人节点
主节点或Kubernetes控制平面
Kubernetes体系结构中的主节点用于管理集群的状态。实际上, 它是所有类型的管理任务的切入点。在Kubernetes集群中, 存在多个用于检查容错性的主节点。
以下是主节点或Kubernetes控制平面中存在的四个不同组件:
- 服务器API
- 排程器
- 财务经理
- 经济合作发展组织
服务器API
Kubernetes API服务器接收用户发送的REST命令。接收后, 它将验证REST请求, 进行处理, 然后执行它们。执行REST命令后, 集群的结果状态将作为分布式键值存储存储在” etcd”中。
排程器
主节点中的调度程序将任务调度到工作节点。并且, 对于每个工作节点, 它用于存储资源使用信息。
换句话说, 它是负责将吊舱分配给可用工作节点的过程。
财务经理
控制器管理器也称为控制器。它是一个在非终止控制循环中执行的守护程序。主节点中的控制器执行任务并管理集群的状态。在Kubernetes中, 控制器管理器执行各种类型的控制器来处理节点, 端点等。
经济合作发展组织
它是一种开放源代码, 简单的分布式键值存储, 用于存储集群数据。它是用GO编程语言编写的主节点的一部分。
现在, 我们已经了解了主节点的功能和组件。让我们看看从属节点/工作节点的功能是什么以及它的组成部分。
工/从节点
Kubernetes中的Worker节点也称为奴才。工作节点是使用Pod执行应用程序的物理计算机。它包含所有基本服务, 这些服务使用户可以将资源分配给计划的容器。
以下是工作节点或从节点中存在的不同组件:
是婴儿
此组件是在群集中每个工作节点上执行的代理服务。它可以确保Pods及其容器运行顺畅。每个工作程序节点中的每个kubelet与主节点通信。它还将启动, 停止和维护由主节点直接组织为pod的容器。
古巴代理
它是Kubernetes的代理服务, 仅在集群中的每个工作节点上执行。该组件的主要目的是请求转发。每个节点都通过Kube-proxy与Kubernetes服务进行交互。
Pods
Pods容器是逻辑上在节点上一起执行的一个或多个容器的组合。一个工作节点可以轻松执行多个Pod。
Linux安装Kubernetes
在Linux上安装Kubernetes是一个简单的过程。请按照以下步骤安装Kubernetes。在安装Kubernetes时, 每个步骤都是必需的。
步骤1:在这一步中, 我们必须使用两个命令来更新系统的必要依赖关系。
第一个命令用于获取所有更新。在终端中执行以下命令;它将要求输入系统密码。
sudo apt-get update
输出如下:
成功执行第一个命令后, 键入以下第二个命令, 该命令用于创建存储库。
sudo apt-get install -y apt-transport-https
输出如下:
步骤2:成功执行上述步骤后, 我们必须在此步骤中安装docker的依赖项。
输入以下命令以安装docker。在安装过程中, 我们必须选择Y来确认安装。
sudo apt install docker.io
输出如下:
安装docker之后, 我们必须键入两个不同的命令来启动和启用docker。键入以下第一个命令, 以启动docker:
sudo systemctl start docker
现在, 键入以下第二条命令, 以启用docker:
sudo systemctl enable docker
输出如下:
现在, 我们可以通过键入以下命令来检查docker的版本:
Docker -version
输出如下:
步骤3:成功执行第二步的所有命令后, 我们必须安装curl命令。 curl用于使用URL语法发送数据。
现在, 使用以下命令安装curl。在安装中, 我们必须输入Y。
sudo apt-get install curl
输出如下:
现在, 我们必须通过以下命令下载Kubernetes的添加包密钥:
sudo curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
输出如下:
如果你从上述命令中得到错误, 则表明你的curl命令未成功安装, 因此请先安装curl命令, 然后再次运行上述命令。
现在, 我们必须通过以下命令添加Kubernetes存储库:
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
输出如下:
成功执行以上命令后, 我们必须通过执行以下命令来检查所有更新:
sudo apt-get update
输出如下:
步骤4:在上述步骤中执行完上述命令后, 我们必须通过执行以下命令来安装Kubernetes的组件:
sudo apt-get install -y kubelet kubeadm kubectl kubernetes-cni
输出如下:
步骤5:完成上述安装后, 我们必须通过执行以下命令来初始化kubeadm。以下命令在其他设备上禁用交换:
sudo swapoff -a
输出如下:
现在, 我们必须通过执行以下命令来初始化kubeadm:
sudo kubeadm init
输出如下:
步骤6:成功执行上述命令后, 我们必须运行以下命令, 这些命令在kubeadm的初始化中给出。这些命令显示在上面的屏幕截图中。以下命令用于启动集群:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
输出如下:
步骤7:在这一步中, 我们必须使用以下命令来部署路径:
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
输出如下:
步骤8:执行上述命令后, 我们必须运行以下命令来验证安装:
sudo kubectl get pods --all-namespaces
输出如下:
如果输出如上面的屏幕截图所示。这意味着Kubernetes已成功安装在我们的系统上。
评论前必须登录!
注册