kubectl运行名称-澄清

时间:2019-01-09 11:54:37

标签: kubernetes kubectl

根据文档:

https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#run

kubectl run NAME --image=image

将运行图像。

一些问题:

  • 我认为这是一个容器而不是容器?

  • 我认为NAME与广告连播相关联?

2 个答案:

答案 0 :(得分:2)

Snowcrash,您是对的。这基本上与docker run命令相同。因此,使用kubectl run NAME --image=image会从名为NAME的Docker镜像中准确运行名为image的{​​{3}}。 您可以使用kubectl describe pod NAME检查发生了什么 这是kubectl run nginx --image=nginx

的示例
Events:
  Type     Reason            Age                From                    Message
  ----     ------            ----               ----                    -------
  Warning  FailedScheduling  89s (x2 over 89s)  default-scheduler       0/2 nodes are available: 2 node(s) had taints that the pod didn't tolerate.
  Normal   Scheduled         19s                default-scheduler       Successfully assigned default/nginx-7cdbd8cdc9-glkxq to centos-master
  Normal   Pulling           18s                kubelet, centos-master  pulling image "nginx"
  Normal   Pulled            14s                kubelet, centos-master  Successfully pulled image "nginx"
  Normal   Created           14s                kubelet, centos-master  Created container
  Normal   Started           14s                kubelet, centos-master  Started container

kubectl run之后发生的事情是:

  • 计划程序正在尝试选择一个节点来启动容器(最初是 由于污点而失败,因为我的节点处于NotReady状态(不是 目前很重要,但您可以详细了解pod

  • 调度程序已成功将Pod分配给节点(centos-master)。

  • kubelet检查docker映像是否可用,如果存在,则将其拉出 必要。

  • 然后创建并启动容器。

* here,您会找到一篇有趣的文章,其中对此进行了更详细的说明。

该名称与pod关联,因为Pod是Kubernetes中最小的工作单元。每个吊舱可以包含一个或多个容器。 Pod中的所有容器都具有相同的IP地址和端口空间,可以访问托管该Pod的Node上的共享存储。

基本上,kubectl命令行工具支持几种here Kubernetes对象的方式:

  • 命令命令
  • 即时对象配置
  • 声明式对象配置

*您可以在此create and manage或此媒介StackOverflow answer中找到有关它们的更多信息。

run命令是命令式方法的一个示例。是最简单的开始

  

[...]因为此技术直接对活动对象起作用,所以它   没有以前的配置历史记录。

答案 1 :(得分:-1)

run NAME --image=image命令将使用名为 image 的图像升起名称为 NAME 的豆荚。在这里将名称视为Docker中的标签名称。

然后,当您运行kubectl --get pods时,将在列表中看到一个名称为 NAME 的窗格。