【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(十一)

  本站以分享各种运维经验和运维所需要的技能为主

《python零基础入门》:python零基础入门学习

《python运维脚本》: python运维脚本实践

《shell》:shell学习

《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战

《k8》从问题中去学习k8s

《docker学习》暂未更新

《ceph学习》ceph日常问题解决分享

《日志收集》ELK+各种中间件

《运维日常》运维日常

《linux》运维面试100问

《DBA》db的介绍使用(mysql、redis、mongodb...)

思考一下问题:

51、简述Kubernetes网络策略原理?

52、简述Kubernetes中flannel的作用?

53、简述Kubernetes Calico网络组件实现原理?

54、简述Kubernetes共享存储的作用?

55、简述Kubernetes数据持久化的方式有哪些?

参考答案:

51、简述Kubernetes网络策略原理?
Network Policy的工作原理主要为:policy controller需要实现一个API Listener,监听用户设置的
Network Policy定义,并将网络访问规则通过各Node的Agent进行实际设置(Agent则需要通过CNI网络
插件实现)。

52、简述Kubernetes中flannel的作用?
Flannel可以用于Kubernetes底层网络的实现,主要作用有:
它能协助Kubernetes,给每一个Node上的Docker容器都分配互相不冲突的IP地址。
它能在这些IP地址之间建立一个覆盖网络(Overlay Network),通过这个覆盖网络,将数据包原
封不动地传递到目标容器内。

53、简述Kubernetes Calico网络组件实现原理?
Calico是一个基于BGP的纯三层的网络方案,与OpenStack、Kubernetes、AWS、GCE等云平台都能够
良好地集成。
Calico在每个计算节点都利用Linux Kernel实现了一个高效的vRouter来负责数据转发。每个vRouter都
通过BGP协议把在本节点上运行的容器的路由信息向整个Calico网络广播,并自动设置到达其他节点的
路由转发规则。
Calico保证所有容器之间的数据流量都是通过IP路由的方式完成互联互通的。Calico节点组网时可以直接
利用数据中心的网络结构(L2或者L3),不需要额外的NAT、隧道或者Overlay Network,没有额外的
封包解包,能够节约CPU运算,提高网络效率。

54、简述Kubernetes共享存储的作用?
Kubernetes对于有状态的容器应用或者对数据需要持久化的应用,因此需要更加可靠的存储来保存应用
产生的重要数据,以便容器应用在重建之后仍然可以使用之前的数据。因此需要使用共享存储。

55、简述Kubernetes数据持久化的方式有哪些?
Kubernetes 通过数据持久化来持久化保存重要数据,常见的方式有:
EmptyDir(空目录):没有指定要挂载宿主机上的某个目录,直接由Pod内保部映射到宿主机上。类似
于docker中的manager volume。
场景:
只需要临时将数据保存在磁盘上,比如在合并/排序算法中;
作为两个容器的共享存储。
特性:
同个pod里面的不同容器,共享同一个持久化目录,当pod节点删除时,volume的数据也会被删
除。
emptyDir的数据持久化的生命周期和使用的pod一致,一般是作为临时存储使用。
Hostpath:将宿主机上已存在的目录或文件挂载到容器内部。类似于docker中的bind mount挂载方
式。
特性:增加了pod与节点之间的耦合。
PersistentVolume(简称PV):如基于NFS服务的PV,也可以基于GFS的PV。它的作用是统一数据持
久化目录,方便管理。

 

你可能感兴趣的:(k8s,学习,kubernetes,容器)