linux运维项目流程总结

📅 2026/8/1 16:07:39
linux运维项目流程总结
一、Linux服务器巡检与维护你是如何保障业务系统7×24小时稳定运行的日常巡检都检查哪些内容回答要点● 应用安全Nginx配置中隐藏版本号server_tokens off、限制请求速率limit_req_zone、配置CORS策略。● 数据库安全MySQL设置强密码策略、删除匿名用户和test数据库、限制root仅本地登录。● 容器安全Docker镜像使用非root用户运行、配置只读根文件系统、定期扫描镜像漏洞。七、CI/CD自动化部署你们的CI/CD流水线是怎么设计的从代码提交到上线经历了哪些阶段回答要点流水线设计使用Jenkins GitLab Harbor K8s 构建完整的CI/CD流水线。阶段划分1. 代码提交阶段开发Push代码到GitLab → GitLab Webhook 自动触发Jenkins流水线。2. 构建阶段Maven/Gradle编译Java项目 → 单元测试JUnit→ 代码质量扫描SonarQube检查代码规范、bug、漏洞。3. 镜像构建阶段Docker Build生成镜像Tag标记版本号如 v1.2.3_build123→ 推送到Harbor私有仓库。4. 部署阶段更新K8s Deployment的镜像版本 → 触发滚动更新 → 健康检查验证 → 灰度发布 → 全量上线。5. 回滚阶段如果监控发现异常执行 kubectl rollout undo 一键回滚到上一个稳定版本。你们是怎么保证零停机发布的回滚方案是怎么设计的回答要点零停机策略1. 滚动更新K8s Deployment默认采用滚动更新策略每次只更新一个Pod新Pod通过 readinessProbe 健康检查后才加入Service旧Pod通过 terminationGracePeriodSeconds 优雅关闭等待现有请求处理完毕。2. 蓝绿部署同时运行两套环境蓝旧版本绿新版本切换Service指向新版本实现瞬时切换和快速回滚。3. 回滚方案● K8s层面kubectl rollout undo deployment/xxx 自动回滚到上一个版本K8s保留最近10个ReplicaSet。● 镜像层面Harbor保留最近5个版本镜像确保回滚时镜像可用。● 数据库层面如果涉及DDL变更配套编写回滚SQL脚本。● 配置层面ConfigMap版本化管理回滚时同步恢复配置。Jenkins流水线你是用哪种方式定义的Jenkinsfile和Freestyle项目有什么区别回答要点我使用JenkinsfilePipeline as Code方式将流水线定义写入代码仓库的 Jenkinsfile 文件中随代码一起版本管理。使用Declarative Pipeline语法定义 stage 和 steps 清晰描述每个阶段。Jenkinsfile vs Freestyle对比● Jenkinsfile流水线即代码可版本控制和Code Review支持复杂的并行、条件分支逻辑可复用共享库Shared Library。● Freestyle通过Web UI配置简单直观但不可复用配置散落在Jenkins中不可代码审查项目多时维护成本高。我的实践在项目根目录维护 Jenkinsfile定义了5个StageCheckout → Build → Test → Docker → Deploy通过 when 条件区分不同分支