k8s实操面试常见问题
时间: 2025-06-09 21:51:14 浏览: 24
### Kubernetes 实操面试常见问题及答案
#### 1. ### 如何检查 Kubernetes 集群中的节点状态?
通过以下命令可以查看集群中所有节点的状态。如果某个节点显示为 `NotReady`,则可能存在网络连接中断或其他硬件问题。
```bash
kubectl get nodes
```
对于具体的节点详情,可通过下面的命令获取更多信息以便分析潜在的原因[^1]。
```bash
kubectl describe node <node-name>
```
#### 2. ### 如果 Pod 处于 Pending 状态怎么办?
Pod 待在 Pending 状态通常是因为资源不足或者是调度器找不到合适的节点放置该 Pod。要诊断这个问题,可以先看 Pod 的事件日志:
```bash
kubectl describe pod <pod-name> -n <namespace>
```
另外也可以检查是否有足够的资源(CPU/Memory)可供分配给新的 Pods[^2]。
#### 3. ### 怎样手动删除卡住的 Pod?
有时候由于各种各样的原因,Pod 可能会陷入 Terminating 状态而无法自动清除掉。这时可以用强制删除的方式处理:
```bash
kubectl delete pod <pod-name> --grace-period=0 --force -n <namespace>
```
需要注意的是,在实际生产环境中应谨慎使用此类方法以免引起不必要的服务中断[^3]。
#### 4. ### 描述一下 Service 和 Ingress 的区别是什么?
Service 主要是用来定义一组逻辑上的相同功能的应用程序实例集合,并对外暴露统一入口;Ingress 则是在七层 HTTP 层面上实现了流量路由的功能,允许用户基于域名路径等方式更加灵活地控制请求分发到不同的 backend services 上去[^4]。
#### 5. ### 当 Deployment 更新失败时怎么回滚?
假设我们已经知道某次升级导致了应用程序不可用,那么就可以很容易地将其版本退回到之前稳定的工作副本那里去:
```bash
kubectl rollout undo deployment/<deployment-name> -n <namespace>
```
这条指令将会把目标 Deployment 还原至上一个成功的 Revision 记录点处[^5]。
---
阅读全文
相关推荐












