面试总结

Jan 于 2024-09-09 发布 浏览量

Docker,Docker Swarm,K8S都有哪些不同

Docker: 是一种容器化技术,它将应用及其依赖封装在轻量级的容器中,确保应用可以在任何环境下运行。

Docker Swarm和K8S: 都是容器编排平台,用于管理和调度多个容器。它可以自动化容器的部署、扩展、负载均衡和恢复等操作。

Docker Swarm 适合中小规模场景,K8S适合大规模场景 Docker Swarm且插件较少,K8S插件较多

简而言之,Docker 用来创建和运行容器,K8S 则管理和协调这些容器,是一种容器编排工具,同时K8S可以自动回滚,且扩展性比较好,这也是K8S用于复杂环境的主要原因之一

Dockerfile和Docker compose的区别

Dockerfile:用于定义一个容器镜像的构建过程 Docker Compose:用于定义和管理多容器的协作运行

应用场景: Dockerfile:适用于创建单一容器镜像 Docker Compose:适用于多容器环境下的服务编排和管理

配置方式: Dockerfile:通过编写 Dockerfile 文件构建镜像 Docker Compose:通过 YAML 文件定义多个服务及其依赖关系 总之,Dockerfile 是用于构建容器镜像的,而 Docker Compose 是用于编排和管理多容器应用的

为什么数据库不适合部署到K8S中

请简述linux启动过程

当打开计算机时,BIOS(或 UEFI)首先启动,它负责硬件初始化和引导设备检测 BIOS 查找可引导设备(如硬盘、U盘)上的引导加载程序

一旦 BIOS 找到引导设备,它会加载引导加载程序(GRUB2) GRUB2 提供启动菜单,允许选择内核版本或操作系统 选择完成后,GRUB2 会将控制权交给 Linux 内核

GRUB2 加载并启动 Linux 内核到内存中 内核开始初始化硬件,包括 CPU、内存、硬盘、网络等

内核完成硬件初始化后,会启动 init(或现代 Linux 发行版使用 systemd)作为第一个用户态进程 init 或 systemd 是系统的初始化进程,负责启动各种系统服务

init 或 systemd 根据系统配置文件(如 /etc/inittab 或 systemd 的 unit 文件)启动各种服务,如网络服务、文件系统挂载、日志服务等

在初始化完成后,系统会启动登录管理器(如 getty 或图形界面管理器),为用户提供登录终端。 用户可以通过终端登录系统,进行交互操作

如何将脚本添加为系统服务

在/etc/systemd/system下创建服务单元文件xx.service 编辑脚本,定义描述,服务启动用户和用户组等参数

[Unit]
Description=My Custom Script Service
After=network.target  # 在网络服务启动后启动

[Service]
Type=simple
ExecStart=/usr/local/bin/myscript.sh  # 需要启动的脚本路径
Restart=on-failure  # 如果服务失败,自动重启
User=root  # 可选:定义服务以哪个用户身份运行
Group=root  # 可选:定义服务运行的用户组

[Install]
WantedBy=multi-user.target  # 定义服务在多用户模式下启动
Alias=myscript  # 可选:为服务定义别名,方便使用别名管理服务


作于2024年09月09日