AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 728727
Accepted
four43
four43
Asked: 2015-10-14 12:40:43 +0800 CST2015-10-14 12:40:43 +0800 CST 2015-10-14 12:40:43 +0800 CST

Kubernetes 卡在 ContainerCreating

  • 772

运行创建后,我的 Kubernetes 集群中的一个 pod 卡在“ContainerCreating”上。如何查看此操作的日志以诊断卡住的原因?kubectl logs似乎不起作用,因为容器需要处于非挂起状态。

kubernetes
  • 5 5 个回答
  • 224089 Views

5 个回答

  • Voted
  1. Best Answer
    Sreekanth Pothanis
    2015-10-22T22:38:09+08:002015-10-22T22:38:09+08:00

    kubectl describe pods将列出一些(可能是大多数但不是全部)与 pod 相关的事件,包括拉取图像、启动容器。

    • 279
  2. Chris Stryczynski
    2019-12-29T05:36:23+08:002019-12-29T05:36:23+08:00

    可以在活动中提供更多信息。

    kubectl get events --all-namespaces  --sort-by='.metadata.creationTimestamp'
    

    但是请注意,由于此错误,排序事件可能无法正常工作:https ://github.com/kubernetes/kubernetes/issues/29838


    或者:

    从 Kubernetes 1.18 开始,所有新对象都具有用于服务器端应用的元数据,这为我们提供了一种对事件进行排序的新方法:

    kubectl get events --sort-by=".metadata.managedFields[0].time"

    来自:https ://github.com/kubernetes/kubernetes/issues/29838#issuecomment-789660546


    就我而言,我有一个与 pod 相关的事件:

    default       13s         Warning   FailedMount               Pod          Unable to mount volumes for pod "restore-db-123-1-5f24s_default(9b7df264-2976-11ea-bb8f-42010a9a002c)": timeout expired waiting for volumes to attach or mount for pod "default"/"restore-db-123-1-5f24s". list of unmounted volumes=[nfsv]. list of unattached volumes=[nfsv default-token-hxrng]
    
    • 46
  3. Esmailian
    2018-07-10T19:41:41+08:002018-07-10T19:41:41+08:00

    就我而言,docker 访问互联网被阻止了。它是使用代理解决的(使用sandylss的评论):

    1. minikube stop
    2. minikube delete
    3. export http_proxy=http://user:pass@ip:port
    4. export https_proxy=http://user:pass@ip:port
    5. export no_proxy=192.168.99.0/24
    6. minikube start --logtostderr --v=0 --bootstrapper=localkube --vm-driver hyperv 
        --hyperv-virtual-switch "Primary Virtual Switch" --docker-env HTTP_PROXY=$http_proxy \
        --docker-env HTTPS_PROXY=$https_proxy --docker-env NO_PROXY=$no_proxy
      
    7. export no_proxy=$no_proxy,$(minikube ip)
    8. export NO_PROXY=$no_proxy,$(minikube ip)

    然后,要检查 docker 是否可以访问互联网,请运行:

    $ docker pull tutum/hello-world
    

    在集群中(使用 连接到集群minikube ssh);如果开始下载,请停止该过程。

    我的第二个问题是互联网连接速度慢。由于所需的 docker 映像大约为 100MB,因此 docker 容器和 Kubernetes pod 都保持\pause状态ContainerCreating30 分钟。

    要检查 docker 是否正在下载图像,请运行:

    $ ls -l /var/lib/docker/tmp
    

    在集群中,显示正在下载的临时图像文件,否则为空。

    如果你在 minikube 中开发并使用 VPN,docker 可以通过fiddler使用你的 VPN 。即docker会连接到fiddler的ip:port,fiddler连接到VPN。否则,您的主机和 minikube 虚拟机之间不会共享 VPN。

    • 6
  4. Luis Felipe Moura Pereira De S
    2019-02-28T10:46:30+08:002019-02-28T10:46:30+08:00

    我有一次遇到这个问题是因为我的资源声明意外地非常小。

    资源:限制:cpu:1000m 内存:1024M 请求:cpu:1000m 内存:1024M

    对比

    资源:限制:cpu:1000m 内存:1024m 请求:cpu:1000m 内存:1024m

    将 m 资本化会对资源使用产生非常大的影响。我被困在 ContainerCreating 上,因为我没有为容器提供足够的内存。

    • 3
  5. Tej Arora
    2020-11-04T23:08:10+08:002020-11-04T23:08:10+08:00

    在我的例子中,一个 pod 被卡在“ ContainerCreating ”,因为一个 docker 镜像被挂起(一些层被下载,一些被卡在“下载”中)。

    $ kubectl get events --all-namespaces  --sort-by='.metadata.creationTimestamp'
    

    显示了一个事件“拉图像”

    尝试使用 docker image pull 拉出该图像...并看到它挂起。

    事实证明,并发拉取层存在错误。更改 docker 配置以限制并发性解决了这个问题。

    将此添加到 docker config(在 Windows、docker-desktop UI、设置、Docker 引擎上)以限制并发:

      "max-concurrent-downloads": 1,
      "max-concurrent-uploads": 1
    
    • 2

相关问题

  • 如何判断 kubernetes 集群中的容器何时/是否/为什么重新启动?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve