面试高频。

面试重点方向

日常巡检

  • 检查登录状况
    w //检查在线用户
    last -n 10 //最近10次成功登录
    lastb -n 10 //最近10次未成功登录
  • 检查系统
    top M 按照内存排列,P按照cpu排列
    ps -auxf 查看进程,启动时间,异常进程
  • 检查定时任务
    crontab -l
    at
  • 检查内存,磁盘情况
    df -h
    free -m //交换分区
  • 查看日志
    /var/log
    message、cron、syslog、mail.log、auth.log
  • 临时文件夹
    cd /tmp
  • 检查应用程序

擅长什么

日常搭建部署一些服务架构,对应用服务进行调优,比如nginx,mysql。分布式日志系统elk。
zabbix监控,除了使用ipmi监控硬件,snmp监控网络,自定义添加监控项,对mysql端口号,主从复制延迟,jvm监控tomcat等。
搭建部署高可用负载均衡的k8s容器集群,配合jenkins实现从harbor中自动拉取代码到node节点中等。

棘手问题

  • ddos攻击
  • tomcat500问题
  • 访问不了
  • jenkins su -s /bin/bash jenkins 生成密钥
  • jenkins 的tomcat主机java路径与jenkins一致,/usr/bin/java
  • ddos攻击解决脚本
    生产环境中设置策略
    iptables -I INPUT -s 192.168.9.9 -p tcp–dport 22 -j ACCEPT
    iptables -P INPIUT DROP
#!/bin/bash
DATE=$(date +%d/%b/%Y:%H:%M)
LOG_FILE=/usr/local/nginx/logs/demo2.access.log
ABNORMAL_IP=$(tail -n5000 $LOG_FILE |grep $DATE |awk '{a[$1]++}END{for(i in a)if(a[i]>10)print i}')
for IP in $ABNORMAL_IP; do
    if [ $(iptables -vnL |grep -c "$IP") -eq 0 ]; then
        iptables -I INPUT -s $IP -j DROP
        echo "$(date +'%F_%T') $IP" >> /tmp/drop_ip.log
    fi
done

做什么服务盈利

银行支付、oa、安防

docker单机还是集群

集群,使用k8s部署

做什么应用

租户要求的应用服务

用云吗

阿里云

结束说什么?

我能想到的就这么多

运维分类

交付、系统、应用、实施、部署、桌面、监控

维护系统,mysql、zabbix,nginx,redis

一万五以下会什么?

nginx、zabbix、tomcat、ansible、mysql、shell

linux各个文件目录都是干什么的

kvm与容器比较

redis的RDB和AOF比较

RDB是快照,对数据的备份简单,不安全,如果宕机,那几分钟的数据就丢失了。(redis做主从是是RDB模式)
AOF是二进制,安全可靠,但是数据记录太多,恢复慢。

docker日志驱动

docker默认日志驱动时json-file
我们使用logstat作为docker日志驱动,收集docker日志。
就是elk中的l

mysql主从复制线程

5.6 binlog dump,io,sql
mysql5.7多了延时复制功能
mha双主高可用
Mysql高可用架构怎么做的,以及原理

zookerper 分布式服务框架

假设我们的程序是分布式部署在多台机器上,如果我们要改变程序的配置文件,需要逐台机器去修改,非常麻烦,现在把这些配置全部放到zookeeper上去,保存在 zookeeper 的某个目录节点中,然后所有相关应用程序对这个目录节点进行监听,一旦配置信息发生变化,每个应用程序就会收到 zookeeper 的通知,然后从 zookeeper 获取新的配置信息应用到系统中。

四层负载和七层负载的区别

四层是有包过来就转发,七层是基于应用层做的转发

nginx模块

  • 模块
    access、auth、ssl、log、rewrite、upstrem、header
  • 压缩怎么开,参数
    gzip on
    gzip_buffers 2 8k; //压缩缓冲
    gzip_min_length 1k; //压缩页面最小长度
    gzip_comp_level 2
  • upstream几种工作模式
    nginx upstream 支持如下的5种方式的分配 。
  • 1、轮询(默认)
    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
    • 说一下,nginx是如何判定后端server down了的,它是在请求发到后面的server失败后,通过下面的两个参数来判断的。
      fail_timeout和max_fails
      当在fail_timeout的时间内,某个server连接失败了max_fails次,则nginx会认为该server不工作了。
  • 2、weight
    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
    例如:
    upstream bakend {
    server 192.168.0.14 weight=10;
    server 192.168.0.15 weight=10;
    }
  • 3、ip_hash
    每个请求按访问ip (nginx 收到IP包的源地址) 的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session 粘着的问题。
    例如:
    upstream bakend {
    ip_hash;
    server 192.168.0.14:88;
    server 192.168.0.15:80;
    }
  • 4、fair(第三方)
    按后端服务器的响应时间来分配请求,响应时间短的优先分配。
    upstream backend {
    server server1;
    server server2;
    fair;
    }
  • 5、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器。如果后端服务器使用了缓存,该策略比较有效。
