工作职责(传统运维7K):
公司描述
- 赤峰应用技术职业学院信息部
- 维护学校的OA办公系统、题库系统、公共资源系统(学生和教师常用资源)
具体内容:
- 三台物理服务器(IBMx3650m3 IBMx3650m4 华为RH2288H V2)里面开了十几台虚拟机,做桥接
- openresty网关2台(高可用)实现业务代理、应用防火墙、静态网站(公共资源系统),每天大概5万访问
- oa系统(java8/tomcat)一台主要是学生签到、考试成绩以及教师的业务,每天大概2万访问
- 题库系统(springboot/vue)一台主要是学生的在线考试,期末考试期间每天大概10万访问,加redis缓存
- 数据库三台MySQL5.7一主二从,做主从同步和读写分离,题库系统大概有4千万左右答题记录数据
- 备份公共资源系统中文件,使用腾讯云的COS对象存储做远程挂载
- 编写脚本定期备份数据库,oa等小数据量库使用mysqldump逻辑备份,题库大数据库使用innobackup物理备份,备份到对象存储
- 与系统研发公司对接,获取war包和jar包,修改配置文件对接数据库,做备份和系统升级
- 搭建prometheus监控平台,对各个系统和中间件进行监控,用grafana对数据汇总展示,alertmanager做邮件告警
- 使用CDN对系统做地域加速,解决寒暑假学生在家访问慢的问题
- 编写系统使用文档,远程解答学生和教师使用中的问题
遇到的问题:
- 脚本在终端可以执行,放到crontab里不行(PATH环境变量、绝对路径、权限、重入)
- 升级时,用升级脚本重启Java服务时发现address already in used端口占用,导致重启失败(修改内核参数twtimeout设置TIME_WAIT时间)
- 离线环境下源码安装openresty需要很多依赖包,使用U盘客户端系统iso挂载yum本地源
- openresty配置转发时后的返回403,通过proxy_set_header修改host字段值
- openresty配置负载均衡时由于session不能共享导致登录失败,修改为ip_hash负载均衡策略
- openresty配置防火墙时经常误报甚至误拦截,修改lua和modsecurity规则文件放行指定后缀url
- MySQL数据库主从不一致延迟,查询慢SQL让研发优化,使用MTS进行多线程复制减少延迟
- 用户反应网站访问慢,用tcpdump进行抓包分析对比,查看网关、业务、数据的时间差定位问题
需要背的
- 常用服务的端口
- 开机启动流程
- 系统安装流程(raid 分区 安装)
工作职责(公有云+k8s 10K):
公司描述
- 赤峰应用技术职业学院信息部
- 项目:学校信息系统迁移公有云
工作内容(腾讯云):
- 维护学校域名的解析,根据学校需求增加CNAME、A等记录
- 维护镜像仓库,对接系统研发公司,将war包或jar包做docker镜像,推送到私有镜像仓库TCR
- 维护学校的OA办公系统、题库系统、公共资源系统(学生和教师常用资源1TB),全部运行在k8s上
- k8s集群(1.26)使用TKE托管,包括5个node(8核16G),master托管腾讯云,高峰期末考试时大概100左右pod
- 公共资源系统使用对象存储存放,保证传输速度和安全,在k8s中用ingress进行重定向实现
- 维护每个系统的资源清单yml,包括deployment、statefulset、service、ingress、configmap等
- 对每个系统编写livenessProbe、readinessProbe健康检查脚本、设置HPA自动扩容缩容
- 使用prometheus-operator服务发现,对整个k8s做监控,包括调整告警规则、grafana统一展示、alertmanager邮件报警
- 使用istio服务网格对整个k8s做流量治理,实现安全、可观测、限流等,解答用户反应访问慢的问题
- 使用CDN对系统做地域加速,解决寒暑假学生在家访问慢的问题
- 脚本定期备份数据库,小库使用mysqldump逻辑备份、大库是使用innobackup做物理备份,备份到对象存储
- 编写系统使用文档,远程解答学生和教师使用中的问题
遇到的问题:
- 命名空间删不掉,https://blog.csdn.net/qq_31152023/article/details/107056559
- 拉取国外镜像失败,买新加坡主机,拉去下来后传到私有镜像仓库TCR
- 托管k8s默认的ingress-controller为traefix,不熟悉,改为ingress-nginx
- pod关闭后很长时间处于终止中,原因是有TIME_WAIT状态链接,修改内核参数减少时间
- 容器日志太多,怎么办?
- k8s中使用NFS做存储会有多级目录性能问题,直接改用localpath做csi做pod节点亲和
需要背的
- k8s的部署架构,各个组件的作用都是什么
- pod的创建流程
- 排障describe logs event三板斧
需要了解的
- k8s的常用部署架构,各个组件的高可用是如何实现的
- 从k8s集群的高可用开始,每个组件的作用,高可用区别,pod创建,svc作用,如何暴露服务,排障