JD技能需求

熟悉tcp/ip、http协议相关原理
熟悉linux操作系统及内核参数优化
熟悉shell、python、go脚本/编程
熟悉nginx、tomcat、haproxy、mysql、redis、rabbitmq、kafka等中间件的原理、常用参数、性能优化及故障处理
熟悉日志系统
熟悉监控系统
熟悉分布式系统架构,熟悉在线系统应用维护
熟悉docker、kubernetes容器平台,熟悉istio
具备很强的故障排查和解决问题的能力

网络

1.OSI七层模型 TCP/IP四层模型
2.TCP三次握手、四次挥手
3.各种网络协议及端口
4.各种抓包命令、网络排查命令

应用层 用户接口、提供服务
表示层 数据的表示、安全、压缩、加密
会话层 确认数据是否传输(存储或到下一层传输层)
传输层 选择传输协议TCP/UDP、端口封装、网络分组、差错校验 (数据段)
网络层 IP地址编码、路由选择 (数据包)
数据链路层 MAC地址编码 帧
物理层 数据实际传输,比特流

linux系统基础

1.linux开机顺序
2.root忘记密码
3.linux内核了解多少
4.swap是什么?有什么用?

基础命令

1.awk、sed、grep
2.find
3.权限命令
4.用户命令

数据库

1.Mysql主从
步骤:
先看主库中有没有数据,有的话先拷贝导到从数据库中,数据要同步一致,
再修改配置文件,开启binlog日记,
主数据库创建用于数据同步的账户,开启主数据库同步,
从数据库通过主数据库创建的同步账号开始记录日记文件信息同步数据
原理:
当主从同步开始的时候,从数据库会生成两个进程:
一个是I/O线程,一个是SQL线程
1) I/O线程会连接到master数据库上,当master上的数据发生变化时,master会将改变积累了到二进制日志(binary log)中,master的binlog dump线程会将binlog的内容发送给该I/O线程。
2) slave接收binlog内容,再将内容写入到本地的relay log(中继日志)文件中;
3) slave中SQL线程会读取I/O线程写入的relay log,并且根据relay log的内容对slave数据库做相应的操作。

web

MQ

容器及容器编排

1.什么是容器
2.k8s组件及功能
3.pod出现故障如何排查
4.不同宿主机docker通信原理、包走向流程、数据如何到docker0的
5.运行一个pod的流程(kubectl创建pod的流程)
6.kubectl检测etcd的实现原理

各组件的端口:
apiserver:6443
kube-scheduler:10251
kube-controller-manager:10252
cloud-controller-manager:10253
etcd:2379
kubelet:10250
kube-proxy:10256

service三个post
port: # Service暴露端口
targetPort: # 真正提供服务的Pod端口
nodePort: # 宿主机暴露端口

健康检查方式
exec:shell exec
httpGet:200-400
TCPSocket:

总体架构

cicd:jenkins + k8s + gitlab
日志
监控