Kubernetes(美丽)基础介绍

  

之前我一直想学习Kubernetes,因为它听起来很有意思(如果你是希腊人,你会觉得这个名字很有问题),但我从来没有机会,因为我没有任何东西需要运行在集群中。而最近,我的工作中开始逐步涉及Kubernetes相关的事情,所以这次我抓住机会,开始查资料,但后来我发现目前所有的资料(包括官方教程)都过于冗长,结构也不合理,这让我一开始有点沮丧。
  

  

经过几天的研究,我开始逐步理解Kubernetes的核心理念,并且把他部署到了生产环境中,因为我的简历现在说自己是个“Kubernetes专家”,一个想法立刻诞生了:为什么不把我对这个系统的宽泛理解以及我已经耗费了几个小时的研究所收集的知识让更多人看到?虽然我无法说服自己不应该再写另一篇漫无目的的文章,但是我很快就明白了:
  这就是那篇文章。
  

  

我在现有文章中遇到的主要问题是,在深入研究具体细节之前,我找不到的任何内容总结了这些组件是什么以及它们如何组合起来的高级概而述。这种高屋建瓴的呈现方式是我学习最好的方式。我是以这种方式来写的,希望它也适合你。如果你知道任何描述了Kubernetes如何工作,而且让人容易理解的专家级的文章/教程,请不要告诉我,因为你在我需要你的时候你在哪里,现在我写了我的文章而你却没有及早把它拿出来。
  

  

另外请记住,我实际上只学习了Kubernetes一个星期左右,所以学得不会非常深入,有些可能是不准确的,希望没有什么错误,这里的信息应该足够让你达到运行简单集群的程度。
  

  

话虽如此,最后我发现Kubernetes中的概念还是非常简单的,虽然我确信有很多东西我还不知道。但是,我知道的事情就足以建立一个集群并让我们的应用在其上运行,而且我很确定它们足以让大多数人知道如何开始。

  

<>强基本概念

  

我们需要做的第一件事是详细介绍Kubernetes的各个部分:
  

  
      <李>控制平面(控制平面):顾名思义,这是控制其他一切的部分,这也是我一无所知的部分,因为我们只是向亚马逊付费,让亚马逊帮我们处理这部分。我的理解是,这是最好的决定,除非你是谷歌,否则你应该付费给一些公司,让他们为你管理。   <李>节点(节点):节点本质上就是一台服务器,就像您付费的物理机工人一样。这是所有代码部署的地方,将裸服务器变成节点的方法是在其上安装码头工人,kubelet, kube-proxy和其他一些东西。本文假设您的群集中已有一些工人。   <李>容器集(Pod):豆荚是容器集合。这是您的代码所在的位置,通常每个容器都有一个豆荚,尽管您可能希望将一些密切相关的服务放在同一个豆荚中。Pod在单个节点上运行(但是一个节点可以运行许多Pod),这意味着豆荚中的所有容器将具有相同的IP地址,并且它们可以通过连接到本地主机上的彼此端口来相互通信.Pod在部署后无法更新,只能删除或替换它们。   <李>部署(部署):,部署是您将Pod实际部署到群集的方式。您可以在没有部署的情况下运行,但如果没有部署,则无法轻松指定所需的副本数量,在失败时自动重新部署,回滚到早期状态等.Deployment使代码生命周期管理变得更容易,并且您可以使用它来使码头工人镜像在Kubernetes上运行。   <李>服务(服务):服务允许您从一个舱打开端口到其他仓,并指定一个豆荚的DNS名称,以便能够查找并连接到群集中的其他仓。   <李>入口(入口):入口是你如何告诉你的入口控制器(通常是像Traefik这样的web服务器)向外界暴露什么,以及在哪个路径或主机名上。入口将映射到将实际应答该请求的豆荚。本教程也假设您已经配置了入口,虽然设置Traefik来做到这一点不应该非常困难(在用他们的教程时请使用部署方法)。   
  

所有这些都可以使用命令行的kubectl创建,或者更安全地通过YAML文件创建,该文件将包含您要部署的内容的定义和详细信息(然后执行kubectl应用- f & lt; YAML file>)。
  

  

概括地讲,您把容器放入舱中,这些吊舱将由部署创建和部署,其网络将由服务处理,并添加入口以便外部世界可以访问您的服务器。
  

  

让我们逐个介绍这些部分,看看它们的YAML配置是什么样的。
  

  

<强>荚

  

让我们看一下将在容器中运行复述,镜像的豆荚的YAML配置。请记住,荚并不是持久性的,所以你几乎不会直接使用它。相反,您将使用部署间接部署仓,我们将在下面介绍。

Kubernetes(美丽)基础介绍