【51CTO.com快译】朋友和熟人常问我可以从哪里开始学习Kubernetes、如何开始学习。提这些问题的包括仍在处理虚拟机和整体式应用程序等旧系统的运维和开发人员。CI/CD和DevOps之类的术语对他们来说不过是流行语,他们仍在忙于照顾旧系统,这是其日常工作所需要的。
现在他们注意到越来越多的工作负载从虚拟机迁移到容器,并按照微服务重新设计整体式应用程序的架构,以便轻松处理创新并响应快速的市场需求。现在是他们学习导致大规模迁移到Kubernetes的工具、平台和解决方案的时候了。
Kubernetes是什么?
学习Kubernetes时要做的第一件事是找到关于它的清晰解释。您可以利用很多书籍和YouTube参考资料获得最基本的解释,我认为《图解Kubernetes儿童指南》这段YouTube视频对Kubernetes作了最好的解释,建议先看一下。
Kubernetes组件
Kubernetes不是一台机器,而是一个平台。部署Kubernetes时,您将获得一个集群。集群由运行容器化应用程序的一组主控机器和worker机器(名为节点)组成。每个集群至少有一个worker节点。这些是Kubernetes组件。
下面是Kubernetes将所有组件捆绑在一起的样子。
图1. Kubernetes集群组件示意图
如何开始?
学习Kubernetes时,您需要部署一个集群。但这对于无法获得额外硬件,抽不出时间来安装硬件以及所需网络和计算资源的人来说将是一个挑战。这个要求常常使Kubernetes之旅还未开始就已经脱轨。那么最好的开始方式是什么呢?
幸好有多个开源项目让您可以从笔记本电脑部署Kubernetes集群。不妨先看一看那些项目,然后我提出自己的意见,表明哪个是学习Kubernetes并部署第一个云原生应用程序的优选方法。
本地Kubernetes项目挺身而出
这些是您可以用来探索Kubernetes的本地项目。请注意,这些项目尚未为企业准备就绪,仅应用于学习目的。
注意:在开始探索Kubernetes之前,确保您的笔记本电脑上有足够的资源。
- Linux:Red Hat Enterprise Linux、Fedora或CentOS
- 每台机器16 GiB或更多的内存。
- 机器上用作控制平面节点的2个CPU。
- 集群中所有机器之间实现完全网络连接。
minikube
在这些选择中,minikube是最容易安装的。它将为您提供在VirtualBox或KVM之上运行的单节点集群。
资源需求:
- CPU:2个
- 内存:2 GB
- 磁盘空间:20 GB
一旦有了运行中的集群(单节点),您可以通过使用kubectl命令行部署一个简单的应用程序与本地Kubernetes集群进行交互,让自己开始上手。我在使用Minikube时注意到的唯一问题是这个限制:需要添加worker节点才能完成集群体验。
kind
kind要求您在Docker容器中运行Kubernetes。可以在此处(https://kind.sigs.k8s.io/docs/user/quick-start/)找到kind安装说明。
虽然kind易于安装,但我在使用该项目时看到的问题是访问集群的复杂网络配置。对于刚开始学习Kubernetes的人来说,这可能令人望而却步。
资源需求:
- CPU:2个
- 内存:8GB
- 存储空间:20GB
kubeadm
使用kubeadm的集群启动可用于部署云原生应用程序。首先,您要有一个主节点和一个worker节点。
在笔记本电脑上安装kubeadm是获得生产级Kubernetes集群部署的最接近的体验。因此,kuberadm可能也是学习Kubernetes的最困难的方法。
资源需求:
- CPU: 2个
- 内存:8GB(您需要额外的内存来部署应用程序)。
- 存储空间:20GB
Minishift
Minishift是基于OKD的项目,而OKD是OpenShift背后的上游项目。安装Minishift后,它将为您提供在VirtualBox或KVM中运行的单节点OpenShift集群。
资源需求:
- CPU:2个
- 内存:4 GB
- 存储空间:20 GB
与其他项目相比,Minishift易于安装,具有更大的灵活性,因此您可以在Linux、Windows和macOS中安装它。
由于Minishift基于OKD,因此您不仅将学习Kubernetes的基础知识,还将学习Openshift和Minishift中的一些组件。
Minishift的缺点在于它仅支持OKD 3.11,因此您将无法获得新版本OKD 4的完整体验。Minishift被CodeReady Containers替代,以获得OKD 4的完整体验,如此处所述。
CodeReady Containers(CRC)
CRC基于OKD 4.1,在笔记本电脑上提供了单节点配置。它的运行几乎与Minishift和minikube如出一辙。安装也很容易,文档可以在这里找到(https://github.com/code-ready/crc#building-the-documentation)。
资源需求:
- CPU:4个
- 内存:8 GB
- 存储空间:30 GB
结论
有多种方法可以在本地部署Kubernetes,从而开始掌握实属当前IT革命核心的重要技能。
如果您刚起步,建议使用minikube学习Kubernetes,因为我发现这对初学者来说最容易。一旦您熟悉了Kubernetes概念,下一步就是进而使用CRC。这会将您的Kubernetes技能提高到新的水平,因此您可以学习大多数高级适配器已经在使用的企业级组件。
如前所述,学习Kubernetes就像重新学习Linux操作系统。如果遇到了障碍,别泄气。掌握这项技术就像投资未来,并在某种程度上帮助您证明自己。
原文标题:Start learning Kubernetes from your local machine,作者:Michael Calizo
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】