岗位描述:
薪资待遇:
15k - 30K 15薪,并且有项目分红

团队:
大概20个人左右,都是做运维的,公司整体的办公环境不错。

过程描述:

主要是两轮面试:第一轮是电话先简单的谈一下。
十二月4号下午三点会进行笔试加现场面试。

一面未回答上的问题:

1、VLAN 和VXLAN 的区别:

1、实现的方式不一样:Vlan是通过标记Enternet包前四位来实现对不同的二层网络的标记。Vxlan则是通过修改UDP数据包中的八位的方式来实现对不同二层网络的标记的。

2、flannel 和 calico的区别:

calico 提供了基于iptables的丰富的网络策略,可以控制容器间的可达性。

3、api-sever ,controller-manager 以及其它的组件的高可用是怎么实现的?

kubernetes 组件通过监控pod的状态把失效的pod调度到其它的node上实现了应用层的高可用,
kubernetes的高可用要基于两个方面去考虑:
1、etcd 数据存储的高可用和k8sMaster组件的高可用:
一、etcd 数据存储的高可用:
etcd 的节点可以在安装完之后通过REST API 接口,用命令动态的去增加和删除。
二、api-server controller-manager kube-schedular 的高可用可以通过在三台节点上部署kubelet借助static pod 方式部署。kubelet本身的高可用则通过操作系统实现。

1、api-server 的高可用实现:对于集群外部的访问则通过haproxy或者其它的硬件实现负载均衡服务,用keepalived来实现对haproxy的高可用服务。

2、kube-controller-manager 和 kube-schedual 的高可用配置:
因为这两个组件涉及到对集群信息的读写,为了避免出现同步问题和一致性问题,他们的负载均衡则通过租赁锁(lease-lock)来实现。

二面过程和总结:

二面主要问的不是技术点,我觉得他们是想听故事的,我觉得我可能没说出自己做过的比较大的项目,并且没有在生产应用中对k8s做过什么改变:
他们主要想听的在两点:第一是你是否阅读过源码,第二是你对这个系统的优化做过了那些工作,或者是你发现了怎样的可以优化的点?

二面中不足的点和需要补充的部分:

1、你完成过的比较大的项目,并说出你在其中的主要作用?

2、如何对系统进行优化?

3、k8s准备部署前需要做哪些工作?

4、harbor的高可用是怎么实现的?

笔试题未答上的部分:

5、灰度发布和蓝绿部署有何区别?

6、k8s 查看记录的具体命令?怎样保证每次应用升级有记录并且可以回滚,并写出回滚命令?
ReplicaSet的升级方式:
怎样保证每次升级有记录,并且可以回滚:
1、可以把每次构建的image保存下来,并且记录好更新的顺序和版本号。
2、每次通过deploymen部署的时候系统会自动记录下更新的过程。

查看Deployment 具体的更新记录:kubectl rollout history
deploymen/deployment名 --version3 可以查看具体版本的信息

回滚到指定的版本:
kubectl rollout undo deploymen --to-version=2

DaemonSet 和statefulset 1.6之前还不支持通过rollback 升级和回滚,只能用重新创建新版本替换旧版本的方式。
7、如何实现日志告警对接第三方应用如企业微信,请用任意语言编写程序?(编写可提供API,写清楚大概步骤即可)

8、docker 底层技术namespaces 和cgroup的作用?

下面是我照的全部的笔试题的照片,我后续会在评论区更新一下具体的答案,先记录一下过程:K8S 和docker 部分

选择题部分

自动化开发部分

docker 基础部分

选择题

Devops 一些相关题

选择题首页