Kubernetes Pod
在模块2中创建Deployment时,Kubernetes会创建了一个Pod来托管应用。Pod是Kubernetes中一个抽象化概念,由一个或多个容器组合在一起得共享资源。这些资源包括:
- 共享存储,如 Volumes 卷
- 网络,唯一的集群IP地址
- 每个容器运行的信息,例如:容器镜像版本
Pod模型是特定应用程序的“逻辑主机”,并且包含紧密耦合的不同应用容器。
Pod中的容器共享IP地址和端口。
Pod是Kubernetes中的最小单位,当在Kubernetes上创建Deployment时,该Deployment将会创建具有容器的Pods(而不会直接创建容器),每个Pod将被绑定调度到Node节点上,并一直保持在那里直到被终止(根据配置策略)或删除。在节点出现故障的情况下,群集中的其他可用节点上将会调度之前相同的Pod。
Pod概述
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概述
Troubleshooting with kubectl
在第2单元中,使用了Kubectl 命令管理工具。我们继续在模块3中使用它来获取有关Deployment的应用及其环境信息。常见的操作可以通过以下kubectl命令完成:
- kubectl get - 列出资源
- kubectl describe - 显示资源的详细信息
- kubectl logs - 打印pod中的容器日志
- kubectl exec - pod中容器内部执行命令
可以使用这些命令来查看应用程序何时部署、它们当前的状态是什么、它们在哪里运行以及它们的配置是什么。
现在我们已经了解了更多关于集群组件和命令的信息,接下来让我们来探究一下应用。