Linux运维工程师面试题(8)

这篇具有很好参考价值的文章主要介绍了Linux运维工程师面试题(8)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • Linux运维工程师面试题(8)
    • 1 docker 的网络类型,使用场景
    • 2 CMD 和 ENTRYPOINT 的区别
    • 3 怎么减小 dokcer 镜像的大小
    • 4 现有一个正在运行的容器,容器中没有 ps、top、netstat、ss、ip、lsof等命令,怎么查看容器内进程及pid和打开的端口
    • 5 如何临时退出⼀个正在交互的容器的终端,而不终止它?
    • 6 如果只有镜像或者在运行的容器,没有 dockerfile,现在有需求需要借助这个镜像或容器重写 dockerfile,怎么查看这个镜像或容器之前的构建过程。
    • 7 COPY 和 ADD 的区别
    • 8 制作镜像方式
    • 9 K8S 有那些组件,都是干什么用的
    • 10 K8S 创建一个pod的流程

Linux运维工程师面试题(8)

祝各位小伙伴们早日找到自己心仪的工作。
持续学习才不会被淘汰。
地球不爆炸,我们不放假。
机会总是留给有有准备的人的。
加油,打工人!

1 docker 的网络类型,使用场景

  • none:在使用none模式后,Docker容器不会进行任何网络配置,没有网卡、没有IP也没有路由,因此默认无法与外界通信,需要手动添加网卡配置IP等,所以极少使用。
  • bridge:默认模式。可以和外部网络之间进行通信,通过SNAT访问外网,使用DNAT可以让容器被外部主机访问,所以此模式也称为NAT模式。
  • host:此模式由于直接使用宿主机的网络无需转换,网络性能最高,但是各容器内使用的端口不能相同,适用于运行容器端口比较固定的业务。
  • container:使用此模式创建的容器需指定和一个已经存在的容器共享一个网络,而不是和宿主机共享网,新创建的容器不会创建自己的网卡也不会配置自己的IP,而是和一个被指定的已经存在的容器共享IP和端口范围,因此这个容器的端口不能和被指定容器的端口冲突,除了网络之外的文件系统、进程信息等仍然保持相互隔离,两个容器的进程可以通过lo网卡进行通信。

2 CMD 和 ENTRYPOINT 的区别

No ENTRYPOINT ENTRYPOINT exec_entry p1_entry ENTRYPOINT [“exec_entry”, “p1_entry”]
No CMD error, not allowed /bin/sh -c exec_entry p1_entry exec_entry p1_entry
CMD [“exec_cmd”, “p1_cmd”] exec_cmd p1_cmd /bin/sh -c exec_entry p1_entry exec_entry p1_entry exec_cmd p1_cmd
CMD exec_cmd p1_cmd /bin/sh -c exec_cmd p1_cmd /bin/sh -c exec_entry p1_entry exec_entry p1_entry /bin/sh -c exec_cmd p1_cmd

3 怎么减小 dokcer 镜像的大小

  1. 尽量选取满足需求但较小的基础系统镜像;
  2. 清理编译生成的文件、安装包的缓存等临时文件;
  3. 安装各个软件时候要指定准确的版本号、并避免引入不需要的依赖;
  4. 减少镜像层数,合并相同的命令,比如RUN命令;
  5. 使用 Dockerfile 创建镜像时候要添加 dockerignore 文件或使用干净的工具目录;

4 现有一个正在运行的容器,容器中没有 ps、top、netstat、ss、ip、lsof等命令,怎么查看容器内进程及pid和打开的端口

可以使用 docker ps 命令查看容器内进程的和port。也可以使用 docker top 命令查看容器内的相关进程,包括它们的PID和其它信息。可以使用docker port命令查看容器暴露的端口。

也可以进入容器。在/proc目录下查看进程pid和其他信息。
下面是/proc/pid目录中可能包含的文件和目录的一些例子:

  • cmdline:该文件包含了进程启动时的完整命令行参数。
  • cwd:该文件包含了进程当前的工作目录。
  • environ:该文件包含了进程环境变量列表。
  • exe:该文件是进程的可执行文件的符号链接,可以通过它来找到进程的可执行文件。
  • fd:该目录包含了进程打开的文件列表,每个文件都以符号链接的形式出现在该目录下。

