【Kubernetes | Pod 系列】Pod 的基本管理(1)——对 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 的创建,查询,修改,删除,访问容器以及故障排错。请跳转下面的博文:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NOWSHUT

给点饭钱谢谢,我会努力更新!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值