如何在kubernetes中创建Pod

 更新时间:2021年4月1日 15:01  点击:2178

如何创建Pod?

      在之前的文章中,我们介绍了容器和Pod的区别和关系。我们知道Pod是k8s调度的最小单位,而一个Pod中可以有多个容器,那么我们如何来定义一个我们自己的Pod呢?

     在k8s中,我们通常使用编写配置文件的方式创建一个Pod,配置文件的格式通常采用yaml格式,(yaml格式如何表示list、key-value键值对,这些知识在前一篇文章中说过了),编写好yaml文件之后,通过下面的办法来启动一个Pod:

kubectl create -f  配置文件

Pod中容器的定义、参数、配置等信息,都在yaml文件中,一个常见的yaml文件内容如下:

apiVersion: v1
kind: Pod
metadata :
  name: volume-pod
spec:
  containers :
  - name: tomcat
    image: tomcat
    ports:
    - containerPort: 8080
    volumeMounts:
    - name: app-logs
      mountPath: /usr/local/tomcat/logs
  - name: busybox
    image: busybox
    command: ["sh","-c","tail -f /logs/catalina*.log"]
    volumeMounts:
    - name: app-logs
      mountPath: /logs
  volumes:
  - name: app-logs
    emptyDir: {}

当然,它可能有很多字段,根据你创建的Pod不同,字段可以自己设置。这样一个yaml文件,当我们提交给k8s之后,k8s就会帮助我们创建出来对应的API对象,在这个例子中,我们的对象是一个Pod,(因为yaml文件中的kind字段后面的值是Pod)。当然,还有其他。

到这里,我们已经了解了Pod的创建方法,针对上面的过程,我们再来看2个问题:

第一、kubectl是什么?它可以跟什么命令?

第二、Pod的yaml文件中的字段分别是什么意思?

先来看第一个问题。

kubectl工具

   kubectl工具是一个客户端CLI工具,可以让用户通过命令行的方式来管理k8s集群,这个命令的基本语法是:

kubectl 【command】 【type】 【name】 【flags】
command取值:get、create、delete、describe、get、apply等
type取值,资源对象的类型,可以取pod、deployment等
name取值:资源对象的名称,
flags:可选参数,可以通过--help来查看

eg:
kubectl create – 通过文件名或控制台输入,创建资源。
kubectl delete – 通过文件名、控制台输入、资源名或者label selector删除资源。
kubectl annotate – 更新资源的注解。
kubectl api-versions – 以“组/版本”的格式输出服务端支持的API版本。
kubectl apply – 通过文件名或控制台输入,对资源进行配置。
kubectl attach – 连接到一个正在运行的容器。
kubectl autoscale – 对replication controller进行自动伸缩。
kubectl cluster-info – 输出集群信息。
kubectl config – 修改kubeconfig配置文件。
kubectl describe – 输出指定的一个/多个资源的详细信息。
kubectl edit – 编辑服务端的资源。
kubectl exec – 在容器内部执行命令。
kubectl expose – 输入replication controller,service或者pod,并将其暴露为新的kubernetes service。
kubectl get – 输出一个/多个资源。
kubectl label – 更新资源的label。
kubectl logs – 输出pod中一个容器的日志。
kubectl namespace -(已停用)设置或查看当前使用的namespace。
kubectl patch – 通过控制台输入更新资源中的字段。
kubectl port-forward – 将本地端口转发到Pod。
kubectl proxy – 为Kubernetes API server启动代理服务器。
kubectl replace – 通过文件名或控制台输入替换资源。
kubectl rolling-update – 对指定的replication controller执行滚动升级。
kubectl run – 在集群中使用指定镜像启动容器。
kubectl scale – 为replication controller设置新的副本数。
kubectl stop – (已停用)通过资源名或控制台输入安全删除资源。
kubectl version – 输出服务端和客户端的版本信息。

    现在我们知道,它是一个命令行工具,常见的操作有上面这么多,可以使用create子命令来创建一个Pod即可。

    后续的其他功能,每次用到的时候,我们再展开说。当然,你可以使用kubectl --help来查看它的说明。

以上就是如何在kubernetes中创建Pod的详细内容,更多关于kubernetes中创建Pod的资料请关注猪先飞其它相关文章!

[!--infotagslink--]

相关文章

  • Python使用Kubernetes API访问集群

    本文主要介绍了Python使用Kubernetes API访问集群,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-30
  • 如何在kubernetes中创建Pod

    这篇文章主要介绍了如何在kubernetes中创建Pod,帮助大家更好的理解和学习使用kubernetes,感兴趣的朋友可以了解下...2021-04-01
  • 使用client-go工具调用kubernetes API接口的教程详解(v1.17版本)

    这篇文章主要介绍了使用client-go工具调kubernetes API接口(v1.17版本),本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-08-25
  • kubernetes YAML文件的使用

    这篇文章主要介绍了kubernetes YAML文件的使用,帮助大家更好的理解和学习使用kubernetes,感兴趣的朋友可以了解下...2021-04-01
  • Springboot整合Spring Cloud Kubernetes读取ConfigMap支持自动刷新配置的教程

    这篇文章主要介绍了Springboot整合Spring Cloud Kubernetes读取ConfigMap支持自动刷新配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-05
  • perl的POD权限问题处理

    今天我们继续查找mod_perl对req_header的处理,有需要的朋友建议参考学习之...2020-06-29
  • iPod的15周年盘点:那些年 这些iPod一起陪着我们

    15年前的今天,史蒂夫·乔布斯拿出了一个看着非常——怪异的电子产品,告诉人们将改变人们购买以及收听音乐的习惯,随后这个系列成了大卖几百万部的“当红炸子鸡”。iPod,就这样出现在人们的生活中,并为随后iPhone以及iPad的出现奠定了坚实的品牌以及群众基础。...2016-11-01
  • 段子归段子,但苹果的AirPod真有那么不堪?

    万众企盼的 iPhone 7 终于面世,舆论界也瞬间炸开了锅。除了 7 Plus 的双摄像头以外,最受瞩目的自然要数那售价高达 159 美元的 AirPod。在正式上架之前,针对这款耳机的吐槽声已经充斥了整个网络,我们不妨随意感受一下:...2016-09-28
  • Kubernetes探针使用介绍

    这篇文章主要为大家介绍了Kubernetes探针使用详细介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...2022-03-19
  • Kubernetes中Nginx配置热加载的全过程

    Nginx已经是互联网IT业界一个无敌的存在,作为反向代理、负载均衡、Web服务器等多种角色的扮演者,下面这篇文章主要给大家介绍了关于Kubernetes中Nginx配置热加载的相关资料,需要的朋友可以参考下...2022-01-19