Kubernetes (K8s)面试常见问题及答案如下:
1.什么是Kubernetes?
Kubernetes是一个开源的容器编排平台,用于自动化容器化应用程序的部署、扩展和管理。
2.什么是容器?
容器是一种轻量级的虚拟化技术,用于封装应用程序和其依赖项,以便在不同环境中进行移植和运行。
3.Kubernetes的主要组件有哪些?
Kubernetes的主要组件包括:
- Master组件:包括
API Server、Controller Manager、Scheduler
和etcd
等。 - Node组件:包括
kubelet、kube-proxy
和容器运行时等。 - 网络插件:用于提供Pod之间和Pod与外部网络之间的通信。
4.什么是Pod?
Pod
是Kubernetes中最小的调度单位,它是一个或多个相关容器的组合,共享网络和存储资源,并在同一主机上运行。
5.什么是ReplicaSet?
ReplicaSet
是Kubernetes中的一个控制器,用于确保指定数量的Pod
副本正在运行。如果Pod
数目少于指定数量,ReplicaSet
会创建新的Pod
;如果Pod
数目多于指定数量,ReplicaSet
会删除多余的Pod
。
6.如何进行Kubernetes集群的扩展?
Kubernetes集群可以通过增加新的工作节点来进行水平扩展。新节点加入集群后,它们将参与到Pod
的调度和容器运行中。
7.什么是命名空间(Namespace)?
命名空间是一种用于在Kubernetes集群中隔离和组织资源的机制。它可以帮助不同的团队或项目在同一个集群中共享资源,同时保持彼此之间的隔离。
8.如何进行在Kubernetes中进行应用程序的部署?
在Kubernetes中部署应用程序通常需要创建一个包含Pod
描述的YAML
文件,然后使用kubectl
工具进行部署:
kubectl apply -f <yaml文件>
9.如何进行在Kubernetes中进行应用程序的扩展?
可以使用Deployment
控制器来扩展应用程序。通过更新Deployment
的副本数,Kubernetes
会自动调整运行中的Pod
数量以达到所需的扩展效果:
kubectl scale deployment <deployment名称> --replicas=<副本数>
10.什么是Kubernetes服务(Service)?
Kubernetes服务是一种抽象,用于将一组具有相同标签的Pod
暴露给集群内部或外部的其他服务。它提供了稳定的网络端点,可以通过服务名称进行访问。