1.简单说说什么是kubernetes?
bash
复制代码
K8s 是一个开源的容器编排平台;
用来自动调度、弹性扩缩容、自愈修复及管理容器化应用
核心作用:统一管理容器生命周期,简化大规模容器集群的部署、运维及管理的难题。
2.Pod是什么?和容器有什么区别?
bash
复制代码
Pod 是 K8s 最小调度单元,一个 Pod 里可以包含一个或多个容器,共享网络、存储、命名空间、统一调度与启停;
区别:
1.容器:只负责运行单个程序
2.Pod:可包含多个容器,共享资源,紧密协作
3.Pod一直处于Pending状态,常见原因有哪些?
bash
复制代码
1.资源不足
CPU/Memory/磁盘/资源限制过高...
2.节点调度问题
节点亲和性、污点、标签不匹配...
3.镜像异常
镜像地址错误、拉取镜像失败、私有镜像未配置秘钥(ImagePullSecret)...
4.存储挂载失败
PVC未绑定、PV不存在、存储权限或挂载路径异常...
5.网络限制
网络策略、防火墙限制...
6.集群配额不足
namespace资源配额耗尽,无法创建Pod
4.简述Kubernetes和Docker的关系?
bash
复制代码
Docker
Container Runtime
负责打包应用、创建并运行单个容器、解决应用隔离与部署问题。
Kubernetes
容器编排平台
不直接运行容器,依靠容器运行时(Docker/Containerd),统一管理集群中大量的容器。
我来总结一下:
Docker 负责造容器,跑容器;
K8s 负责批量调度,运维及管理大量容器。
二者分工协作,Docker是底层载体,K8s是上层管理。
5.Kubernetes中什么是kubeadm,Kubectl,Kubelet?
bash
复制代码
kubeadm(集群部署引导工具)
快速搭建K8s集群的工具,核心:引导集群初始化
kubeadm init 初始化控制平面
kubeadm join 让工作节点加入集群
kubeadm upgrade 实现集群版本升级
kubeadm reset 集群拆除
kubectl(集群命令行管理工具)
用户与K8s集群交互的命令行接口
kubectl create/get/describe/apply/delete -> pod/deployment/service/configmap
kubectl exec -it <pod-name> -- /bin/sh(bash)
kubectl logs (-f) <pod-name> # -f 实时跟踪
kubelet(节点代理守护进程)
代理服务,运行在每个节点的进程
Pod生命值周期管理
节点状态上报
资源管理
Volume挂载与管理
网络协调