单单就这两句话包含了7、8个名词概念,要是把他们的定义列出来,保准得晕晕乎乎的,并且有些名词在不同的语境下有不同的含义,比如Docker是一个工具、是一个运行时、是一个平台等等,所以有些概念不结合具体的情景还真是说不清楚,我们还是来想想为什么出现这些东西吧。

当项目规模还小的时候,我们把程序放到服务器上运行起来就行了,简单方便,后来随着规模的扩大,部署的机器越来越多,发现机器资源分配不好控制,可能机器的大部分资源被某个应用占用,导致其他应用无法正常运行,无法做到应用隔离。

后来引入了虚拟机,虽然解决了资源控制问题,但在单个物理机上运行多个虚拟机,每个虚拟机都是完整独立的系统,性能损耗大,还有一个之前遗留的问题,就是运行环境的差异引发的问题常常使人焦头烂额,所以容器部署应运而生。

将运行程序和所依赖的环境打包成镜像,放到容器运行时上运行,可以保证所有程序的运行环境都一样,容器相比虚拟机性能损耗小,可实现资源隔离,CPU和内存可按需分配,所有容器共享主机的系统,最有名的要数Docker了

从这个角度来看docker或者容器运行时很像JVM,当年Java号称一次编写处处运行,靠的就是Java虚拟机,所有的Java源码会被编译成字节码,在不同平台上的JVM中被翻译中对应平台的指令,而Docker的身份和地位很像这个JVM,容器运行时可以在运行之前打包好的镜像,并且在不同的系统平台上模拟出目标平台的环境,来保证“一次打包处处运行”

现在知道了,我把应用程序和它依赖的运行环境打包成镜像,就可以在任何安装了Docker的机器上运行,不管这台机器是什么系统,这样就可以快速扩展程序规模了,但是新的问题还是会出现的

因为程序员太懒了,让他部署几个服务器还没啥问题,要是成百上千台服务器,每次扩展或更新都需要逐个拉取镜像、版本回滚、逐个启动,简直痛不欲生,在半夜被薅起来更新维护时还容易出错,所以这时候 Kubernetes 就诞生了,因其K和s中间有8个字母简称为k8s,它可以让你管理让你轻松管理成千上万台机器的集群,这些机器上的容器都归它管,一个命令就可以搞定版本升级、版本回滚等操作,还可以不停机的灰度更新,确保高可用、高性能、高扩展。

我的天,k8s都这么牛了,那 Rancher 又是啥?难道他比 k8s 还厉害,人类的懒惰是无极限的,k8s 虽然一个命令可以完成很多需求,但有些人就是一个命令也不想输啊,哈哈!

尽管 k8s 是一个强大的容器编排平台,可以同时管理集群中数以万计的机器,但人们为了方便还是开发了Rancher吗,它提供了用户友好的图形用户界面、RBAC(基于角色的访问控制)、日志和监控、多集群管理等,同时它还提供了一个集成的应用商店,其中包含了许多常用的容器化应用程序和工具,如数据库、监控、日志、CI/CD 等,通过 Rancher 的界面轻松部署这些应用程序,并与 Kubernetes 集群集成。

有些人用k8s为了方便部署和管理容器,而有些人只想更方便,选择了 Rancher 来管理看 k8s,之后会不会有人开发的新东西来管理 Rancher 呢,这有什么不可能的呢?

概念白话文

前面提到了很多概念,也讲了一些有关这些东西的来历,接下来让我用自己的理解来说说这些名词到底指什么。

镜像:最早听说这个词是系统镜像,将后缀为 .iso 的系统镜像文件刻录成光盘,或者烧制成U盘启动盘来安装系统,容器化中的镜像含义和系统镜像类似,就是用过用程序以及用于运行应用程序所需的所有依赖项打个包,称为镜像,它可以放到容器运行时中运行,相同的镜像可以重现相同的环境,就像相同的ISO文件会安装出相同的系统一样

Docker:往大点说这是指一个容器化平台,当然也可以是一个软件,或者是一项技术规范,用它可以开发、打包、部署和运行应用程序。通过使用 Docker,开发人员可以将应用程序及其依赖项(如库、运行时环境等)打包成一个轻量级的容器,然后在任何支持 Docker 的环境中运行这个容器,而不用担心环境的差异性。简单点说,它是一个工具,可以打包一个镜像,也可以运行一个镜像

Dockerfile:用来说明怎么打包镜像的,使用特定的描述性语言,告诉Docker怎么打包出一个镜像

容器化:将引用程序和运行环境打包成镜像,并批量运行到其他容器运行时上的过程

镜像和容器的关系:镜像是 Docker 中用于打包应用程序及其依赖项的静态文件,是只读的,一旦构建完成就不能修改,容器是镜像的一个运行时实例,它可以被启动、停止、暂停、删除等操作。可以简单类比下 class 和 object 的关系

k8s:为了管理和编排大量的容器而开发出来的工具,可以批量自动化的完成一些容器的操作,由他又引出了大量新的概念

k3s:一个轻量级的 Kubernetes 发行版,体积小、资源消耗低,采用了更少的组件和依赖项,并且对 Kubernetes 的安装和配置进行了简化,使得部署和管理更加容易

Pod:k8s调度、管理的最小单位,它包含一个或多个紧密关联的容器

Node:是集群中的计算节点,有master主节点和worker工作节点之分,负责提供计算资源、网络和存储服务,可以是真实的物理机,也可以是运行在物理机上的虚拟机。

Deployment: 是 k8s 中用于声明式管理 Pod 和 ReplicaSet 的控制器,可以认为是一个描述怎样使用 Pod 资源的规则,应用一个Deployment就是按照它的描述来组织和使用Pod

Service:是 k8s 中用于提供对一组 Pod 的网络访问的抽象,可以将一组 Pod 绑定统一对外提供服务

Namespace:k8s 中用于将资源分类的一个逻辑概念,类似于编程语言中的命名空间

Docker Compose:与k8s同类,也是用于管理容器化应用程序的工具,但规模较小适用于小型项目和开发环境

Rancher:一个开源的容器管理平台,拥有统一的可视化界面,可以同时管理多个k8s,括本地、云端或混合部署的集群

Rancher Desktop:是一款用于本地开发的工具,基于K3s构建,旨在提供轻量级的开发环境,使开发人员能够轻松地在自己的计算机上进行容器化应用的开发和测试

Workloads:工作负载,有哪些类型的活,包括Deployment(部署无状态Pod),StatefulSet(部署有状态Pod),DaemonSet(节点监控和日志收集),Job(一次性任务),CronJob(定时重复任务)

组件:每个角色要干指定活所以需要配备的一些功能模块,比如每个 Node 都有Kubelet组件,会与k8s控制平面进行通信,接收指令来管理此Node 上的 Pod

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
img

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-OY1Sel6N-1712667743916)]

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