面试题汇总

1、Kubernetes各模块组件包括哪些,分别有什么功能?
如:API Server 提供API接口服务/Controller Manager 提供对象资源控制管理/Scheduler 提供对象资源调度管理/kubelet 计算节点客户端,即服务端监听功能/kube-proxy 提供网络代理及服务发现反向解释功能

2、Kubernetes的CRI、CSI、CNI分别是什么含义,以及结合工作说一下常用的CRI、CSI、CNI分别有哪些? “CRI=Container Runtime Interface 容器运行时接口
CSI=Container Storage Interface 容器存储接口
CNI=Container Network Interface 容器网络接口”

3、Kubernetes中各资源对象是如何进行关联? 通过label标签进行常规的对象关联,通过个别配置需要selector进行选择性关联或亲和性关联;特殊情况下需要通过annotations声明特性进行关联

4、Kubernetes中什么时候使用Deployment、DaemonSet、StatefulSet?
1.无状态应用服务一般使用Deployment;
2.常驻应用服务使用DaemonSet;
3.有状态应用服务一般使用StatefulSet;"

5、DomonSet和StatefulSet的区别是什么? “DomonSet用于在每个Kubernetes 节点中将守护进程的副本作为后台进程运行
StatefulSet用于在K8S集群中部署有状态的服务”

6、Deployment和ReplicaSet的联系是什么,讲下滚动更新的原理? “Deployment是ReplicaSet的上层控制器。
把一次完整的发布过程,合理地分成多个批次,每次发布一个批次,成功后,再发布下一个批次,最终完成所有批次的发布。在整个滚动过程期间,保证始终有可用的副本在运行,从而平滑的发布新版本,实现零停机(without an outage)、用户零感知”

7、K8s怎么给POD设置资源限制,有那几种方式? “通过在yaml文件里面定义resource,对pod进行cpu和内存的限制。
两种方式,requests 是用于集群调度使用的资源,limits 真正用于资源限制的配置”

8、Kuberentes中如果需要暴露外部访问,应该怎么做? 创建Service,与Pod进行关联,使用NodePort或LoadBalance类型进行暴露,区别在于前者是指定端口访问,后者关联特定的公有云运营商进行平台访问

9、Service有几种暴露访问方式,有用过那几种Ingress服务? “三种ClusterIP,NodePort,LoadBalancer
两种 NGINX Controller 和Traefik”

10、Flannel有那几种网络模式? 三种UDP、VXLAN、host-gw

11、怎么排查异常,什么命令行能去到同一POD的指定容器查看日志? “用kubectl describe pod podname -n namespace来查看pod异常原因
也可以用kubectl logs -f podname -n namespace 来查看容器日志,定位原因
kubectl logs -f podname -n namespace -c 容器名”

12、K8s的配置管理怎么实现(configmap、secret)? “ConfigMap 可变配置管理,以key:value的形式保存配置项,既可以用于表示一个变量的值(例如config=info),也可以用于表示一个完整配置文件的内容,一般用来存储一些非安全的配置信息
Secret用来保存敏感信息,例如密码、OAuth 令牌和 ssh key 等等”

1、具备哪些私有云平台的运维经验? 如:华为FusionSphere/Rancher/灵雀云/博云/才云 等

2、使用云平台有运行多少台实例,使用什么服务? 能说出最近的工作内容即可

1、自我介绍; 判断表达能力,不怯场,不含糊,表述清晰即可
2、对于最深刻项目工作内容进行介绍; 能说出最近的工作内容即可
3、涉及项目工作的业务信息,其架构或数据流进行概述; T2运维工作应该具备项目管理或产品管理特征,例如基础资源架构、业务架构、组织架构、流程架构等
1、基本的Linux命令有哪些? 如:vim/grep/find/ps/netstat/ss/df/dh 等
2、如何完成软件编译及安装经验; 如:apt/yum/rpm 等
3、能通过输出命令查看日志文档排查问题; 如:head/tail/cat 等
4、能独立排查系统的CPU/内存/IO资源消耗情况; 如:top/htop/iostat 等
5、能使用脚本完成某些软件的安装、配置; 如:shell/python/go 等
6、了解Linux文件权限管理的方法及原理 如:755 拥有者可读、可写、可执行,所属组可读、可执行,其它可读、可执行

