2024年最新k8s小白的学习初体验(1),你会的还只有初级Linux运维工程师的技术吗

最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

资料预览

给大家整理的视频资料:

给大家整理的电子书资料:

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

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

将运行程序和所依赖的环境打包成镜像,放到容器运行时上运行,可以保证所有程序的运行环境都一样,容器相比虚拟机性能损耗小,可实现资源隔离,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

控制平面:运行在主节点上的集群的核心组件之一,负责管理集群的各种操作、监控集群状态,并确保集群的稳定运行,通常包含 kube-apiserveretcdkube-controller-managerkube-schedulercloud-controller-manager

一些疑问

  • 容器化是不是只能用Docker?

不是的,Docker只是实现容器化的一种可选的途径,只要实现了容器化标准的工具都可以实现容器化,作为容器运行时,比如 k8s 为了提高效率,减少不必要的开销,已经将默认的容器运行时从 Docker 改成了 containerd,其他类似于Docker的运行时还有 Podmanrkt(Rocket)LXC(Linux ContainersCRI-O

  • k8s 是唯一的容器编排工具吗?

不是的,就像前文提到的 Docker Compose 也能管理容器的使用,只是适用规模较小,除此之外类似的工具还有 Docker SwarmApache MesosNomadOpenShift

总结

  • Docker 生成和运行镜像,k8s 管理这些被Pod包装并运行在Node上的容器,Rancher 管理 k8s 集群
  • 部署无状态Pod使用 Deployment,部署有状态Pod使用 StatefulSet,StatefulSet 会固定每个 Pod 的名字
  • k8s不会为你处理数据的存储,我们可以为运行数据库的Pod挂载一个磁盘来确保数据的安全,云存储、本地磁盘、NFS都是可以选择的对象
  • kubectl get all 可用于查看常用资源,包括Pod、Service、Deployment、ReplicaSet等
  • 也可以单独查询某项信息 kubectl get namespacekubectl get podkubectl get nodekubectl get deployment

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

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

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

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

需要这份系统化的资料的朋友,可以点击这里获取!

目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

需要这份系统化的资料的朋友,可以点击这里获取!

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: K8s运维工程师需要具备哪些技能和经验? K8s是目前最流行的容器编排和管理平台,因此,K8s运维工程师需要掌握基本的Linux系统管理和网络知识,具备Docker和K8s的实践经验和技能。在面试中,以下问题是K8s运维工程师经常遇到的问题: 1.描述Docker镜像的构成和制作过程。 Docker容器是通过Docker镜像构建的,而Docker镜像是由多个层次构成的。运维工程师需要理解Docker镜像的构成和创建过程,掌握Dockerfile文件的编写和基本的构建命令。 2.如何使用Kubernetes创建和管理容器? Kubernetes是一个开源的容器编排和管理平台。运维工程师需要理解Kubernetes的组件和工作原理,熟悉Kubernetes的部署和管理,能够使用Kubernetes创建和管理容器化应用程序。 3.Kubernetes中的Service和Ingress有什么区别? Kubernetes的Service和Ingress都是用于暴露服务和路由流量的机制。运维工程师需要理解Service和Ingress的区别和各自的使用场景,能够根据不同的要求配置和管理Service和Ingress。 4.如何管理Kubernetes集群的安全? Kubernetes集群的安全管理是K8s运维工程师必须掌握的关键技能。运维工程师需要了解Kubernetes的安全机制和最佳实践,能够配置和管理Kubernetes集群的安全策略和证书。 总之,K8s运维工程师需要具有扎实的英语和计算机技能、出色的问题解决能力、敏捷的反应能力和良好的团队合作能力。在实践中不断学习、不断探索,并遵循最佳实践,才能成为一名成功的K8s运维工程师。 ### 回答2: k8s运维工程师需要具备哪些技能和能力? 作为一名k8s运维工程师,需要具备以下几个方面的技能和能力: 1.熟练掌握k8s基础知识:k8s是目前最流行的容器编排平台,需要熟练掌握其概念模型、架构设计等基础知识,了解k8s各个组件的作用和相互关系。 2.熟悉Linux操作系统:Linux作为k8s最常用的操作系统,需要熟悉其操作和维护,包括文件系统、进程管理、网络配置等,可以快速解决生产环境中的问题。 3.编程语言:k8s的开源社区主要使用Go语言进行开发,因此需要掌握基础的Go语言编程能力,同时还需了解常用的Shell脚本语言。 4.容器技术:熟悉Docker容器技术,能够对镜像进行管理、发布和更新,了解容器网络、存储和安全领域的相关技术。 5.自动化和DevOps:熟练使用自动化工具,如Ansible、Puppet等,了解CI/CD的实践流程,掌握DevOps基本理念和实践方法。 6.团队合作和沟通能力:k8s运维工程师需要与开发人员、QA、安全、运维等不同部门进行沟通和协作,因此需要具备良好的团队合作和沟通能力。 在实际工作中,k8s运维工程师需要根据生产环境中的实际情况,灵活应用各种技能和能力,维护k8s平台的高可用性、高性能和高安全性,确保业务的稳定运行和快速迭代。 ### 回答3: K8sKubernetes)是一个开源的容器编排系统,可以将多个容器编排在同一个集群中,从而能够有效地管理和分发容器,在分布式系统中扮演着一个重要的角色。对于K8s运维工程师来说,需要掌握K8s集群的搭建和运维,具有一定的Linux操作系统基础和Docker容器技术。 在K8s运维工程师的面试过程中,常见的面试题目包括以下几个方面: 一、K8s基础知识:K8s的架构、常用概念、K8s资源对象、K8s组件和服务等。 二、K8s集群搭建:如何构建和部署一个K8s集群,如何管理Master和Node节点,如何配置Kubelet、Kube-proxy等。 三、K8s应用容器化:如何通过Docker将应用程序打包成容器,如何基于容器部署一个应用程序,如何将应用程序与K8s相关联。 四、K8s网络和存储:如何设置K8s网络和存储,如何配置网络插件和存储卷等。 五、K8s监控和调试:如何监控和调试K8s集群和应用程序,如何使用Prometheus、Grafana等监控工具。 综上所述,K8s运维工程师需要具备良好的K8s基础知识和实践经验,以及熟练的Linux系统操作和Docker容器技术,从而能够快速定位和解决K8s集群运维中的问题,提高系统的稳定性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值