linux面试高级篇

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

题目目录

1.虚拟机常用有几种网络模式请简述其工作原理或你个人的理解

有桥接模式、隔离模式、NAT模式、路由模式。
桥接模式Guest与Host连接到同一个交换机上通过桥接物理网卡相当于直连到Host所在网络。
隔离模式允许Guest访问同一虚拟交换机上的其他Guest但是不能访问Host所在的外部网络。
NAT模式默认将Guest虚拟机的默认网关指向Host物理机的virtbr0接口的IP地址Guest共享真机
的网络连接以地址转换的方式访问外网。
路由模式由Host物理机充当路由器开启转发需要额外设置外网与Guest虚拟机之间互访的路由条
目Guest以路由转发的方式访问外网需要在真机配置iptables规则。

2. Dockerfile中最常见的指令是什么

FROM指定基础镜像。
ENV key=value环境变量。
COPY拷贝本地文件到容器镜像。
ADD拷贝本地或远程URL文件到容器镜像。
RUN在build时运行命令。
CMD在docker run时运行的默认命令如果有多个仅最后一个有效。
如果docker run 镜像 命令指定了运行容器的命令则CMD的命令会被覆盖。
An ENTRYPOINT allows you to configure a container that will run as an executable。
ENTRYPOINT将容器做为一个可执行体运行如果docker run 镜像后面有东西则全部做为
ENTRYPOINT的参数处理如果docker run 镜像后面没有东西但是CMD定义了内容则CMD定义的
内容全部做为ENTRYPOINT的参数。

3.docker网络模式有哪些

host模式 -net=host 容器和宿主机共享nework namespace
container -net=container:name_or_ID 容器和另外一个容器共享Network namespace。 kubernetes
中的pod就是多个容器共享一个Network namespace。

none模式 –net=none 容器有独立的Network namespace但并没有对其进行任何网络设置如分配
veth pair 和网桥连接配置IP等。

bridge模式 –net=bridge 默认为该模式
当Docker进程启动时会在主机上创建一个名为docker0的虚拟网桥此主机上启动的Docker容器会连
接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似这样主机上的所有容器就通过交换机连
在了一个二层网络中。

4.Kubernetes有哪些核心组件这些组件负责什么工作

etcd提供数据库服务保存了整个集群的状态
kube-apiserver提供了资源操作的唯一入口并提供认证、授权、访问控制、API注册和发现等机制
kube-controller-manager负责维护集群的状态比如故障检测、自动扩展、滚动更新等
cloud-controller-manager是与底层云计算服务商交互的控制器
kub-scheduler负责资源的调度按照预定的调度策略将Pod调度到相应的机器上
kubelet负责维护容器的生命周期同时也负责Volume和网络的管理
kube-proxy负责为Service提供内部的服务发现和负载均衡并维护网络规则
container-runtime是负责管理运行容器的软件比如docker

5. Pod是什么

Pod是Kubernetes中最小的单元它由一组、一个或多个容器组成每个Pod还包含了一个Pause容器Pause容器是Pod的父容器主要负责僵尸进程的回收管理通过Pause容器可以使同一个Pod里面的多个容器共享存储、网络、PID、IPC等。

6.描述一下Pod的生命周期有哪些状态

status 属性里面有一个phase字段记录了Pod的状态正常情况下启动一个新Pod的过程如下
Pending表示Pod已经被同意创建正在等待kube-scheduler选择合适的节点创建一般是在准备镜像
Running表示Pod中所有容器已经被创建并且至少有一个容器正在运行或者是正在启动或者正在重启
Succeeded表示所有容器已经成功终止且不会再启动
Failed表示Pod中所有容器都是非0状态退出
Unknown表示无法读取Pod状态通常是kube-controller-manager无法与Pod通信

7.创建一个Pod会发生什么事

1、客户端提交Pod的配置信息可以是Deployment定义好的信息到kube-apiserverkubeapiserve把Pod信息存储到ETCD当中
2、kube-scheduler 检测到Pod信息会开始调度
3、kube-scheduler 开始调度预选主要是过滤掉不符合Pod要求的节点
4、kube-scheduler 开始调度调优主要是会给节点打分以选择更加适合的节点
5、kube-scheduler 选择好节点后会把结果存储到ETCD
6、kubelet 根据调度结果执行Pod创建操作

