根据文档:
https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#run
kubectl run NAME --image=image
将运行图像。
一些问题:
我认为这是一个容器而不是容器?
我认为NAME与广告连播相关联?
答案 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 的窗格。