1、什么是亲和性(Affinity)和反亲和性(Anti-Affinity)?
亲和性和反亲和性是Pod调度的约束条件。通过使用亲和性,可以将Pod调度到指定的节点;通过使用反亲和性,可以避免将Pod调度到指定的节点。
2、怎样从一个镜像创建一个 Pod?
可以使用kubectl命令行工具或编写一个Pod的YAML文件,然后使用kubectl apply命令创建Pod。
3、怎样在 Kubernetes 中进行服务发现?
可以使用Kubernetes的Service对象来进行服务发现。Pod可以通过Service的DNS名称进行通信。
4、什么是 PVC(Persistent Volume Claim)?
PVC是用于声明对持久卷(Persistent Volume)的需求的对象,它允许Pod使用持久化存储。
5. 怎样进行容器间通信?
可以使用Pod的内部IP地址和端口号进行容器间通信。此外,也可以使用Service对象来提供稳定的网络访问。
6、如何进行存储卷(Volume)的使用?
可以使用存储卷将持久化数据附加到Pod中。Kubernetes支持多种类型的存储卷,如空白存储卷、主机路径、持久卷等。
7、什么是Pod?
Pod是Kubernetes的最小调度和部署单元。它是一个包含一个或多个容器的逻辑主机,这些容器共享网络和存储资源,并且在同一主机上共享生命周期。
8、简述 Kubernetes 和 Docker 的关系?
答:Docker 提供容器的生命周期管理和Docker 镜像构建运行时容器。
它的主要优点是将将软件/应用程序运行所需的设置和依赖项打包到一个容器中,从而实现了可移植性等优点。Kubernetes 用于关联和编排在多个主机上运行的容器。
9、简述 Kubernetes Service 类型?
答:通过创建 Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址, 并且将请求负载分发到后端的各个容器应用上。其主要类型有:
ClusterIP:虚拟的服务 IP 地址,该地址用于 Kubernetes 集群内部的 Pod 访问, 在 Node 上 kube-proxy 通过设置的 iptables 规则进行转发;
NodePort:使用宿主机的端口,使能够访问各 Node 的外部客户端通过 Node 的 IP 地址和端口号就能访问服务;
LoadBalancer:使用外接负载均衡器完成到服务的负载分发,需要在spec.status.loadBalancer 字段指定外部负载均衡器的 IP 地址,通常用于公有云。
10、 简述 Kubernetes PV 和PVC?
答:PV 是对底层网络共享存储的抽象,将共享存储定义为一种“资源”。PVC 则是用户对存储资源的一个“申请”。