8.删除一个Pod会发生什么事情

kube-apiserver会接受到用户的删除指令默认有30秒时间等待优雅退出超过30秒会被标记为死亡状态此时Pod的状态是TerminatingKubelet看到Pod标记为Terminating开始了关闭Pod的工作
1、Pod从service的列表中被删除
3、进程被发送TERM信号kill -14
4、当超过优雅退出时间时Pod中的所有进程都很被发送SIGKILL信号kill -9

9.k8s的Service是什么

Pod每次重启或者从新部署IP地址都会产生变化这使得Pod间通信和Pod与外部通信变得困难这时候
Pod就需要一个固定的入口这就是Service

每个Service都有一个clusterIPclusterIP是固定的是外界访问Pod的唯一入口Service背后通常绑定了
一组相同配置的Pod通过负载均衡的方式把外界请求分配的多个Pod

10.k8s是怎么进行服务注册的

Pod启动后会加载当前环境所有Service信息以便不同Pod根据Service名进行通信

11.什么是Kubelet

这是一个代理服务它在每个节点上运行并使从服务器与主服务器通信。因此Kubelet处理PodSpec
中提供给它的容器的描述并确保PodSpec中描述的容器运行正常。

12.云计算和虚拟化的关系是什么

虚拟化是一种技术顾名思义就是将不可拆分的实体资源变成可以自由划分的逻辑资源从而实现资源的整合、隔离、在分配
云计算是一种服务模式其思想就是把各种资源整合起来然后租给有需要的用户
云计算就是利用了虚拟化技术的特点,把这些资源分割打包提供给用户使用

13.云计算有哪些分类

IaaS基础设施服务Infrastructure-as-a-service
PaaS平台服务Platform-as-a-service
SaaS软件服务Software-as-a-service

14.公有云、私有云、混合云

公有云指互联网上发布的云计算服务搭建云的资源在提供商的场所内用户通过互联网使用服务
私有云一般建设在企业内部专网发布的云服务搭建云平台所需的资源由企业自给
混合云是云计算的一种类型它将本地基础结构或私有云与公有云结合在一起。使用混合云可以在两种环境之间移动数据和应用

15.KVM虚拟机常用管理命令

在这里插入图片描述

16.虚拟机磁盘技术中的 ROW 指的是什么

写入时重定向英语Redirect On Write简称ROW是一种计算机程序设计领域的优化策略。其核心思
想是当有多个调用者都需要请求相同资源时一开始资源只会有一份多个调用者共同读取这一份资源当
某个调用者需要修改数据的时候才会将数据生成拷贝供这个调用者使用而其他调用者依然还是读取最原
始的那份数据。每次有调用者需要修改数据时就会重复一次拷贝流程供调用者修改使用使用ROW可以避
免或者减少数据的拷贝操作极大的提高性能

17.ELK三大组件以及其各自的作用

1、Elasticsearch 是一个分布式的免费开源搜索和分析引擎它提供了一个分布式的基础架构基于RESTful API的Web接口
2、logstash 是一个数据采集、加工处理以及传输(输出)的工具拥有丰富的数据收集处理输出插件。
3、kibana 是一个数据可视化平台工具。能够完成数据的检索、图表绘制以及展示等功能

18.简述logstash的配置区域及其用途

在这里插入图片描述

input 区域负责日志的收集
filter 区域负责对日志进行格式化
output 区域负责把格式化好的日志存储在数据库中

19.简要说明Elasticsearch数据的组织存储方式

Elasticsearch 数据的组织存放方式按照由大到小顺序分别是 索引、类型、文档、字段
索引相当于数据库中的库
类型相当于数据库中的表
文档相当于数据库中的行
字段相当于数据库中的列

20.简述elasticsearch集群插件head的用途

它展现ES集群的拓扑结构并且可以通过它来进行索引Index和节点Node级别的操作
它提供一些快捷菜单用以展现集群的各种状态,还提供一组针对集群的查询API并将结果以json和表格形
式返回

21.如何对Elasticsearch数据库进行增删改查

访问Elasticsearch数据库需要使用 REST API分别对应以下 HTTP 协议方法
增 – HTTP方法 PUT
删 – HTTP方法 DELETE
改 – HTTP方法 POST
查 – HTTP方法 GET

22.查询Elasticsearch状态信息的 API 怎么使用