1、熟悉行业内常用的虚拟化服务之一; 如:Vmware EXIS/Vmware Workstation/Redhat KVM/Citrix Xen 等
2、熟悉行业内常用的云服务之一; 如:AWS/Azure/阿里云/华为云/腾讯云 等
3、对于虚拟化与云之间的差异是什么; 云服务是通过虚拟化技术实现服务化,而服务化对于虚拟化并不是必要的技术特征条件,之间的差异就是是否具备基于用户的自助服务能力
4、具备一种或多种云资源部署经验,或混合云部署经验; “如:VPC/ELB/EC2/ECS/EBS/OBS/IAM 等
是否有阿里云+IDC,阿里云+华为云/青云/腾讯云/百度云/亿速云的部署经验”
5、如何使用Terraform完成更新ELB资源的配置?
1).创建main.tf文件,指定公有云区域
2).创建variables.tf文件,指定公有云资源类型、源资源的名称,以及资源相关信息
3).资源信息初始化(或 格式化)
4).将指定的公有云源资源配置执行导入,生成terraform.tfstate文件
5).输出terraform.tfstate文件内容并重定向于output.tf文件
6).执行首次的plan
7).根据plan的提示信息进行修改资源配置的tf文件
8).正式执行plan并完成资源配置更新

6、Terraform文件main.tf、varriable.tf、output.tf的作用是啥? “main.tf:(必需)定义主结构,直接部署完整基础结构,或通过调用模块来这么做。
output.tf:标识 Terraform 模块的每个返回值
variables.tf:定义 main.tf 中的变量,无论它们是否是必需的。”
7、Terraform命令执行前需要做哪些检查?
1)、先执行 terraform plan命令进行检查
2)、terrafrom plan 命令会检查配置文件并生成执行计划,如果发现配置文件中有错误会直接报错"

8、你们创建资源用到哪些模块,请简单描述下? "例:用到了terraform-aws-vpc 模块,此模块为开源模块是用于在AWS上创建VPC资源,可以通过此模块来定义vpc子网,网关,DNS等相关资源,来实现各实例之间通信。
也可以根据自己业务的情况,来自定义模块。

此题为开放性题目,答案不唯一。

是否有其它IAC工具的使用经验或云服务器API对接经验"

1、Jenkins你在工作场景中用过哪些流水线(或配置过哪些环境),分别调用了哪些插件? 用过版本发布的流水线,调用了kubernetes,Pipeline,Active Choices Plug-in,Email Extension等插件
2、Jenkins的自由风格流水线与pipeline的区别,你认为有什么不同? “General和构建触发器都是相同的, 自由风格的作业需要在UI页面配置详细的构建过程和构建后操作,而pipeline类型的作业是直接将构建过程和操作放到了”“流水线”"中配置,以代码的方式描述流水线。

通过pipeline完成过哪些部署环境"
3、Jenkins的帐号/权限你们是如何来分配? "通过Manage and Assign Roles来分配权限,一般
PM角色: 能够操作和管理所属的业务和项目
DEV角色:只允许对所属的项目进行构建和取消查看操作
管理员:拥有所有权限

是否使用过其它验证服务器或帐号验证插件"
4、是否用过Jenkins的主从,你们根据什么来调用? “可以通过一主两从的方式来部署Jenkins主从,调用是根据标签来调用主从节点
也可以通过Jenkins调用k8s 集群中的pod来充当从节点”
5、发布过程中使用Jenkins构建失败了,你怎么进行处理? 查找此次构建的控制台输出日志,根据日志来定位问题,然后进行处理
6、CI/CD的发布流程是怎么样的? “我们将CI和CD分成两条流水线作业。
CI作业: 用户输入版本分支后下载代码,进行构建扫描最终将制品上传到制品仓库, 生成版本文件。
CD作业: 用户输入发布版本和选择要发布的主机IP后,下载制品,将制品和服务启动脚本cp到目标机器的发布目录, 远程执行启动脚本启动服务并进行健康检查。”
7、你们怎么实现CI/CD多环境的部署? "通过ActiveChoice参数,根据不同的环境和发布工具,动态展示主机参数。以到达多环境发布的效果。

是否了解过Jenkins参数化构建的配置方式"
8、有使用一种或多种CI/CD工具使用经验 如:Jenkins/CircleCI/gitlab CI 等
9、微服务怎么实现 CI/CD ,结合自身工作经验,介绍CI/CD的实现方案; 如:Docker in docker/Ansible playbook等
10、如何确定PRD环境的发布的,是自动发布还是需要手动确认?
1).在流水线执行前,设计多种发布模式,提供用户选择,例如需要发布DEV或PRD,在事前完成选择;
2).在流水线执行过程中,设计阶段关口,提供用户选择,例如执行到某个步骤后,用户选择继续执行还是放弃执行;"
11、最深刻的CI/CD故障有哪些? “1.环境变量出错
2.命令执行出错
3.用户权限出错
4.源码工料出错
5.基础环境不足
6.流程调用出错”
12、CI/CD流程中,从dev到prd会重复构建镜像吗? 不会,一般CI流程完结之后,会将最新的镜像上传至仓库,镜像会通过版本编号进行区分管理,并且将最新的镜像版本编号通过变量的方式,传递到CD流程中继续复用,完成最新的镜像布署流程工作。
13、CI/CD流程中,怎么区分环境变量配置? 根据流程管理会区分CI流程和CD流程,不同流程调用不同的变量,而不同变量之间根据流程互相调用。

