当前位置:   article > 正文

【Kubernetes | Pod 系列】Pod 的基本管理(1)——对 Pod 的创建_kubectl 创建pod

kubectl 创建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
  • 1
③ 参数说明
  • 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
  • 1
参数说明
  • –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
  • 1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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: {}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
② 使用 kubectl apply 创建 Pod
kubectl apply -f vmware-nginx.yaml
  • 1

在这里插入图片描述

参数说明
  • 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: {}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
② 创建并查看 Pod
kubectl apply -f vmware-2c.yaml -n 1-pod

kubectl get pod -n 1-pod
  • 1
  • 2
  • 3

在这里插入图片描述

关联博客

关于 Pod 的创建,查询,修改,删除,访问容器以及故障排错。请跳转下面的博文:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/162088
推荐阅读
相关标签
  

闽ICP备14008679号