01-Kubernetes冰山揭秘-第一层
Kubernetes就像一座冰山。你学习了基础知识,却发现还有很多东西要学。你学得越多,你看到的就越多。这篇文章解释了Reddit上“Kubernetes冰山”模因中列出的所有概念。
不久前,u/dshurupov published a picture on Reddit上发布了一张我称之为“Kubernetes冰山”的照片。这张照片是由弗兰特的人制作的。
它代表了一座巨大的冰山,在上面你有一些最简单的Kubernetes概念,当你在下面和水下时,你会深入到更先进的Kubernetes主题。这是图片:
当我看到它的时候,我觉得它很辉煌。Kubernetes一开始就不容易,它恰恰像一座冰山。你学得越多,你就越意识到你还有更多的东西要学。
在本系列文章中,我的目标是回顾冰山中出现的每一个概念,并尽可能以最简单的方式解释它们。由于解释不会详尽无遗,我将添加额外的链接到我的来源,以便在我的博客之外继续学习。
冰山很大,所以我会把它分成几篇文章,每周发表一篇。
这是我解释冰山的前两个层面的第一篇文章。
注意:尽管在撰写本文时,我已经与Kubernetes合作了将近三年,但我仍然不认为自己是Kubernetes专家。事实上,我也不熟悉这里的一些更先进的概念,所以我必须自己做一些学习。而这也是撰写本系列文章的原因之一。这样我们就可以一起学习和成长,无论是我的读者还是我。
系上;这将是一次有趣的旅行!
Docker
Docker是一个容器运行库。它是在 lightning talk at PyCon US 2013中向世界介绍的,此前是一家名为DotCloud的PaaS公司的骨干。
它彻底改变了我们构建和部署软件的方式,使用了古老的Linux概念,如cgroups和namespaces,但在此基础上提供了友好和易于使用的界面。
现在有一个开放的容器映像和运行时标准,称为OCI-Open container Initiative。Docker映像与OCI兼容,但Docker运行时不兼容。兼容的运行时之一是containerd,Docker也在暗中使用它。
Containerd是一个低级容器运行时,可以运行OCI映像(包括用Docker构建的映像)。
因为Docker与OCI不兼容,所以不再支持它作为Kubernetes运行时(但是Docker映像与OCI兼容,所以您仍然可以在Kubernetes中运行它们)。这需要一个额外的组件(称为dockershim)作为Docker和Kubernetes之间的桥梁。Kubernetes社区维护了这个组件,但他们不想再这样做了,因为已经有许多可靠的与OCI兼容的替代方案(containerd就是其中之一)。
Pod
Pod是代表工作负载的Kubernetes对象。
它是Kubernetes中可能最小的积木。
一个吊舱可以包含一个或多个容器。只有在需要多个容器共享内存和磁盘的情况下,一个pod才应该包含多个容器。
豆荚是短暂的和一次性的。死亡或被删除的独立吊舱将不会重新创建,因此如果发生这种情况,您的工作负载将停止运行。
这就是为什么我们有…
Deployment
部署是代表工作负载的Kubernetes对象。
它指定图像和所需副本的数量。Kubernetes确保运行副本的数量始终与所需的数量匹配。例如,如果我们创建一个具有三个副本的部署,Kubernetes将创建3个Pods(每个副本一个)。如果任何一个豆荚被删除或死亡,Kubernetes将旋转一个新的,以匹配集群的实际状态与期望的状态。
自动重新创建失败的工作负载是Kubernetes最好的特性之一,也是Kubernetes如今如此受欢迎的一个重要原因。
Kubectl
kubectl是用于与Kubernetes交互的CLI。您可以将它安装在您的机器上,并使用它与每个Kubernetes集群交互。与之交互的Kubernetes集群以及与之交互的方式(网络位置、API密钥、证书等)存储在kubeconfig文件中。
kubectl的命令之一是kubectl run。该命令将使用–image标志指定的图像创建一个Pod。在本例中,映像是nginx,Pod名称也是nginx。
- 点赞
- 收藏
- 关注作者
评论(0)