阶段六:Kubernetes 容器编排之节点管理、命名空间和POD基础
节点基础概念
1. 节点的定义
- Node(节点) 是 Kubernetes 集群中运行 Pod 的工作机器。
- 可以是 物理机 或 虚拟机。
- 节点由 Kubelet、kube-proxy、容器运行时 等组件组成。
1. 节点分类
- Master 节点:负责集群管理和调度(通常运行 etcd、API Server、Scheduler、Controller Manager)。
- API Server:对外提供集群接口
- Scheduler:决定 Pod 分配到哪个节点
- Controller Manager:负责副本、节点、状态管理
- etcd:存储集群状态
- Worker 节点:运行用户的应用 Pod。
- 执行应用 Pod
- 受 Master 节点调度和管理
- 可以通过标签和污点区分环境(生产/测试)
1. 节点状态
执行:
kubectl get nodes
节点状态包括:
Ready:节点可调度
NotReady:节点不可用
SchedulingDisabled:节点被设置为不可调度(cordon/drain)
节点管理操作
1. 查看节点信息
#查看集群所有节点信息
root@node1 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
node1 Ready control-plane 17h v1.30.14
node4 Ready <none> 16h v1.30.14
node5 Ready <none> 16h v1.30.14
#查看某个节点的详细信息
[root@node1 ~]# kubectl describe node node1命令作用:
- 读取指定资源的详细状态和 Events,用于排查调度、镜像、挂载和探针问题。
执行结果:
- 成功后会输出资源详细信息、事件和调度或运行状态。
关键参数:
注意事项:
#在Master主控节点生成加入集群命令
#先完成节点初始化工作、在添加的新节点服务器执行,检查本地/etc/hosts绑定集群域名是否正确
-delete-local-data
--ignore-daemonsets
--force关键参数:
注意事项:
#查看所有节点的污点
**注意事项:**
命令拆解:
| 命令部分 | 重要程度 | 详细解释 |
|---|---|---|
--namespace=dev | 普通 | 长参数 --namespace 的值是 dev,用于精确控制命令行为。 |
注意事项:
metadata: spec: hard:
#部署nginx-deployment.yaml服务必须设置资源最低要求和最大运行时限制 metadata: spec: selector: matchLabels: template: metadata: labels: spec: containers: ports: resources: requests: limits:
**注意事项:**


过滤,是为了解决**“能不能”**的问题
打分,是为了解决**“好不好”**的问题

应用场景举例

创建一个redis工作负载metadata: labels: spec: selector: matchLabels: template: metadata: labels: spec: containers: ports: resources: requests: limits: volumeMounts: volumes: --- metadata: spec: selector: ports:
**注意事项:**
---metadata: spec: selector: matchLabels: template: metadata: labels: spec: affinity: requiredDuringSchedulingIgnoredDuringExecution: matchExpressions: values: containers: ports:
**注意事项:**
metadata: spec: selector: matchLabels: template: metadata: labels: spec: affinity: preferredDuringSchedulingIgnoredDuringExecution: podAffinityTerm: labelSelector: matchExpressions: values: containers: ports:
**注意事项:**
metadata:
spec:
selector:
matchLabels:
template:
metadata:
labels:
spec:
affinity:
podAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
podAffinityTerm:
labelSelector:
matchExpressions:
values:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
podAffinityTerm:
labelSelector:
matchExpressions:
values:
containers:
ports:
resources:
requests:
limits:注意事项:

容器退出后无论状态如何都会重启。 仅在容器失败时重启。 容器退出后不再重启。
配置POD重启策略
metadata: spec: selector: matchLabels: template: metadata: labels: spec: affinity: podAffinity: preferredDuringSchedulingIgnoredDuringExecution: podAffinityTerm: labelSelector: matchExpressions: values: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: podAffinityTerm: labelSelector: matchExpressions: values: containers: ports:
**注意事项:**
containers:
...
resources:
requests:
limits:注意事项:
IfNotPresent(默认,适用项目中间件,类似MySQL、Redis)
Always
Never
spec: containers:
**注意事项:**
**livenessProbe(存活探针)**
**作用**:检查容器是否“活着”。
**特点**:
**readinessProbe(就绪探针)**
**作用**:检查容器是否“准备好对外提供服务”。
**特点**:
metadata:
spec:
selector:
matchLabels:
template:
metadata:
labels:
spec:
affinity:
podAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
podAffinityTerm:
labelSelector:
matchExpressions:
values:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
podAffinityTerm:
labelSelector:
matchExpressions:
values:
containers:
ports:
httpGet:
httpGet:注意事项:
PostStart
metadata: spec: selector: matchLabels: template: metadata: labels: spec: containers: ports: postStart: exec:
**注意事项:**
metadata:
spec:
selector:
matchLabels:
template:
metadata:
labels:
spec:
containers:
ports:
postStart:
exec:
preStop:
exec:注意事项:
| 状态 | 描述 |
|---|
排查步骤
#先获取要排查的对象名称(pod、deployment、service、node)
#查看对象具体信息描述
#查看容器日志
**注意事项:**
本文由飞书云文档同步生成。涉及命令、SQL、配置示例时,请以飞书源文档和实际环境执行结果为准。