pod是一组相同功能的容器集合,比如说一个pod组合了一个mysql容器,flask项目的容器。

在没有接触pod这个概念之前,我们之前通过手动分别启动这2个容器,同时flask需要访问mysql,需要注入mysql的ip。尽管mysql和这个python可能部署在一个node。当然,仅此这个并不是我们学习k8s,学习pod的最终目的。

创建pod可以通过读取yaml,也可以用命令行。为了一个pod的详细信息的可追溯,推荐使用yaml方式,如下图基础描述信息部分

kind: Pod 指定yaml类型为pod

metadata: # 【必选-Object】元数据

name:指定pod名称

labels: # 【List】 自定义标签列表

- name: Stringpod中容器定义

spec: # 【必选-Object】 Pod中容器的详细定义

- name: String # 【必选】 容器的名称

image: String # 【必选】 容器的镜像名称

imagePullPolicy: [Always | Never | IfNotPresent] # 【String】 每次都尝试重新拉取镜像 | 仅使用本地镜像 | 如果本地有镜像则使用,没有则拉取。

command: [String] # 【List】 容器的启动命令列表,如果不指定,则使用镜像打包时使用的启动命令,参见dockerfile说明

args: [String] # 【List】 容器的启动命令参数列表

workingDir: String # 容器的工作目录

volumeMounts: # 【List】 挂载到容器内部的存储卷配置网络部分

ports:

containerPort: Int # 容器需要监听的端口号

hostPort: Int # 容器所在主机需要监听的端口号,默认与containerPort相同。

protocol: String # 端口协议,支持TCP和UDP,默认值为TCP

以上参数为常用参数。

创建命令:

kubectl create -f xxx.yaml

查看状态

kubectl get pods xxx

定位问题:

kubectl pods log xxx

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