可以使用 _cat api 进行查询 (?v 显示详细信息)(?help 显示帮助信息)
curl http://集群中任意结点:9200/_cat/关键字

23.filebeat是什么主要优势是什么

filebeat是用于转发和集中日志数据的轻量级传送工具
filebeat监视您指定的日志文件或位置收集日志事件并将它们转发到 Elasticsearch
或 Logstash进行索引
由于Logstash对内存、cpu、io等资源消耗非常高部署在任务繁重的机器上非常不合适对于日志的收集filebeat 就是解决这个问题的最佳选择filebeat 非常轻量几乎不占用系统资源他可以通过网络把
收集的日志发送到 Elasticsearch 或 Logstash进行索引

24.kibana是什么

数据可视化平台工具
特点
灵活的分析和可视化平台实时总结和流数据的图表
为不同的用户显示直观的界面即时分享和嵌入的仪表板

25.如何区分filebeat转发来的不同类型的数据

可以在filebeat中定义 fields 自定义的键值对类型的标签在日志的接收端可以通过该标签进行日志区分

26.Docker与虚拟机相比有哪些优势

1、Docker 更简单、更易用、更快速与虚拟机相比Docker共享宿主机的操作系统和硬件资源所有的应用模块都是在宿主机上的隔离非常节省资源多个应用模块类似于宿主机上多个“应用进程”
2、与虚拟机相比容器的创建启动、停止等能都实现秒级的速度从而实现业务系统服务的快速弹性扩展
3、更灵活的硬件资源调整、管控所有的运维基础服务以及公司自有模块都可以随意封装为镜像只要Docker运行的基础环境就可以直接启动服务从而实现“一次封装到处运行”
4、所有容器能够针对CPU内存、磁盘IO、网络等进行更细化的调整控制让所有容器更能充分利用宿主机的硬件资源
5、透明部署促进企业实现真正的DevOpsdocker 的出现让运维、测试、研发等企业技术人员彻底跳出“环境部署的苦海”实现真正的企业内部业务系统的“透明部署”简化了技术部门产品发布的流程

27.熟练掌握镜像管理命令

在这里插入图片描述

28.熟练掌握容器管理命令

在这里插入图片描述

30.简述Dockerfile中常见命令关键字并说明用途

在这里插入图片描述

31.如何查看私有仓库中的镜像和标签

私有仓库的镜像存储在/var/lib/registry
查看私有镜像仓库中的镜像名称或标签
查看名称: curl http://仓库IP:5000/v2/_catalog
查看标签: curl http://仓库IP:5000/v2/镜像名称/tags/list

32.容器卷有什么用途

数据卷是宿主机上面的某个特殊目录或者文件它可供一个或多个容器使用
特性

  • 1、数据卷中所有的数据是保存在宿主机磁盘本地的它可以被一个或多个容器使用在权限允许的前提下宿主机+各个容器对数据卷都可以进行读、写、删除等各项操作并且在宿主机或者各个容器任何一个节点上面变更数据增、删、改实现数据的 “全局同步”
  • 2、对数据卷的更新不会影响镜像
  • 3、卷会一直存在即使没有容器数据也不会丢失

33.如何限制容器使用的物理机资源

可以在容器启动的时候通过参数限制容器对内存及cpu的使用
例如

  • 设置容器使用的cpu权重在多个容器对cpu发生资源争用的的时候按照权重分配资源cpuset-cpus 把容器使用cpu资源固定在一个或多个指定的cpu 核上
  • 使用参数-m设置容器使用宿主机的物理内存容量大小memory-swap 设置容器使用宿主机的物理内存+物理交换分区的总容量大小

34.安装部署容器服务内核需要支持哪些技术

1、CgroupsControl Groups资源管理
2、SELinux 安全
3、NameSpace 命名空间

35.如何实现多个不同容器内的服务相互调用

可以通过共享容器的命名空间或link实现
在启动时候可以通过参数 network=container:容器名称
把两个服务监听在同一个网络命名空间上从而实现服务内部相互调用

36.容器内的服务如何发布出来

容器可以通过 -p 参数把容器端口和宿主机端口绑定或共享宿主机网络名称空间
我们可以通过访问宿主机的 IP:Port 来达到访问到容器内服务的目的
同一宿主机的同一个端口只能绑定一个容器服务

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: linux