1、是否具有相关配置工具的使用经验? 如:Ansible/Chef/puppet/saltstack 等
2、是否具有集群统一化及信息配置中间件的运维经验? 如:zookeeper/redis/kafka/rabbitmq
1、是否具有生产环境中常用的一种或多种监控系统工具使用经验? 如:Nagios/Zabbix/Prometheus/Jennifer
2、了解资源监控和应用监控的差别及使用场景; “1.资源监控泛指对服务器的IO、存储、CPU、Socket会话量等重要资源负载及系统负载情况进行监控,是针对基础服务设施进行资源性能的监控。
2.应用监控泛指对业务服务程序的业务访问量、迸发量、交易量、利用率等重要指标完成信息统计进行监控,是针对核心服务功能进行业务性能的监控。”
3、能否概述一个常用的监控系统构建方案,以及各组件的作用? 如:Prometheus + Alertmanager + Grafana,Prometheus用于收集监控指标信息,Alertmanager用于告警通知,Grafana用于图形化显示信息
4、是否具有生产环境中常用的一种或多种日志系统工具使用经验? 如:ELK/EFK
5、了解系统日志和应用日志的差别及使用场景;
1).系统日志泛指对服务器的操作系统和应用系统所产生系统影响的各等级审计事件信息,是针对基础服务系统所产生的事件信息。
2).应用日志泛指对业务程序的所产生业务功能的各返回事件信息,是针对核心服务功能所产生的事件信息。"

6、能否概述一个常用的日志系统构建方案,以及各组件的作用? 如:ELK=Elasticsearch + Redis + logstash + Kibana,EFK=Elasticsearch + Redis + Fluentd + Kibana,Elastic用于日志信息汇聚与计算,Redis用于信息缓存,logstash或Fluentd用于信息收集与过滤,Kibana用于信息访问与管理

1、网络路由原理是什么?如何基于公有云自主划分子网及变更路由表?
1).网络路由的原理是根据路由表信息,指定源网段地址可访问目的网络地址的白名单列表;
2).基于VPC的基础上,创建subnet配置子网,一般使用A类地址,掩码为8位或16位,通过NAT功能绑定多个A类地址,共同使用相同的专用外部访问地出,提供外部访问;
3).通过云系统中的路由表进行调整路由;"

2、什么是TCP/IP协议?可追加要求解释进行针对性的端口安全防护;
1).TCP/IP是指传输控制协议,是指能够在多个不同网络间实现信息传输的协议簇,泛指FTP、SMTP、TCP、UDP、IP等协议构成的协议簇;
2).一般通过如ACL、Iptable、安全组的功能进行端口安全防护;"

3、在云端有了ELB负载均衡,为什么还要用nginx;
1).原则上,ELB与Nginx的功能是一致,但ELB是属于云平台服务,并不是单一个应用服务功能,而nginx则是单一的应用服务功能,一般指运行在EC2之上的应用服务;
在ELB的功能无法满足的情况下,需要使用nginx或apache来完成相关功能
2).运行Nginx服务,一般是基于中间应用服务集成功能作为组件使用需要,与ELB的云服务不相同。"
4、nginx最基本的功能有什么?还有什么其他用途;
1).Nginx的基本功能是7层域名解释、域名的目录划分、目录跳转、目录负载均衡、反向代理。
2).Nginx的其它功能是拓展组件或模块的增强使用,例如X-Forwarded、vhost等。"

1、会使用docker/kubectl命令,进行资源增删改查;
1).如:docker pull 拉镜像/docker push 推镜像/docker login 登陆镜像仓库/docker images 查看镜像列表/docker build 构建镜像 等
2).如:kubectl get 查询/kubectl create 创建/kubectl set 配置/kubectl edit 修改"

2、了解容器架构的网络类别; 如:none 没有网桥网络/bridge 网桥网络/Container 容器自定义网桥网络/host 主机网络
3、有写过那些Dockerfile,有哪些模块? 模块 有FROM,RUN,WORKDIR,ADD,COPY,LABEL,ENV,EXPOSE,VOLUME,CMD,ENTRYPOINT,USER等等
4、Dockerfile的CMD和ENTRTYPOINT的区别、ADD和COPY的区别? “ENTRYPOINT指定默认的运行命令, CMD指定默认的运行参数,ENTRYPOINT和CMD同时存在时, docker会把CMD的命令拼接到ENTRYPOINT命令之后
COPY指令和ADD指令的唯一区别在于是否支持从远程URL获取资源。COPY指令只能从执行docker build所在的主机上读取资源并复制到镜像中。而ADD指令还支持通过URL从远程服务器读取资源并复制到镜像中。”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值