青藤云一面
1、自我介绍
面试官您好,我叫XX,来自重庆。本科就读于重庆城市科技学院信息安全专业,是27届应届毕业生。今天应聘的是贵公司的技术支持工程师岗位。
我的技术方向主要围绕网络运维和云原生这一块。在校系统学过计算机网络、操作系统、数据库、云计算这些课程。技能上,我熟悉RedHat、Ubuntu这些主流Linux发行版,能独立完成服务器的系统部署、权限管理、日志分析和安全加固;数据库方面会 MySQL的基本的增删改查操作;自动化这块,我会用Shell写运维脚本,能用Ansible做批量运维,也了解CI/CD流水线的搭建。另外我也熟悉Docker的基本操作,也了解 Kubernetes 核心资源的基础应用与日常排查。
我做事有规划,责任心强,有较好的执行力,希望能够加入贵公司,把自己的专业技能转化为实际工作能力。
2、大学参加的社团活动中,让你意向深刻的
XXX
3、如果你和其他部门约定好在会议室一起规划活动时,对方迟迟没有来的话你会怎么解决
一、主动沟通。 先确认时间和地点有没有沟通清楚,然后主动联系对方,礼貌问一下是不是有什么事情耽搁了、大概多久能到,不干等、也不情绪化。
二、两手准备。 如果对方马上能到,我先把要规划的内容提前梳理好,等对方来直接进入正题;如果对方临时来不了,就商量改时间,或把内容先同步给对方线上反馈,保证不耽误进度。
三、后续规避。 以后类似跨部门协作,提前一两天再确认一次时间,把对方迟到的不确定性降到最低。
4、tcp三次握手
第一步:SYN:客户端发 SYN,带上初始序号 seq=x,表示要建立连接;
第二步:SYN+ACK:服务端回 SYN+ACK,带上自己的序号 seq=y 并确认 ack=x+1,表示同意;
第三步:ACK:客户端再回 ACK,ack=y+1,确认收到,连接建立。
5、docker中的网络命名空间(network namespace)的流量走向
Docker 里每个容器都拥有独立的网络命名空间,容器内看到的网络是隔离的"虚拟世界";容器的流量要通过 veth 虚拟网卡对、以及 Docker 默认的 bridge 网桥(也就是 docker0)转发出去,最终才走到宿主机物理网卡到达外部。本质上就是"容器虚拟网卡 → 网桥 → 宿主机网络 → 物理网卡"这样一条链路。
6、一个集群有三个mysql主机,当mysql脑裂时,两台mysql主机都有vip时,你怎么解决
脑裂的核心是两台 MySQL 都占用了 VIP,状态不一致,很危险。我的处理分三步:
第一步,止损。 先把多余的 VIP 抢回一台,或先摘掉 VIP,让集群回到单入口状态,避免双主写入造成数据不一致。
第二步,仲裁定主。 靠集群的仲裁机制,加上对比两台 MySQL 的 binlog 位置和数据完整性,以数据最新、最完整的那台作为主库。
第三步,恢复。 把另一台作为从库重新加入集群,追平数据,再把 VIP 正确绑回主库,验证集群一致、正常。
7、一个pod中的两个容器是怎么通信的
一个 Pod 里的多个容器是通过共享同一个网络命名空间来通信的。同一个 Pod 内的所有容器共享 Pod 的网卡、IP、端口空间和 localhost,所以容器之间直接用 localhost/127.0.0.1 + 端口 就能互相访问,速度很快,不需要走网络层。
8、两个pod之间是怎么通信的
两个 Pod 之间的通信,分两种情况:
第一种,同一个节点上,或者同一个集群内跨节点。 正常情况下,不同 Pod 有自己独立的 IP,通过Service 来访问。Pod 访问另一个服务时,一般不是直接连对端 Pod 的 IP,而是访问这个服务的 Service 的 ClusterIP 或域名,由 kube-proxy 或集群的负载均衡机制转发到后端的某个 Pod 上。这样对端 Pod 发生漂移、重建,IP 变了也不影响访问,因为客户端始终访问的是稳定的 Service 入口。
第二种,不同 Pod 之间的底层网络互通。 这靠集群的网络插件(CNI)来实现,比如我项目里用的 Calico。它负责让集群里每个 Pod 都有一个全局可路由的 IP,通过路由和封装(像 VXLAN、BGP)实现跨节点、跨主机的 Pod 直接互通,而且可以配合网络策略做隔离。
9、linux中怎么找到在/var/log/目录下修改时间在7天之前,文件大小在50M以上的文件
用 find 命令组合条件就能解决:
find /var/log/ -type f -mtime +7 -size +50M
-type f:只要普通文件,排除目录;
-mtime +7:修改时间在 7 天之前(严格超过 7 天);
-size +50M:文件大小超过 50M(+50M 表示大于 50M,M 是大写表示兆字节,不是 512 字节块)。
10、linux中如果通过df -h 命令发现磁盘空间还有100MB可用,但是已经创建不了文件是怎么回事
一、inode 耗尽。 文件系统建文件要分配 inode,小文件太多把 inode 占满,即使还有空间也建不了。用 df -i 看,IUse% 到 100% 就是它,清理大量小文件即可。
二、写错分区。 df -h 看的盘和你要写入的目录可能不是同一个挂载点,用 df -h 目标目录 精确确认。
三、已删文件被占用。 进程还在写一个已 rm 的大文件,空间没真正释放,用 lsof | grep deleted 找出来。
四、其他。 磁盘只读挂载(ro)、有配额限制、文件系统损坏。
11、docker中怎么更新一个镜像
更新 Docker 镜像:镜像不可变,本质是拉新镜像 + 重建容器。
docker pull 镜像:标签 拉取新版本;
docker stop + docker rm 删旧容器;
docker run 按新镜像重建容器(参数保持一致);
有 compose 的话:docker-compose pull + docker-compose up -d;
验证新容器正常,用 docker image prune 清理旧镜像。
注意更新前备份数据卷、先在测试环境验证。
12、mysql怎么在删除数据时保留表结构
MySQL 删除数据保留表结构,两种方式:
TRUNCATE:TRUNCATE TABLE 表名; 整表清空、速度快、保留结构,但不可加条件、不可回滚、重置自增主键。
DELETE:DELETE FROM 表名 WHERE 条件; 可按条件删,可配合事务回滚,但删大表较慢,建议分批删。