Kubernetes之pod介绍
Pod是Kubernetes中能够创建和部署的最小单元,是Kubernetes集群中的一个应用实例,总是部署在同一个节点Node上。Pod中包含了一个或多个容器,还包括了存储、网络等各个容器共享的资源。Pod支持多种容器环境,Docker则是最流行的容器环境。
Pod应用方式
• 单容器Pod,最常见的应用方式。
• 多容器Pod,对于多容器Pod,Kubernetes会保证所有的容器都在同一台物理主机或虚拟主机中运行。多容器Pod是相对高阶的使用方式,除非应用耦合特别严重,一般不推荐使用这种方式。一个Pod内的容器共享IP地址和端口范围,容器之间可以通过 localhost 互相访问。
Pod的生命周期
像单独的容器应用一样,Pod并不是持久运行的。Pod创建后,Kubernetes为其分配一个UID,并且通过Controller调度到Node中运行,然后Pod一直保持运行状态直到运行正常结束或者被删除。在Node发生故障时,Controller负责将其调度到其他的Node中。Kubernetes为Pod定义了几种状态:
状态 | 描述 |
Pending | Pod已创建,正在等待容器创建。经常是正在下载镜像,因为这一步骤最耗费时间。 |
Running | Pod已经绑定到某个Node并且正在运行。或者可能正在进行意外中断后的重启。 |
Succeeded | 表示Pod中的容器已经正常结束并且不需要重启。 |
Failed | 表示Pod中的容器遇到了错误而终止。 |
Unknown | 因为网络或其他原因,无法获取Pod的状态。 |
Pod的相关操作
1、 创建Pod
华为云购买一台鲲鹏服务器(wrk和Tomcat部署在同一台鲲鹏服务器上,当然也可以部署在不同的服务
使用配置文件的方式创建Pod。
$ kubectl create -f first-pod.yml
first-pod.yml编写内容如下:
apiVersion: v1
kind: Pod
metadata:
name: first-pod
labels:
app: bash
tir: backend
spec:
containers:
- name: bash-container
image: docker.io/busybox
command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600']
2、 查看配置。
如果想了解一个正在运行的Pod的配置,可以通过以下命令获取。
$ kubectl get pod first-pod -o yaml
3、 查看日志。
可以查看命令行标准输出的日志。
$ kubectl logs first-pod
Hello Kubernetes!
如果Pod中有多个容器,查看特定容器的日志需要指定容器名称kubectl logs pod-name -c container-name。
4、 查看Pod。
$ kubectl get pods
5、 查看Pod,带标签。
$ kubectl get pods
6、 删除Pod。
$ kubectl delete pods first-pod
$ kubectl get pods --show-labels
显示如下:
- 点赞
- 收藏
- 关注作者
评论(0)