最全的Linux教程,Linux从入门到精通
======================
-
linux从入门到精通(第2版)
-
Linux系统移植
-
Linux驱动开发入门与实战
-
LINUX 系统移植 第2版
-
Linux开源网络全栈详解 从DPDK到OpenFlow
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
2.以前我们需要到处看下哪台服务器的CPU和内存资源充足,然后才能够部署应用,现在这部分决策逻辑,由scheduile调度器来完成
controller manager(控制器管理器)
3.找到服务器后,以前我们会手动创建关闭服务,现在这部分功能由controller manager(控制器管理器)来完成
ETCD
4.上面的功能都会产生一些数据,这些数据需要保存到存储层,所以还需要一个ETCD
以上就是控制平面的内部组件
node内部组件:
1.node是实际的工作节点,它既可以是实际的物理机,也可以是虚拟机,它会负责实际运行各个应用服务器。多个运用服务共享一台node上的内存和CPU资源
2.以前我们需要上传代码到服务器上,而用了k8s后,我们只需要将代码打包成容器镜像,就能一行命令将它部署,容器镜像的含义就是将应用代码和依赖的系统环境打成一个压缩包,在任意一台机器上解压运行
container runtime(容器运行时组件)
3.为了下载和部署镜像noder中会有一个container runtime,也就是容器运行时组件
pod
4.每个应用服务都可认为是一个容器,并且大多数时候我们还会给应用配置一个日志容器或者监控采集器container,这多个container共同组成一个一个的pod,pod运行在node 上
5.K8s可以将pod从某一个node调度到另一个node 上,还能以pod为单位去做重启和动态扩容或者缩容的操作,所有所POD是K8S中最小的调度单位
kubectl
6.控制平面会通过controller manager(控制器管理器)控制node创建和关闭服务,那node也得有个组件能接受到这个指令,才能去完成这个动作,这个组件叫kubectl ,它主要负责管理和监控pod
kube proxy
7.最后node中还有个kube proxy ,它负责node 的网络通信功能,有了它外部的请求就能够用被转发到pod中
ingress控制器
控制平面和node共同构成了一个集群,在公司中一般会构建多个集群,比如测试环境用一个集群,生产环境用另外一个集群,同时为了将 集群内部服务暴露给外部用户使用,一般还会部署一个入口控制器
比如ingress控制器,提供一个入口,让外部用户可以访问集群内部服务
kubectl 是什么?
前面提到说我们可以使用K8S提供的api去创建服务,但是问题就来了,这是需要我们自己写代码去调度这些API吗?答案是不需要
k8s为我们准备了一个命令行工具:kubectl我们只需要执行指令,它内部就会去调用k8s的API
K8S怎么部署服务?
1.首先我们需要编写yaml文件在里面定义Pod用到了哪些镜像,占用了多少内存和CPU
2.然后使用kubectl命令行工具执行kubectl apply -f xx.yaml 此时kubectl将读取和解析yaml文件,将解析后的对象通过API请求发送给K8S
3.控制平面的API Server会根据要求驱使scheduler调度器通过etcd提供的数据,找到合适的node
4.再让controller manager(控制器管理器)控制node创建服务,node 内部的kubectl组件接受到命令后,会开始基于container runtime,也就是容器运行时组件去拉去镜像,创建容器,最终完成pod创建 ,服务启动完成
5.全程只需要创建一个yaml 和执行一次kubectl指令,比以前省事太多
Kubenetes中service和ingress的区别
在kubernetes中,Pod是有生命周期的,如果Pod重启它的IP很有可能会发生变化。如果我们的服务都是将Pod的IP地址写死,Pod挂掉或者重启,和刚才重启的pod相关联的其他服务将会找不到它所关联的Pod,为了解决这个问题,在kubernetes中定义了service资源对象,Service 定义了一个服务访问的入口,客户端通过这个入口即可访问服务背后的应用集群实例,service是一组Pod的逻辑集合,这一组Pod能够被Service访问到,通常是通过Label Selector实现的。
Pod IP经常会随着重启等操作发生变化,Service是Pod的代理,客户端只需要通过访问Service,就会把请求代理到Pod。Pod IP在Kubernetes集群外部无法访问,所以需要创建Service,这个Service是可以在Kubernetes集群外部访问的。
在 Kubernetes 中,Service 和 Ingress 是两种不同的资源,它们在应用的网络访问和路由管理中扮演着不同的角色。
1. Service
基本概念:
Service 是 Kubernetes 的一个核心概念,用于提供对一组运行在 Pod 中的应用的网络访问。
它定义了一个内部 IP 地址,客户端可以通过这个地址访问 Service。
功能:
Service 使得 Pod 能够被外界发现,并且为它们提供了一个持久的 IP 地址和端口号。
它可以负载均衡到一组 Pod 上,并且能够处理 Pod 的故障转移。
类型:
包括 ClusterIP(仅限集群内部访问)、NodePort(在节点的特定端口上提供外部访问)和 LoadBalancer(使用外部的负载均衡器提供访问)等。
2. Ingress
基本概念:
Ingress 是一个管理外部访问集群服务的规则集。
它提供了从外部网络到集群内服务的 HTTP 和 HTTPS 路由。
功能:
Ingress 允许你定义基于域名和 URL 路径的路由规则。
它可以提供负载均衡、SSL 终端和基于名称的虚拟托管。
依赖:
Ingress 需要一个 Ingress 控制器来实现定义的规则,例如 Nginx 或 Traefik。
- 区别
作用范围:
Service 通常用于集群内部的通信或通过 NodePort 和 LoadBalancer 类型暴露简单的服务。
Ingress 用于从集群外部路由和管理进入集群的流量。
配置复杂性:
Service 相对简单,直接映射到一组 Pod。
Ingress 更复杂,涉及到 HTTP 路由、域名处理等。
使用场景:
当你需要简单地暴露单个服务时,使用 Service。
当你需要更复杂的路由(如基于 URL 的路由、多个域名、SSL 终端)时,使用 Ingress。
在许多实际应用中,Service 和 Ingress 通常一起使用,Service 提供集群内部的稳定连接点,而 Ingress 管理从外部网络到这些 Service 的路由。
服务调用原理
1.以前小明直接在浏览器发送http请求就能达到我们的服务器上的nginx,然后转发到部署的服务内部
2.有了K8S后,外部请求会先到k8s集群的ingress控制器,然后再转发到K8S内某个node 的kube proxy上,再通过Service 找到对应的pod后才转发到对应的内部服务中,处理请求后,结果原路返回,这就完成了一个服务调用
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新