2024年最新运维常见面试题_应用运维面试题,2024最新大厂高频微服务面试总结

最全的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行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

在这里插入图片描述

  • 响应报文 在这里插入图片描述

HTTP中cookie和session的作用

session机制采用的是在服务端保持状态的方案,而cookie机制则是在客户端保持状态的方案,cookie又叫会话跟踪机制。打开一次浏览器到关闭浏览器算一次会话。HTTP协议是一种无状态协议,在数据交换完毕后,服务端和客户端的链接就会关闭,每次交换数据都需要建立新的链接。此时,服务器无法从链接上跟踪会话。cookie可以跟踪会话,弥补HTTP无状态协议的不足。

  • cookie分为会话cookie和持久cookie。
    会话cookie:浏览器关闭则cookie销毁.
    持久cookie:生命周期expires到期,则cookie销毁。
  • cookie的缺点:
    保存在客户端
    存储大小有限
    用户可见可修改

session工作流程,寻找cookie中的session id。根据session id去服务器内存中找到相应的用户资料。如果没有找到则新建,根据资料来判断用户访问的状态。
一般通过redis集群来同步seesion,解决负载均衡指向不同服务器的情况。

session与cookie的区别:

  • 1、存放位置不同

Cookie保存在客户端,Session保存在服务端。

  • 2 、存取方式的不同
    Cookie中只能保管ASCII字符串,假如需求存取Unicode字符或者二进制数据,需求先进行编码。Cookie中也不能直接存取Java对象。若要存储略微复杂的信息,运用Cookie是比拟艰难的。

而Session中能够存取任何类型的数据,包括而不限于String、Integer、List、Map等。Session中也能够直接保管Java Bean乃至任何Java类,对象等,运用起来十分便当。能够把Session看做是一个Java容器类。

  • 3、安全性(隐私策略)的不同

Cookie存储在浏览器中,对客户端是可见的,客户端的一些程序可能会窥探、复制以至修正Cookie中的内容。而Session存储在服务器上,对客户端是透明的,不存在敏感信息泄露的风险。 假如选用Cookie,比较好的方法是,敏感的信息如账号密码等尽量不要写到Cookie中。最好是像Google、Baidu那样将Cookie信息加密,提交到服务器后再进行解密,保证Cookie中的信息只要本人能读得懂。而假如选择Session就省事多了,反正是放在服务器上,Session里任何隐私都能够有效的保护。

+ 4、有效期上的不同只需要设置Cookie的过期时间属性为一个很大很大的数字,Cookie就可以在浏览器保存很长时间。 由于Session依赖于名为JSESSIONID的Cookie,而Cookie JSESSIONID的过期时间默许为–1,只需关闭了浏览器(一次会话结束),该Session就会失效。


+ 5、对服务器造成的压力不同Session是保管在服务器端的,每个用户都会产生一个Session。假如并发访问的用户十分多,会产生十分多的Session,耗费大量的内存。而Cookie保管在客户端,不占用服务器资源。假如并发阅读的用户十分多,Cookie是很好的选择。


+ 6、 跨域支持上的不同Cookie支持跨域名访问,例如将domain属性设置为“.baidu.com”,则以“.baidu.com”为后缀的一切域名均能够访问该Cookie。跨域名Cookie如今被普遍用在网络中。而Session则不会支持跨域名访问。Session仅在他所在的域名内有效。

rm -rf避免

  • 方法一:校验rm中使用的变量
    提醒一下,在shell脚本中使用到rm命令并且rm命令的参数中有带有变量时,需要特别注意变量名是否与上面声明的保持一致,还有一种做法就是:在引用变量的时候使用下面的方法,可以确保变量不会为空。
    比如上面的DIRPATH变量,在引用此变量作为rm的参数的时候,使用如下方式:
    rm -rf ${DIRPATH:-default}/bin/
    ${DIRPATH:-default}:表示如果变量DIRPATH没有被声明或者已经声明,但是赋值为空,那么就使用默认值default,否则就使用DIRPATH初始化的值
  • 方法二:回收站,在重定向rm命令
  • 方法三:改用safe-rm命令,在配置文件中配置不会被删除的路径

K8S容灾及高可用

【安全版本】
Kubernetes v1.13.12
Kubernetes v1.14.8
Kubernetes v1.15.5
Kubernetes v1.16.2

  • k8s中需要高可用的组件(包括内置已实现的)以及实现方式?
    在这里插入图片描述

    https://www.cnblogs.com/ants/p/11489598.html#_labelTop
    http://press.demo.kuboard.cn/install/install-kubernetes.html

    • SLB(LVS+HAProxy)
    • etcd集群
      为什么需要3台物理机以上?
      主要是考虑到了etcd的问题,如果只有两台物理机部署了5个etcd节点,那么部署了3个etcd的那台物理机故障了,则不满足etcd失败容忍度而导致etcd集群宕机,从而导致k8s集群宕机
    • K8S Node (Master / Worker)
      三个 master 组成主节点集群,通过内网 loader balancer 实现负载均衡;至少需要三个 master 节点才可组成高可用集群,否则会出现 脑裂 现象
      多个 worker 组成工作节点集群,通过外网 loader balancer 实现负载均衡
  • k8s中需要常期备份的组件及文件,容灾恢复?
    答:
    • etcd定义及作用:
      基于GO开发的高可用的分布式键值(key-value)数据库,用于服务发现(即在同一个分布式集群中的进程或服务如何才能找到对方并建立连接),实现分布式系统数据的可用性和一致性。
      优点:1.支持SSL证书验证,2.提供HTTP API。
      备份方法:通kind: CronJob,挂载/var/lib/etcd,执行etcdctl备份命令。
      恢复:移除损坏的/var/lib/etcd,docker镜像任务挂载/var/lib/etcd,执行etcdctl恢复命令【待恢复的机器上,机器名称和ip地址需要与崩溃前的主节点配置完成一样】。
    • 用户主目录下.kube/config文件(kubectl连接认证)
    • 【2】/etc/kubernetes/目录下的所有文件(证书,manifest文件)
    • 【3】/var/lib/kubelet/目录下所有文件(plugins容器连接认证)
      (2),(3)可通过CronJob进行每日备份,tar。
    • 恢复步骤:
      • kubeadm reset,iptables等
      • 恢复etcd数据
      • 删除/etc/kubernetes/manifest/目录下的文件,及/var/lib/kubelet/pki/目录下的文件
      • 还原【2】【3】
      • kubeadm init
      • 还原./kube/config,执行命令测试。
  • k8s-master集群有哪些组件
    • apiserver:一个api服务器,所有外部与k8s集群的交互都需要经过它。(可水平扩展)
    • controller-manager:执行控制器逻辑(循环通过apiserver监控集群状态做出相应的处理)(一个master集群中只会有一个节点处于激活状态)
    • scheduler:将pod调度到具体的节点上(一个master集群中只会有一个节点处于激活状态)