5 如何临时退出⼀个正在交互的容器的终端,而不终止它?

同时按三个键,ctrl+p+q。如果按Ctrl+c 会使容器内的应用进程终止、进而会使容器终止。

6 如果只有镜像或者在运行的容器,没有 dockerfile,现在有需求需要借助这个镜像或容器重写 dockerfile,怎么查看这个镜像或容器之前的构建过程。

使用docker history或者docker image history命令进行查看。也可以使用docker inspect命令查看相关信息。

7 COPY 和 ADD 的区别

  1. COPY 命令会将文件的所有元数据(如所有者、权限等)都复制到容器中,而ADD则不会。这意味着在使用ADD时,您可能需要手动设置文件的元数据。
  2. ADD 命令支持在拷贝文件时自动解压缩tar文件,而 COPY 不支持。
  3. ADD 命令支持将 URL 作为源文件,并自动下载并将其复制到容器中。

8 制作镜像方式

  • docker commit # 通过修改现有容器,将之手动构建为镜像
  • docker build # 通过Dockerfile文件,批量构建为镜像

9 K8S 有那些组件,都是干什么用的

master:

  • kube-apiserver:API 服务器为 REST 操作提供服务,公开 Kubernetes API,负责处理接受请求的工作。 并为集群的共享状态提供前端, 所有其他组件都通过该前端进行交互。
  • kube-controller-manager:负责运行控制器进程,负责集群内的Node 、Pod 副本、服务端点( Endpoint )、命名空间(Namespace )、服务账号( ServiceAccount )、资源定额( ResourceQuota )的管理,当某个 Node 意外宕机时, Controller Manager 会及时发现并执行自动化修复流程,确保集群始终处于预期的工作状态。
  • kube-scheduler: 负责监视新创建的、未指定运行节点(node)的 Pods, 并选择节点来让 Pod 在上面运行。
  • etcd:一致且高可用的键值存储,用作 Kubernetes 所有集群数据的后台数据库。

node:

  • kubelet:它保证容器(containers)都运行在 Pod 中。向 master 汇报 node 节点的状态信息;接受指令并在 Pod 中创建 docker 容器;准备 Pod 所需的数据卷;返回 pod 的运行状态;在 node 节点执行容器健康检查
  • kube-proxy:集群中每个节点(node)上所运行的网络代理, 实现 Kubernetes 服务(Service) 概念的一部分。
  • 容器运行时(Container Runtime):容器运行环境是负责运行容器的软件。

10 K8S 创建一个pod的流程

  1. 准备好对应的yaml文件,通过kubectl发送到Api Server中;
  2. Api Server接收到客户端的请求将请求内容保存到etcd中;
  3. Scheduler会监测etcd,发现没有分配节点的pod对象通过过滤和打分筛选出最适合的节点运行pod;
  4. 节点会通过conteiner runntime 运行对应pod的容器以及创建对应的副本数;
  5. 节点上的kubelet会对自己节点上的容器进行管理;
  6. controler会监测集群中的每个节点,发现期望状态和实际状态不符合的话,就会通知对应的节点;
  7. 节点收到通知,会通过container runtime来对pod内的容器进行收缩或者扩张。

关于我
全网可搜《阿贤Linux》
CSDN、知乎、哔哩哔哩、博客园、51CTO、掘金、思否、开源中国、阿里云、腾讯云、华为云、今日头条、百家号、GitHub、个人博客
公众号:阿贤Linux
个人博客:blog.waluna.top
https://blog.waluna.top/


原文链接: Linux运维工程师面试题(8).文章来源地址https://www.toymoban.com/news/detail-696170.html

