代码之家  ›  专栏  ›  技术社区  ›  Snowcrash

kubectl运行名称-澄清

  •  1
  • Snowcrash  · 技术社区  · 7 年前

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

    kubectl run NAME --image=image

    将运行一个映像。

    • 我猜这个名字和吊舱有关?

    2 回复  |  直到 7 年前
        1
  •  3
  •   aurelius    7 年前

    雪崩,你说得对。这与docker运行命令基本相同。所以使用 kubectl run NAME --image=image pod 命名 NAME image . 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(未就绪)状态 现在很重要,但你可以阅读更多关于它的信息 here )

    • 调度程序已成功将pod分配给节点(centos主节点)。

    • kubelet检查docker映像是否可用,如果可用,则将其拉入

    • 然后创建并启动容器。

    * here

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

    基本上 kubectl 命令行工具支持几种不同的方法 create and manage Kubernetes对象:

    • 命令命令
    • 命令式对象配置

    *你可以在这个网站上找到更多关于他们的信息 StackOverflow answer article .

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

    […]因为这种技术直接作用于活动对象,所以

        2
  •  1
  •   DT.    6 年前

    这个 kubectl run NAME --image=image 命令,将引发一个名为的pod(通过为给定映像创建相应的部署和复制集) 使用名为 形象 . 在Docker中将此处的name视为标记名。

    然后,当你跑的时候 kubectl get pods 在列表中。

    kubectl get all 将获取默认名称空间中的所有资源(还将列出部署和复制集对象)

    例子:

    
    $ kubectl run nginx --image=nginx
    
    $ kubectl get all
    NAME                         READY   STATUS              RESTARTS   AGE
    pod/nginx-6db489d4b7-cs748   0/1     ContainerCreating   0          6s
    
    NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
    service/kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   31d
    
    NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/nginx   0/1     1            0           6s
    
    NAME                               DESIRED   CURRENT   READY   AGE
    replicaset.apps/nginx-6db489d4b7   1         1         0       6s
    

    kubectl run NAME --image=image --restart=Never

    当您列出上述命令的结果(请参阅下面的输出)时,您应该只看到相应的pod(未创建部署和复制集对象)

    $ kubectl run nginx --image=nginx --restart=Never
    pod/nginx created
    
    $ kubectl get all
    NAME                      READY   STATUS              RESTARTS   AGE
    pod/nginx                 0/1     ContainerCreating   0          3s
    
    NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
    service/kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   31d
    
    推荐文章