# k8s 中查看 Pods 和 Nodes

# k8s Pod

在模块 2 中创建 Deployment 时,k8s 会创建了一个Pod来托管应用。Pod 是 k8s 中一个抽象化概念,由一个或多个容器组合在一起得共享资源。这些资源包括:

  • 共享存储,如 Volumes 卷
  • 网络,唯一的集群 IP 地址
  • 每个容器运行的信息,例如:容器镜像版本

Pod 模型是特定应用程序的“逻辑主机”,并且包含紧密耦合的不同应用容器。

Pod 中的容器共享 IP 地址和端口。

Pod 是 k8s 中的最小单位,当在 k8s 上创建 Deployment 时,该 Deployment 将会创建具有容器的 Pods(而不会直接创建容器),每个 Pod 将被绑定调度到 Node 节点上,并一直保持在那里直到被终止(根据配置策略)或删除。在节点出现故障的情况下,群集中的其他可用节点上将会调度之前相同的 Pod。

# Pod 概述

img

# Node

一个 Pod 总是在一个(Node)****节点上运行,Node 是 k8s 中的工作节点,可以是虚拟机或物理机。每个 Node 由 Master 管理,Node 上可以有多个 pod,k8s Master 会自动处理群集中 Node 的 pod 调度,同时 Master 的自动调度会考虑每个 Node 上的可用资源。

每个 k8s Node 上至少运行着:

  • Kubelet,管理 k8s Master 和 Node 之间的通信; 管理机器上运行的 Pods 和 containers 容器。
  • container runtime(如 Docker,rkt)。

# Node 概述

img

# Troubleshooting with kubectl

在第 2 单元中,使用了 Kubectl 命令管理工具。我们继续在模块 3 中使用它来获取有关 Deployment 的应用及其环境信息。常见的操作可以通过以下 kubectl 命令完成:

  • kubectl get - 列出资源
  • kubectl describe - 显示资源的详细信息
  • kubectl logs - 打印 pod 中的容器日志
  • kubectl exec - pod 中容器内部执行命令

可以使用这些命令来查看应用程序何时部署、它们当前的状态是什么、它们在哪里运行以及它们的配置是什么。

Last Updated: 4/15/2023, 8:33:17 PM