目录
- 2. 对 Pod 的 CRUD
- 2.1 创建 Pod
- (1)命令式创建
- ① 命令语法
- ② 示例
- ③ 参数说明
- ④ 参数扩展
- 参数说明
- (2)声明式创建(推荐)
- ① 创建 YAML 文件
- 参数说明
- 查看 YAM L文件
- ② 使用 kubectl apply 创建 Pod
- 参数说明
- (3)创建包含多个容器的 Pod
- ① 修改 YAML 文件
- ② 创建并查看 Pod
- 关联博客
2. 对 Pod 的 CRUD
CRUD:Create,Read,Update and Delete,即创建,查询,更新(修改)和删除。
下面涉及到 YAML 清单文件 会在下一节中详细介绍。
2.1 创建 Pod
创建 Pod 的方式有两种,
- 命令式创建
- 声明式创建(推荐)
(1)命令式创建
① 命令语法
kubectl run pod_name --image=image_name
② 示例
kubectl run vmware-nginx --image=nginx
③ 参数说明
- kubectl run :命令行创建pod的关键字。
- vmware-nginx:自定义pod名称,要符合
metadata.name
要求。 - –image=:容器镜像。
上述三个字段是命令式创建Pod的基本参数要求。
Pod命名规则:* metadata.name: a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, ‘-’ or ‘.’, and must start and end with an alphanumeric character (e.g. ‘example.com’, regex used for validation is ‘a-z0-9?(.a-z0-9?)*’)
④ 参数扩展
命令行创建Pod还能添加很多参数选项,如下所示:
kubectl run vmware-nginx --image=nginx --image-pull-policy=IfNotPresent --labels="vmware=nginx1" --env="evn=test" --port=80 --namespace=1-pod
参数说明
- –image-pull-policy=:选择镜像下载策略,默认为Always。这块知识点之后会细说。
- –labels:指定标签,相当于给Pod贴了一个标签,可以根据标签筛选Pod。
- –env=:在容器中设置的环境变量。
- –port=:指定容器开放的端口。
- –namespace:指定名字空间。缩写为
-n
。
(2)声明式创建(推荐)
声明式创建的步骤是:先使用YAML文件,然后使用kubectl apply
命令根据YAML文件内容创建Pod。
关于 Pod的 YAML 清单文件的说明,请查阅博客:Pod的 YAML 清单文件
① 创建 YAML 文件
方法1:在Kubernetes官网中找到Pod清单。
方法2:使用命令行创建一个关于Pod的yaml文件
kubectl run vmware-nginx --image=nginx --image-pull-policy=IfNotPresent -n 1-pod --dry-run=client -o yaml > vmware-nginx.yaml
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fu7ATSG1-1668354659761)(8.【Kubernetes】Pod 创建与基本管理.assets/image-20221111202924513.png)]
参数说明
- –dry-run=‘none’,其值只能是 “none”、"server"或 “client”。可以简单的把dry-run命令理解为不是真的创建pod,只是模拟创建pod需要提交哪些参数。
- -o:完整写法是-output=‘’,将命令结果输出以下格式:json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file。
- > vmware-nginx.yaml:命令转换符,将命令打印的结果移动到 vmware-nginx.yaml 文件中,文件名可以自定义,文件格式为-o的输出格式即可。
查看 YAM L文件
使用cat vmware-nginx.yaml 命令查看里面内容。
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: vmware-nginx
name: vmware-nginx
spec:
containers:
- image: nginx
imagePullPolicy: IfNotPresent
name: vmware-nginx
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Always
status: {}
② 使用 kubectl apply 创建 Pod
kubectl apply -f vmware-nginx.yaml
参数说明
- kubectl apply:使用声明式创建pod的关键字。
- -f vmware-nginx.yaml:-f, --filename=[]。后面跟yaml名。
(3)创建包含多个容器的 Pod
① 修改 YAML 文件
复制 vmware-nginx.yaml,取名为vmware-2c.yaml。修改为如下所示
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: vmware-2c
name: vmware-2c
namespace: 1-pod
spec:
containers:
- image: nginx # 容器1
imagePullPolicy: IfNotPresent
name: vmware-nginx
resources: {}
- image: tomcat # 容器2
imagePullPolicy: IfNotPresent
name: vmware-tmcat
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Always
status: {}
② 创建并查看 Pod
kubectl apply -f vmware-2c.yaml -n 1-pod
kubectl get pod -n 1-pod
关联博客
关于 Pod 的创建,查询,修改,删除,访问容器以及故障排错。请跳转下面的博文:
- 【Kubernetes | Pod 系列】Pod 的基本管理(1)——对 Pod 的创建
- 【Kubernetes | Pod 系列】Pod 的基本管理(2)——对 Pod 的查询
- 【Kubernetes | Pod 系列】Pod 的基本管理(3)——对 Pod 的删除与修改
- 【Kubernetes | Pod 系列】Pod 的基本管理(4)——访问容器与故障排错