为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
本份面试集锦涵盖了
- 174 道运维工程师面试题
- 128道k8s面试题
- 108道shell脚本面试题
- 200道Linux面试题
- 51道docker面试题
- 35道Jenkis面试题
- 78道MongoDB面试题
- 17道ansible面试题
- 60道dubbo面试题
- 53道kafka面试
- 18道mysql面试题
- 40道nginx面试题
- 77道redis面试题
- 28道zookeeper
总计 1000+ 道面试题, 内容 又全含金量又高
- 174道运维工程师面试题
1、什么是运维?
2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
3、现在给你三百台服务器,你怎么对他们进行管理?
4、简述raid0 raid1raid5二种工作模式的工作原理及特点
5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[root@k8s-master deploy]# kubectl rollout history deployment lcx
deployments “lcx”
REVISION CHANGE-CAUSE
1
#删除资源
[root@k8s-master deploy]# kubectl delete deployment lcx
deployment “lcx” deleted
#run一个资源
[root@k8s-master deploy]# kubectl run lcx --image=10.0.0.11:5000/nginx:1.13 --replicas=3 --record
deployment “lcx” created
[root@k8s-master deploy]# kubectl rollout history deployment lcx
deployments “lcx”
REVISION CHANGE-CAUSE
1 kubectl run lcx --image=10.0.0.11:5000/nginx:1.13 --replicas=3 --record
#修改配置为nginx:1.15
[root@k8s-master deploy]# kubectl edit deployment lcx
spec:
containers:
- image: 10.0.0.11:5000/nginx:1.15
[root@k8s-master deploy]# kubectl rollout history deployment lcx
deployments “lcx”
REVISION CHANGE-CAUSE
1 kubectl run lcx --image=10.0.0.11:5000/nginx:1.13 --replicas=3 --record
2 kubectl edit deployment lcx #将执行的命令记录了下来
#再次更新版本为1.16
[root@k8s-master deploy]# kubectl edit deployment lcx
spec:
containers:
- image: 10.0.0.11:5000/nginx:1.16
#查看还是不显示版本
[root@k8s-master deploy]# kubectl rollout history deployment lcx
deployments “lcx”
REVISION CHANGE-CAUSE
1 kubectl run lcx --image=10.0.0.11:5000/nginx:1.13 --replicas=3 --record
2 kubectl edit deployment lcx
3 kubectl edit deployment lcx
#因为不显示版本,所以要引用一条新的命令
[root@k8s-master deploy]# kubectl set image deploy lcx lcx=10.0.0.11:5000/nginx:1.15
deployment “lcx” image updated
#第二条执行的命令已经回滚为nginx:1.15了
[root@k8s-master deploy]# kubectl rollout history deployment lcx
deployments “lcx”
REVISION CHANGE-CAUSE
1 kubectl run lcx --image=10.0.0.11:5000/nginx:1.13 --replicas=3 --record
3 kubectl edit deployment lcx
4 kubectl set image deploy lcx lcx=10.0.0.11:5000/nginx:1.15
---
### 2. tomcat+mysql练习
`在k8s中容器之间相互访问,通过VIP地址!`
#### 2.1搭建过程(截图较多)
![](https://img-blog.csdnimg.cn/20190916111656922.png)
![](https://img-blog.csdnimg.cn/2019091611173793.png)
![](https://img-blog.csdnimg.cn/2019091611175959.png)
![](https://img-blog.csdnimg.cn/20190916111824308.png)
![](https://img-blog.csdnimg.cn/2019091611193663.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MjQyNTIw,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190916112003694.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MjQyNTIw,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190916112056125.png)
![](https://img-blog.csdnimg.cn/20190916112212450.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MjQyNTIw,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190916112239693.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MjQyNTIw,size_16,color_FFFFFF,t_70)![](https://img-blog.csdnimg.cn/20190916112247799.png)![](https://img-blog.csdnimg.cn/20190916112259547.png)![](https://img-blog.csdnimg.cn/20190916112314425.png)![](https://img-blog.csdnimg.cn/20190916112408858.png)![](https://img-blog.csdnimg.cn/201909161125089.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MjQyNTIw,size_16,color_FFFFFF,t_70)![](https://img-blog.csdnimg.cn/20190916112514896.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MjQyNTIw,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190916115507938.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MjQyNTIw,size_16,color_FFFFFF,t_70)![](https://img-blog.csdnimg.cn/20190916112805367.png)![](https://img-blog.csdnimg.cn/2019091611284796.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MjQyNTIw,size_16,color_FFFFFF,t_70)![](https://img-blog.csdnimg.cn/20190916112855298.png)![](https://img-blog.csdnimg.cn/20190916112936796.png)![](https://img-blog.csdnimg.cn/20190916113100928.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MjQyNTIw,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190916113047682.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MjQyNTIw,size_16,color_FFFFFF,t_70)![](https://img-blog.csdnimg.cn/20190916113117488.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MjQyNTIw,size_16,color_FFFFFF,t_70)![](https://img-blog.csdnimg.cn/20190916120557982.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MjQyNTIw,size_16,color_FFFFFF,t_70)![](https://img-blog.csdnimg.cn/20190916113205790.png)![](https://img-blog.csdnimg.cn/20190916113223842.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MjQyNTIw,size_16,color_FFFFFF,t_70)![](https://img-blog.csdnimg.cn/20190916113236723.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MjQyNTIw,size_16,color_FFFFFF,t_70)![](https://img-blog.csdnimg.cn/2019091612062178.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MjQyNTIw,size_16,color_FFFFFF,t_70)
#### 2.2 扩展—实现wordpress
version: ‘3’
services:
db:
image: mysql:5.7
volumes:
- /data/db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- /data/web_data:/var/www/html
ports:
- “80:80”
restart: always
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
![](https://img-blog.csdnimg.cn/2019091615092150.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MjQyNTIw,size_16,color_FFFFFF,t_70)![](https://img-blog.csdnimg.cn/20190916151348542.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MjQyNTIw,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190916151410519.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MjQyNTIw,size_16,color_FFFFFF,t_70)![](https://img-blog.csdnimg.cn/20190916151501179.png)
### 3 .k8s的附加组件
#### 3.1 dns服务()
>
> 作用:把svc的名字解析成VIP的地址
>
>
>
kubectl get all -n kube-system -o wide
#1:下载dns_docker镜像包
wget http://192.168.12.202/docker_image/docker_k8s_dns.tar.gz
#2:导入dns_docker镜像包(node1节点)
#3:修改skydns-rc.yaml, 在node1 创建dns服务
spec:
nodeSelector:
kubernetes.io/hostname: 10.0.0.12
containers:
#4:创建dns服务
kubectl create -f skydns-deploy.yaml
kubectl create -f skydns-svc.yaml
#5:检查
kubectl get all --namespace=kube-system
#6:修改所有node节点kubelet的配置文件
vim /etc/kubernetes/kubelet
KUBELET_ARGS=“–cluster_dns=10.254.230.254 --cluster_domain=cluster.local”
systemctl restart kubelet
![](https://img-blog.csdnimg.cn/20190916173519527.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MjQyNTIw,size_16,color_FFFFFF,t_70)
#### 3.2 namespace命令空间
namespace做资源隔离
[root@k8s-master wordpress_demo]# kubectl get namespace
NAME STATUS AGE
default Active 5d
kube-system Active 5d
#增
kubectl create namespace lcx
#删
kubectl delete namespace lcx
>
> 测试
>
>
>
[root@k8s-master wordpress_demo]# pwd
/root/k8s_yaml/wordpress_demo
#创建wordpress的空间
[root@k8s-master wordpress_demo]# kubectl create namespace wordpress
namespace “wordpress” created
#删除当前的环境
[root@k8s-master wordpress_demo]# kubectl delete -f .
#修改所以配置文件添加namespace空间
[root@k8s-master wordpress_demo]# ls
mysql-rc.yml mysql-svc.yml wordpress-rc.yml wordpress-svc.yml
[root@k8s-master wordpress_demo]# sed -i ‘3a \ \ namespace: wordpress’ *
#创建新环境
[root@k8s-master wordpress_demo]# kubectl create -f .
replicationcontroller “wordpress-db” created
service “wordpress-db” created
replicationcontroller “wordpress-web” created
service “wordpress-web” created
#查看wordpress的空间
[root@k8s-master wordpress_demo]# kubectl get all -n wordpress
NAME DESIRED CURRENT READY AGE
rc/wordpress-db 1 1 1 1m
rc/wordpress-web 1 1 1 1m
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
svc/wordpress-db 10.254.47.172 3306/TCP 1m
svc/wordpress-web 10.254.226.90 80:30009/TCP 1m
NAME READY STATUS RESTARTS AGE
po/wordpress-db-dv5f4 1/1 Running 0 1m
po/wordpress-web-v3bqd 1/1 Running 0 1m
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
s-web-v3bqd 1/1 Running 0 1m
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!