到了这里,关于Linux运维工程师面试题(8)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux运维工程师面试题(8)

    目录 Linux运维工程师面试题(8) 1 docker 的网络类型,使用场景 2 CMD 和 ENTRYPOINT 的区别 3 怎么减小 dokcer 镜像的大小 4 现有一个正在运行的容器,容器中没有 ps、top、netstat、ss、ip、lsof等命令,怎么查看容器内进程及pid和打开的端口 5 如何临时退出⼀个正在交互的容器的终端

    2024年02月09日
    浏览(36)
  • Linux运维工程师面试题(7)

    目录 Linux运维工程师面试题(7) 1 常用的 ansible 模块有哪些 2 说一下 ansible 使用 roles 编排的目录结构 3 docker 六大命名空间 namespace 4 cgroups 的作用 5 runc 的作用 6 docker 常用的命令 7 docker 存储引擎有哪些,区别是什么 8 进入 docker 容器有几种方法,区别是什么 9 Dockerfile 常用指

    2024年02月10日
    浏览(37)
  • Linux运维工程师面试题(6)

    目录 Linux运维工程师面试题(6) 1 数据库事务的四个特性及含义 2 mysql 的 sql 语句怎么优化 3 varchar 与 char 的区别是什么?大小限制?utf8 字符集下 varchar 最多能存多少个字符? 4 索引有什么用? 5 sql 注入是怎么产生的,如何防止? 6 csrf 是什么?如何防范? 7 如何加强 MySQ

    2024年02月10日
    浏览(37)
  • Linux运维工程师面试题(2)

    目录 Linux运维工程师面试题(2) 1 访问一个网站的流程 2 TCP 三次握手,四次挥手 3 apache 和 nginx 有哪几种虚拟主机 4 TCP 和 UDP 的区别 5 nginx 和 apache 的区别 6 什么是反向代理,什么是正向代理,区别是什么? 7 cookie和session的区别 8 nginx 调优 9 系统出现大量的 time_wait 问题怎么

    2024年02月11日
    浏览(30)
  • Linux下安装Elasticsearch(1),面试字节跳动Linux运维工程师该怎么准备

    network.host: 0.0.0.0 # 绑定到0.0.0.0,允许任何ip来访问 我们把data和logs目录修改指向了elasticsearch的安装目录。但是这两个目录并不存在,因此我们需要创建出来。 进入elasticsearch的根目录,然后创建: mkdir data mkdir logs 目前我们是做的单机安装,如果要做集群,只需要在这个配置

    2024年04月25日
    浏览(35)
  • 【良品】运维实施工程师面试题

    答:netstat –anpt | grep 8089 答:kill -9 4728/ 答:find . -name \\\"en* \\\" 答:chmod +x filename.sh 答:tar -xf .gz -C /usr/local unzip .zip 答:rpm -q smile ; rpm -e smile 答:vi /etc/profile  添加内容 JAVA_HOME=/usr/local/java/jdk1.8.0_221 PATH=JAVAHOME/bin:PATH CLASSPATH=.:JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar export JAVA_HOME expo

    2024年02月09日
    浏览(34)
  • 初级运维工程师面试题

    1、apache有几种工作模式,分别简述两种工作模式及其优缺点? apache主要有两种工作模式:prefork(apache的默认安装模式)和worker(可以在编译的时候添加–with-mpm=worker选项) prefork的特点是:(预派生) 1.这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销 2.可以防

    2024年02月08日
    浏览(40)
  • 【运维工程师学习三】Linux中Shell脚本编写

    Shell程序有很多, 如 Korn shell(ksh)、Bourne Again shell(bash)、C shell(包括csh与tcsh) 等等, 各主要操作系统下缺省的shell: AIX下是 Korn Shell Solaris缺省的是 Bourne shell FreeBSD缺省的是 C shell HP-UX缺省的是 POSIX shell Linux缺省的是 Bourne Again shell 但这种在命令行中的命令是即时输出结果的,不

    2024年02月11日
    浏览(57)
  • 【Linux深造日志】运维工程师必会Linux常见命令以及周边知识!

    🎬 鸽芷咕 :个人主页  🔥 个人专栏 : 《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活!   哈喽各位宝子们好啊!我是博主鸽芷咕。日志这个东西我相信大家都不陌生,在 linxu/Windows 系统中每天运行都会产生各种系统日志。而咱们每天学习知识也是一

    2024年04月17日
    浏览(46)
  • 华为Linux系统开发工程师面试

    在Linux系统开发工程师的面试中,你可能会遇到以下一些问题: 在同一个网站中,当客户访问的时候,会出现有的页面访问的速度快而有的慢,系统和服务完全正常、网络带宽正常,你如何诊断这个问题? 你以前做过的项目中,单台服务器的最大并发量是多少?你硬件的配置

    2024年02月09日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包