Kubernetes简介

Kubernetes(简称K8S,K和S之间有8个字母)是用于自动部署,扩展和管理容器化应用程序的开源系统。它将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现。Kubernetes 源自Google 15 年生产环境的运维经验,同时凝聚了社区的最佳创意和实践。

Kubernetes具有如下特性:

  • 服务发现与负载均衡:无需修改你的应用程序即可使用陌生的服务发现机制。
  • 存储编排:自动挂载所选存储系统,包括本地存储。
  • Secret和配置管理:部署更新Secrets和应用程序的配置时不必重新构建容器镜像,且不必将软件堆栈配置中的秘密信息暴露出来。
  • 批量执行:除了服务之外,Kubernetes还可以管理你的批处理和CI工作负载,在期望时替换掉失效的容器。
  • 水平扩缩:使用一个简单的命令、一个UI或基于CPU使用情况自动对应用程序进行扩缩。
  • 自动化上线和回滚:Kubernetes会分步骤地将针对应用或其配置的更改上线,同时监视应用程序运行状况以确保你不会同时终止所有实例。
  • 自动装箱:根据资源需求和其他约束自动放置容器,同时避免影响可用性。
  • 自我修复:重新启动失败的容器,在节点死亡时替换并重新调度容器,杀死不响应用户定义的健康检查的容器。

8.15 一面 (60min)

  • 自我介绍,为什么投客户端
  • python和java有什么区别
  • java内存模型
  • gc讲讲
  • http https区别
  • cookie,session
  • https握手过程
  • 对称非对称加密算法?哪个效率高?
  • tcp握手要三次,挥手要几次,为什么
  • 进程和线程,描述一下
  • 进程通信方式
  • 线程同步方式
  • 写个生产者消费者模型,要求多线程环境下
  • 为什么要用synchronized?原理?效率?

算法:

  • 二叉树,打印所有根结点到叶节点路径和为k的路径。

反问

先别走,二面面试官马上来

8.15 二面 (40min):

  • 自我介绍,为什么投客户端
  • 讲讲在学校的科研项目
  • python和java最大的区别是什么,从你的使用感受说说
  • https(问过了)
  • 数字签名验证过程
  • 从输入一个url到页面展示出来的过程
  • tcp怎么保证可靠性
  • tcp报文序号怎么分配的
  • utf-8,utf-16是啥?有啥区别?为什么网络传输大部分用utf-8?
  • 内核态和用户态
  • 智能指针了解吗(不了解)

算法比较简单:

  • 二叉树,把每个节点的值反转,并输出所有节点和。

反问

8.20 三面 (60min):

  • 评价一下自己前两面的表现?
  • 为什么投客户端,听前面的同学说你觉得客户端简单?(不是不是,balabla)
  • 问项目,问得很细,每一步是怎么实现的,过程,如果不是自己亲手一步一步做绝对会露馅
  • 做项目时遇到了什么困难
  • redis用来做什么?效率怎么样?
  • 分布式锁都可以怎么实现?
  • 问点计算机基础吧(终于)
  • java代码从编写到运行的过程
  • 堆内存通过gc自动回收,栈内存怎么回收?
  • 栈溢出是什么?什么场景可能会出现栈溢出?
  • 问点网络吧,syn攻击了解吗?(以前刷博客看过一眼,只懂个皮毛,不过面试官很好,说如果不了解就不问这方面的内容了。我赶紧说不了解)
  • 那换个问题吧,输入url到页面展示的过程?(窃喜,问过了)
  • 然而并没有让我说完,DNS解析详细问了一下,然后路由转发详细问了一下,说看我这方面挺熟的,没必要再说了。

本来说要写一道算法,但是估计看时间差不多了,就没让我写,直接反问环节

其实准备字节跳动的面试还是需要着重准备基础部分(数据结构、算法、操作系统、计算机网络),另外对做算法题的要求很高,如果在看到题目的时候能直接给出这个题目的最优时空复杂度解法,面试官对你的评价会很高。

如果基础知识比较扎实了,可以看看网络上的面试经验,找找自己不会的知识点,查漏补缺。

也祝大家都能拿到心仪的offer!