遇到的k8s面试题

硬驱逐和软驱逐

答:

参考: 硬驱逐条件和软驱逐条件

kubernetes-pod驱逐机制

1、硬驱逐:没有宽限期,硬驱逐条件时, kubelet 会立即杀死 pod
2、软驱逐:有宽限期, 在超过宽限期之前,kubelet 不会驱逐 Pod。

image-20220311125648437

deployment如何像daemonset一样每个node运行一个

答:

pod反亲和可以实现.

svc和endpoint的区别

答:

svc工作原理:

svc是通过标签选择pod.

endpoint工作原理:

endpoint是监听svc选择的pod的ip.通过kube-proxy来轮询访问pod.

ansible中include 和 import的区别

参考: ansible中include 和 import的区别

答:

ansible 目前有 import_tasksinclude_tasksimport_playbookinclude_playbookimport_roleinclude_role

importinclude 区别相近:
区别一

  • import_tasks(Static)方法会在playbooks解析阶段将父task变量子task变量全部读取并加载
  • include_tasks(Dynamic)方法则是在执行play之前才会加载自己变量

**区别二 **

  • include_tasks方法调用的文件名称可以加变量

  • import_tasks方法调用的文件名称不可以有变量

具体参考:https://www.cnblogs.com/mauricewei/p/10054041.html

也正是因为「include_task」是动态导入,当我们给「include_role」导入的role打tag时,实际并不会执行该role的task。

RUN,CMD,ENTRYPOINT的区别

参考 RUN,CMD,ENTRYPOINT的区别

  • RUN命令执行命令并创建新的镜像层,通常用于安装软件包
  • CMD命令设置容器启动后默认执行的命令及其参数,但CMD设置的命令能够被docker run命令后面的命令行参数替换
  • ENTRYPOINT配置容器启动时的执行命令(不会被忽略,一定会被执行,即使运行 docker run时指定了其他命令)