例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法
upstream backend {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
tips:

keepalived虚拟IP是什么意思

vitrual ip 飘逸
使用vrrp 虚拟路由协议

keepalived 工作原理

keepalived中只有作为master的服务器会一直发送VRRP广播包(心跳消息),以告知局域网内的其他backup节点自己还活着,当master宕机了那么backup就无法收到VRRP包,这时就需要根据VRRP的优先级来选举一个backup接管master的工作,当检测到master恢复时,backup又会让出工作,恢复原来备机状态。

Top命令输出了那些信息如何查看那些进程

占用cpu特别高
排序查看

监控的硬件信息指标

监控了那些硬件
风扇转速、cpu温度、磁盘内存损坏、电池

Docker如何去用

Docker如何发布代码的
Docker用k8跑控制节点有几个
Docker集群怎么做的

jvm调优

新生代、老年代、永久代、gc
xms 512m 初始堆堆大小
xmx 265m 最大堆大小
xmn 512m 新生代大小
xss 512m 线程堆大小

tomcat相关

tomcat容器中有什么持久化进程,生命周期

版本号

nginx-1.6、tomcat-8.5、zabbix-5.0、mysql-5.6、redis-3.2.12、kubenetes-1.17、

如何理解k8中的pod

如何暴露pod中的容器的端口

top中iowait高原因

iostat,iowait
杀掉进程

buffer和cache区别

Cache:缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需等待很长的时间,而 Cache保存着CPU刚用过的数据或循环使用的部分数据,这时从Cache中读取数据会更快,减少了CPU等待的时间,提高了系统的性能。
Buffer:缓冲区,用于存储速度不同步的设备或优先级不同的设备之间传输数据;通过buffer可以减少进程间通信需要等待的时间,当存储速度快的设备与存储速度慢的设备进行通信时,存储慢的数据先把数据存放到buffer,达到一定程度存储快的设备再读取buffer的数据,在此期间存储快的设备CPU可以干其他的事情。

两个服务器,有两个进程,%60-70丢包率,原因

结合七层协议

docker文件系统存储驱动

overlay2 适合大并发,少io的情况。
它们唯一的不同,就是镜像是只读的,而容器是可读可写的

docker用户,和虚拟机的root用户有什么区别

可以看出在docker中以普通用户权限运行的程
序在host主机中运行的也是普通用户权限,在docker中以root用户权限运行的程序在host
主机中运行的也是root用户权限。

k8s pod启动过程

Node拉取一个pod的具体过程

promethues监控pod,关注什么指标,还监控别的吗

api server, namespace, pod, node等

云服务器数量和节点数量

redis哨兵模式

K8服务的自动发现

consul

cpu过高

top P 占用CPU过高的进程的pid
top -H -p [进程id] 找到线程
echo ‘obase=16;[线程id]’ | bc或者printf “%x\n” [线程id] 转换为16进制
执行jstack [进程id] |grep -A 10 [线程id的16进制]” 查看线程信息

zabbix和promethues对比

Zabbix的特点就是所有的数据必须"属于"一个主机;支持多种采集方式和采集客户端,同时支持SNMP、IPMI、JMX、Telnet、SSH等多种协议。
随着云计算,弹性计算,容器器技术,SaaS等IT形态的出现,Zabbix已经无法覆盖这些监控,或者只能通过兼容的方式实现对其监控,如在一个主机上去监控这些对象,而这些对象则变成了主机的某个指标。

promethues收集数据方式

核心组件promethues-server(时序性数据库),插件server-discover
Prometheus通过HTTP接口的方式从各种客户端获取数据,这些客户端必须符合Prometheus监控数据格式;
直接间接方式,间接exporter进行转化,例如mysql,redis,jvm等。
Prometheus并没有采用json的数据格式,而是采用text/plain纯文本的方式,这是它的特殊之处。

scp与rsync区别

scp是相当于复制,黏贴,如果有的话是覆盖,比较耗时间,不智能。

rsync是复制,如果有重复的文件,会直接跳过,而且他自己的算法优化。

scp是把文件全部复制过去,当文件修改后还是把所有文件复制过去,rsync 第一次是把所有文件同步过去,当文件修改后,只把修改的文件同步过去。

elk遇到过什么问题

装完elasticsearch之后使用root用户去安装下面的软件,否则会报很多文件找不到。

redis sentinel和cluster区别

Redis Sentinel 水平扩容一直都是程序猿心中的痛点,因为水平扩容牵涉到数据的迁移。迁移过程一方面要保证自己的业务是可用的,一方面要保证尽量不丢失数据所以数据能不迁移就尽量不迁移。针对这个问题,Redis Cluster就应运而生了

linux内核参数优化

文件数限制
系统最大poot数
time wait 快速回收
tcp 三次握手
iptables
io时间分配机制
应用程序优化

k8s的flannel三种模式

udp(性能差):三层封包
vxlan:是直接对二层数据帧进行封包,直接在内核态操作的,减少了没必要的上下文切换。
host-gw:就是将每个Flannel子网的下一跳,设置成了该子网对应的宿主机的IP地址,也就是说,宿主机(host)充当了这条容器通信路径的“网关”(Gateway)

flannel与calico区别

flannel在进行路由转发的基础上进行了封包解包的操作,这样浪费了CPU的计算资源,calico整个过程中始终都是根据iptables规则进行路由转发,并没有进行封包,解包的过程,这和flannel比起来效率就会快多了。

pod启动流程

kubectl run -o yaml --dry-run yaml文件名字
修改yaml文件,指定镜像仓库和副本数量(replication/rs)
kubectl apply -f yaml文件名字
通过master节点schedule组件分配node节点生成pod
最后创建service结合label标签管理pod通信

阿里云负载均衡SLB

流量控制转发策略实现负载均衡,分配到后端云服务器集群(CSS)

pod启动不了排查思路

查看镜像是否拉取成功(网络问题还是镜像问题),pause根容器管理网络和命名空间,查看kubelet管理的生命周期

service、igress

ingress可以给service提供集群外部访问的url、负载均衡、ssl终止、http路由等

nginx优化

在这里插入图片描述

k8s学习过程

在这里插入图片描述
管理k8s工具,k3s、helm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值