简介
Pod是在Kubernetes中创建和管理的、最小的可部署的计算单元
Pod是一组由单个或多个容器组成,这些容器共享网络和存储资源,以及如何运行这些容器的声明
Pod是多进程设计,运用多个应用程序
每个Pod包含一个或多个紧密相关的用户业务容器
生命周期
Pod遵循预定义的生命周期,起始于 Pending 阶段, 如果至少其中有一个主要容器正常启动,则进入 Running,
之后取决于 Pod 中是否有容器以失败状态结束而进入 Succeeded 或者 Failed 阶段
和docker中的容器一样,Pod 也是相对临时性的实体
Pod 会被创建、赋予一个唯一的 ID(UID),并被调度到节点,并在终止(根据重启策略)或删除之前一直运行在该节点
如果一个节点宕机了,调度到该节点的Pod也被计划在给定超时期限结束后删除
状态
Pending Pod 已被 K8s 系统接受,但有一个或者多个容器尚未创建亦未运行。此阶段包括等待 Pod 被调度的时间和通过网络下载镜像的时间。
Running Pod 已经绑定到了某个节点,Pod 中所有的容器都已被创建。至少有一个容器仍在运行,或者正处于启动或重启状态。
Succeeded Pod 中的所有容器都已成功终止,并且不会再重启。
Failed Pod 中的所有容器都已终止,并且至少有一个容器是因为失败终止。也就是说,容器以非 0 状态退出或者被系统终止。
Unknown 因为某些原因无法取得 Pod 的状态。这种情况通常是因为与 Pod 所在主机通信失败。
创建Pod
下面的Pod示例由一个运行nginx:1.14.2的容器组成
vi nginx1.14.2.yaml
apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: - name: nginx1.14.2 image: nginx:1.14.2 ports: - containerPort: 80
kubectl apply -f nginx1.14.2.yaml
查看pod所有的命名空间
kubectl get pod --all-namespaces
查看default命名空间中的pods
kubectl get pods
查看命名空间中的pods
kubectl get pods -n 命名空间
查看Pod详细状况
kubectl describe pod 名称