Kubernetes Pod

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

  • 共享存储,如 Volumes 卷
  • 网络,唯一的集群IP地址
  • 每个容器运行的信息,例如:容器镜像版本
    Pod模型是特定应用程序的“逻辑主机”,并且包含紧密耦合的不同应用容器。

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

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

Pod概述

Kubernetes 中浏览 Pods和Nodes - 图1

Node

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

每个Kubernetes Node上至少运行着:

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

Node概述

Kubernetes 中浏览 Pods和Nodes - 图2

Troubleshooting with kubectl

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

  • kubectl get - 列出资源
  • kubectl describe - 显示资源的详细信息
  • kubectl logs - 打印pod中的容器日志
  • kubectl exec - pod中容器内部执行命令
    可以使用这些命令来查看应用程序何时部署、它们当前的状态是什么、它们在哪里运行以及它们的配置是什么。

现在我们已经了解了更多关于集群组件和命令的信息,接下来让我们来探究一下应用

K8S中文社区微信公众号

原文: http://docs.kubernetes.org.cn/115.html