全国统一咨询热线:022-85105633

Kubernetes详细技术教程

发布作者:新盟教育 发布日期:2022-03-08 浏览人数:166人

Linux运维实战教程



Kubernetes (简称k8s)近两年大火,如果你是一名云计算从业者,或者运维人员,还不了解kubernetes的话那你已经OUT了。



Kubernetes 是什么

官方定义是,Kubernetes是用于自动部署、扩展和容器化应用程序的开源系统。

而我们要了解究竟什么是Kubernetes,首先要明白容器的概念,以及Docker是什么。


NO.1容器

容器是一种虚拟化技术。

我们知道,在传统的服务器使用中,服务器物理资源存在较大的浪费。虚拟化技术就是为了避免这种浪费而产生的技术。下图展示了从虚拟化技术,到容器技术的发展史。


我们可以看到,容器技术不是凭空产生的,而是经历了漫长的演变过程。了解了这种演变,了解了容器技术为解决什么问题而诞生,你就不会对容器技术望而生畏了。

容器技术最早应用在Linux操作系统,称为Linux Container(LXC),早期在互联网公司开始使用部署分布式应用,随后随着容器管理器(Docker、Rocket和CloudFoundary Garden)兴起,定制容器宿主操作系统(CoreOS、Ubuntu Snappy、Red Hat Atomic)盛行,容器被有效构建和管理、并在各行各业普遍使用和认可。


NO.2容器技术的官方定义

容器是通过一种虚拟化技术来隔离运行在主机上不同进程,从而达到进程之间、进程和宿主操作系统相互隔离、互不影响的技术。

要理解这个定义,首先要弄清楚容器和虚拟机的区别。

简单来说,虚拟机是一个机器,但容器是一个进程。

每一个虚拟机里面都有一套完整的操作系统,而容器层安装在操作系统之上,它直接利用了宿主机的内核,更加轻量化、启动速度极快。通常,我们在每个容器里面跑单个的应用,而在虚拟机里会跑很多应用。下图展示了虚拟机和容器的不同。


容器技术具有:简化部署、快速启动、服务组合、易于迁移等优点。


NO.3最流行的开源容器引擎

谈到容器,就不能不讲Docker。Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。


Docker把容器变得标准化了。要理解Docker,你需要明白三个最主要的概念:容器、镜像、仓库

- 容器是运行在虚拟机上的进程。

- 镜像是一种存储形式,可以理解为数据或应用的副本。

- 仓库是用来存储镜像的。

Docker能够普遍使用起来,很大程度上得益于Docker的仓库里汇集了很多已经标准化的镜像,大大提升了部署效率。


NO.4什么是kubernetes

了解了容器和Docker,再来看kubernetes的定义就很容易理解了。

上文提到,Kubernetes是用于自动部署、扩展和容器化应用程序的开源系统。

当我们使用的容器服务多了,面临的访问量增大以后,我们就需要一种工具把这些容器统一的管理起来,需要实现对这些容器的自动部署、扩展和管理。也就是俗称的容器编排。

Kubernetes就是这样一种容器编排系统。


上图是Kubernetes的架构图。

从大的模块看,图中包含Master组件(APIs, scheduler, etc),Node节点和cloud端。

Master中,包含负责提供API服务的组件kube-apiserver;作为后台数据库的etcd,监听组件kube-scheduler;运行控制器的组件kube-controller-manager。

Node节点中包括运行在各个节点的客户端的kubelet,运行在各个节点的网络代理组件kube-proxy,支持运行容器底层环境的软件Container Runtime。

Cloud端作为集群外部的附加能力,通过与cloud-controller-manager组件对接,扩展k8s集群云上动态扩展的特性。


如何上手使用 kubernetes

NO.1Kubernetes的安装

Kubernetes有很多种安装方法,这里就不一一介绍了。推荐三种主要的安装方法,感兴趣的朋友可以通过关键词搜索相关教程,按步骤尝试安装。如果遇到问题,可以在我们的社群或者Kubernetes中文社区提问。

常见的三种安装方法:

- Kuberspray

- Kubeadm

- 手动安装


NO.2Kubernetes有哪些优势

为什么我们要用Kubernetes?因为它更省钱,更快,更省力。

Kubernetes和Docker都是开源的,这意味着你不需要支付高昂的授权费用;容器服务从启动到关停,比传统的服务器、虚拟机都要快捷很多;管理方面,Kubernetes提供一整套架构,管理方便,节省了运维的人力。

容器技术是未来发展的必然趋势。如果你从事开发、运维、云计算相关工作,一定要多多关注容器技术的发展。


NO.3几个与Kubernetes相关的产品/概念

在Kubernetes的生产实践中,有这几个产品/概念建议你去了解:

Openshift:OpenShift是由Red Hat开发的容器化软件解决方案。他们的主要产品是OpenShift容器平台,这是由Kubernetes管理的平台即服务(PaaS)。

Amazon EKS:Amazon Elastic Kubernetes Service (Amazon EKS) ,这是一项完全托管的 Kubernetes 服务。EKS拥有原生的kubernetes体验,并与AWS其他的云服务无缝的结合,为用户提供极佳的云端容器体验。下期直播我们会着重介绍这个产品。

微服务:由于容器技术的发展,微服务的理念也越来越被人们接受。按照微服务的理念,如果使用容器作为基础设施,能够实现快速部署,快速迭代。很多时候大家会将微服务和容器技术一起谈论,甚至有些公司直接将自己的新建的微服务应用部署在容器平台上。


NO.4如何学习Kubernetes

学习kubernetes,其实官方文档和github 就用了。最重要的,是你要边实践边学习,遇到不懂的问题,多搜索,多思考,多在社区里交流。实践出真知,这也是所有技术学习的不二法门。



推荐阅读

>>>新手必备-Linux入门之云计算是什么

>>>红帽认证入门-Linux系统介绍及企业版本选型

>>>新手必备-Linux系统安装配置+Xshell远程连接

>>>Linux常用命令行合集之绝对路径和相对路径

>>>软连接与硬连接


运维界升职加薪必备的云计算技术,你学了吗?


学完高级运维云计算课程之后,你可以:


  • 跨越90%企业的招聘硬门槛

  • 增加70%就业机会

  • 拿下BAT全国TOP100大厂敲门砖

  • 体系化得到运维技术硬实力

  • 技术大佬年薪可达30w+


资源放送 

2022新版Linux运维高级云计算-红帽RHCE实战课程合集,扫描下方二维码即可领取!

下.png