1.如何在 Kubernetes 中实现负载均衡?
Service会自带负载均衡的endpoint,ipvs或者iptables,ipvs的话性能好一点,iptables是概率的方式,不是很好用,
2.在生产中,你如何实现 Kubernetes 自动化?
使用jenkins开发流水线或者使用shell脚本
3.你如何扩展 Kubernetes 集群?
看安装方式如果是adm直接生成token以及就可以让node加入集群中,master的话需要把配置全部scp至新的node节点然后起来kubelet和proxy以及网络插件以后master授权
4.你能解释 Deployment、ReplicaSets、StatefulSets、Pod、CronJob 的不同用途吗?
Cronjob跟linux的crtab是类似的可以做批处理
Deployment具有上线部署、副本设定、滚动升级、回滚等功能

Rs的话他的功能被deployment包含了创建deployment控制器的时候他默认会自动来一个rs
Statefulset有状态的控制器一般是做有状态的应用部署比如redis以及mysql或者zk这种的
Pod是集群的最小单元,
5.Kubernetes 如何处理持久性?
可以使用pvc以及pv做持久化数据,可以自动也可以手动
6.服务和 ingress 的作用是什么?
Ingress可以作为一个7层调度器,可以保存ssl证书,这样的话 从外部到ingress这一段用https通信,对pod使用http通信,就不用让pod做ssl会话了,service的Nodeport是不具备这个功能的,而且ingress可以加一些比如nginx他自身的参数,我们也知道nginx还是很强大的
7.你何时会使用像 ConfigMap 或 secret 这样的东西?
Configmap的话需要做配置统一的话会考虑用这个,通过修改configmap来做热加载或者重启pod让他生效,比如部署Prometheus的时候就用的configmap,Prometheus的自动发现功能还是很好用的
Secret的话一般是存储ssl证书的配置或者是存docker的镜像仓库凭证
8.Pod 亲和性作用是什么?
可以根据pod亲和来让pod指定运行在那个node节点上比如pod和pod亲和比如pod和node亲和
9.你能举例说明何时使用 Init Container 么?
Init是初始化容器,为这个初始化一个环境,没有很用过这个,
10.什么是 sidecar 容器?你能给出一个用例,说明你为什么要使用它么?
ServiceMesaher
11.在构建和管理生产集群时遇到的主要问题是什么?
容器雪崩(最后又介绍)
12.什么是 Istio 和 Linkerd?
istio在我的istio专栏有介绍
13.什么是 Kubernetes Operator?
是前辈们写好的程序,类似于一个自动部署集群的方式吧,
14.kubernetes包含几个组件。 各个组件的功能是什么。组件之间是如何交互的。
kube-apiserver Kubernetes API,集群的统一入口,各组件协调者,以RESTful API提供接口 服务,所有对象资源的增删改查和监听操作都交给APIServer处理后再提交给 Etcd存储。 
kube-controller-manager 处理集群中常规后台任务,一个资源对应一个控制器,而ControllerManager 就是负责管理这些控制器的。 
kube-scheduler 根据调度算法为新创建的Pod选择一个Node节点,可以任意部署,可以部署在 同一个节点上,也可以部署在不同的节点上。 
etcd 分布式键值存储系统。用于保存集群状态数据,比如Pod、Service等对象信息。
kubelet kubelet是Master在Node节点上的Agent,管理本机运行容器的生命周期,比如创 建容器、Pod挂载数据卷、下载secret、获取容器和节点状态等工作。kubelet将每 个Pod转换成一组容器。 
kube-proxy 在Node节点上实现Pod网络代理,维护网络规则和四层负载均衡工作。  docker或rocket 容器引擎,运行容器。

15.k8s的pause容器有什么用。是否可以去掉。
不可以生成每个pod的同时会生成pause,是一个pod的网络总入口
16.k8s中的pod内几个容器之间的关系是什么。
共享网络命名空间
17.一个经典pod的完整生命周期。
Init初始化容器初始化环境,然后启动pod,在启动的时候会有启动钩子做启动后的操作,然后经过健康监测以及资源限制,在关闭的时候会有关闭钩子。表示关闭前做一些操作,比如睡几秒在关,为什么睡几秒后面又介绍
18.k8s的service和ep是如何关联和相互影响的。
Service和ep通过svc的名字关联,svc和pod通过标签选择器
19.详述kube-proxy原理, -个请求是如何经过层层转发落到某个pod.上的整个过程。请求可能来自pod也可能来自外部。
Proxy是管理整个节点的网络状态,请求交给第一层的4层负载,4层负载转发至ingress或者service的nodeport也就是node的外放端口,然后交给pod
20.rc/rs功能是怎么实现的。详述从API接收到-一个创建rc/rs的请求,到最终在节点上创建pod的全过程,尽可能详细。另外,当-个pod失效时,kubernetes是如何发现并重启另一个pod的?
用户创建的请求跟api交互 在认证授权通过之后,api会把数据写入etcd并联系scheduler,给他根据调度算法,查看每个节点状态确定往哪一个节点调度,然后api与该节点的kubelet交互并把相关的数据写入etcd,kubelet调用底层的docker来根据配置清单创建容器
21.cgroup中的cpu有哪几种限制方式。 k8s是如何使用实现request和limit的。
软硬也就是request和limit,预配值以及最大限制,实现的话还是转化为底层的docker,使用docker的限制方式实现的

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