python:魔术方法

  • 构造函数,析构函数
	__init__,__del__,__new__:
	__new__:是用来创建类并返回这个类的实例
	__init__:将传入的参数来初始化该实例。
	__del__:对象生命周期结束时调用。

  • 对象的字符串显示
	__str__,__repr__
	__str__:print(类)
	__repr__:如果没有__str__,则自动调用__repr__

  • format魔术方法
__format__:format(类名时)自动调用__format__
"Name:{b.name}, State:{b.state}, Author:{b.author}".format(b=b)

  • 类的切片操作
__getitem__:如-类['column'],通过字典的方式获取类属性
__setitem__:修改类属性
__delitem__:删除类属性

  • 重复与连接及成员操作符
__add__:类的相加,如-使用哪个属性
__mul__:类的相乘,如-使用哪个属性
__contains__:'something' in Class,返回布尔值。用in来判断类是否包含某属性。
__iter__:类的for,for i in Class,指定迭代属性。


python深拷贝和浅拷贝

  • 模块
import copy
浅拷贝: copy.copy
深拷贝: copy.deepcopy

  • 定义
直接赋值: 其实就是对象的引用(别名),赋值的两边指向的是同一个对象
浅拷贝(copy): 拷贝父对象,不会拷贝对象的内部的子对象
深拷贝(deepcopy):拷贝父对象,同时会开辟空间,逐层拷贝内部子对象

  • 代码解释
浅拷贝
>>>import copy
>>>a = [1,2,3,4,['a','b']]
>>>b = copy.copy(a)
>>>a,b
([1,2,3,4,['a','b']],[1,2,3,4,['a','b']])
>>>a.append(5)
>>>a,b
([1,2,3,4,['a','b'],5],[1,2,3,4,['a','b']])
可以看到a新增了元素5,而浅拷贝的b未新增元素
>>>a[4].append('c')
>>>a,b
([1,2,3,4,['a','b','c'],5],[1,2,3,4,['a','b','c']])
可以看到原对象修改已有元素,也会同时影响浅拷贝对象
#####################################################
深拷贝
>>>import copy
>>>a = [1,2,3,4,['a','b']]
>>>c = copy.deepcopy(a)
>>>a.append(5)
>>>a[4].append('c')
>>>a,c
([1,2,3,4,['a','b','c'],5],[1,2,3,4,['a','b']])
可以看到深拷贝对象未受影响
#####################################################
>>>a = [1,2,3,4,['a','b']]
>>>b = a


为了做好运维面试路上的助攻手,特整理了上百道 **【运维技术栈面试题集锦】** ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,**小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。**

![](https://img-blog.csdnimg.cn/img_convert/7d0741ce859d634538afd5333a4f2be5.png)

本份面试集锦涵盖了

*   **174 道运维工程师面试题**
*   **128道k8s面试题**
*   **108道shell脚本面试题**
*   **200道Linux面试题**
*   **51道docker面试题**
*   **35道Jenkis面试题**
*   **78道MongoDB面试题**
*   **17道ansible面试题**
*   **60道dubbo面试题**
*   **53道kafka面试**
*   **18道mysql面试题**
*   **40道nginx面试题**
*   **77道redis面试题**
*   **28道zookeeper**

**总计 1000+ 道面试题, 内容 又全含金量又高**

*   **174道运维工程师面试题**

> 1、什么是运维?

> 2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

> 3、现在给你三百台服务器,你怎么对他们进行管理?

> 4、简述raid0 raid1raid5二种工作模式的工作原理及特点

> 5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

> 6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

> 7、Tomcat和Resin有什么区别,工作中你怎么选择?

> 8、什么是中间件?什么是jdk?

> 9、讲述一下Tomcat8005、8009、8080三个端口的含义?

> 10、什么叫CDN?

> 11、什么叫网站灰度发布?

> 12、简述DNS进行域名解析的过程?

> 13、RabbitMQ是什么东西?

> 14、讲一下Keepalived的工作原理?

> 15、讲述一下LVS三种模式的工作过程?

> 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

> 17、如何重置mysql root密码?

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

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**

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

么东西?

> 14、讲一下Keepalived的工作原理?

> 15、讲述一下LVS三种模式的工作过程?

> 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

> 17、如何重置mysql root密码?

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

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**

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

  • 22
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值