阶段六:Kubernetes 容器编排之节点管理、命名空间和POD基础

节点基础概念

1. 节点的定义

1. 节点分类

1. 节点状态

执行:

kubectl get nodes

节点状态包括:

节点管理操作

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

命令作用:

执行结果:

关键参数:

注意事项:

#在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:


**注意事项:**






![](/assets/feishu-images/2885440e78058ec1a1c28e75.png)







![](/assets/feishu-images/3572bc5a5f4a9c12ca78d08f.jpg)
















  过滤,是为了解决**“能不能”**的问题
  打分,是为了解决**“好不好”**的问题
  ![](/assets/feishu-images/53d20ab43bd8bd264acfdd7b.png)



应用场景举例  










![](/assets/feishu-images/0bc7c8558e180e452768d580.png)


创建一个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:


**注意事项:**



![](/assets/feishu-images/68a6ecf1ca515a2ee0fd1692.png)





 容器退出后无论状态如何都会重启。
 仅在容器失败时重启。
 容器退出后不再重启。

配置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)

#查看对象具体信息描述

#查看容器日志

注意事项: