gpt4 book ai didi

kubernetes - kubectl run NAME - 澄清

转载 作者:行者123 更新时间:2023-12-02 11:53:59 26 4
gpt4 key购买 nike

根据文档:

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

kubectl run NAME --image=image

将运行图像。

一些问题:

  • 我假设这是一个 pod 而不是一个容器?

  • 我假设 NAME 与 pod 相关联?

最佳答案

Snowcrash,你是对的。这与 docker run 命令基本相同。所以使用 kubectl run NAME --image=image 将准确运行 pod从名为 image 的 docker 图像中命名为 NAME。您可以使用 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-master)。

  • kubelet 检查 docker 镜像是否可用,如果可用则拉取它必要的。

  • 然后容器被创建并启动。

* here你可以找到一篇有趣的文章,它以更详细的方式解释了这一点。

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

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

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

*您可以在这个 StackOverflow answer 中找到更多关于它们的信息或此媒体 article .

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

[...] Because this technique operates directly on live objects, it provides no history of previous configurations.

关于kubernetes - kubectl run NAME - 澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54109560/

26 4 0