1.K8s中镜像下载策略有哪几种?
Always, Never, IfNotPresent
2.K8s中pod故障重启策略有哪几种?
Always, Never, OnFailure
3.什么是 Headless Service?
Headless Service 是通过在 Service 的定义中设置 clusterIP: None 来实现的。它的核心特性是:
- 没有 Cluster IP :普通 Service 会分配一个虚拟的 Cluster IP,用于负载均衡和代理流量,而 Headless Service 不会分配 Cluster IP。
- 直接访问 Pod :客户端可以直接访问后端 Pod 的真实 IP 地址或 DNS 名称,而不经过 Service 的负载均衡机制。
4.如何使用docker快速运行相关服务?比如docker安装nginx、mysql、redis、tomcat等?
准备好相应服务的镜像,可以在运行时在线拉取,也可提前导入,然后运行命令。
5.Dockerfile中RUN,CMD,ENTRYPOINY的区别?
RUN:用于在构建镜像时执行的命令
CMD:容器运行启动后执行的命令
ENTRYPOINY:容器启动时执行的命令
6.K8s中pod是如何实现代理和负载均衡的?
通过创建Service资源,通过label标签匹配到后端的pod,实现pod的负载均衡。
7.K8s中创建pod的过程是怎么样的?
(1)Kubelet命令向api-server发送一个创建pod的请求。
(2)K8s中的api-server接收到请求后,不是直接创建pod,而是生成一个创建pod信息的yaml文件,将yaml文件写入到etcd数据库中,添加一条记录。
(3)Scheduler调度服务会查看etcd数据库信息,判断这条信息是不是新来的,若是新来的就选择一个最合适的节点,将pod调度到节点上面,将调度信息更新到etcd数据库中
(4)各节点上的kubelet服务不停地监控etcd数据库。若发现有新的数据进来,会根据分配的调度信息和自己对号入座。