gpt4 book ai didi

kubernetes - 为什么将 daskdev/dask 启动到 Pod 会失败?

转载 作者:行者123 更新时间:2023-12-04 07:52:07 25 4
gpt4 key购买 nike

为什么kubectl run dask --image daskdev/dask失败?

# starting the container with docker to make sure it basically works
➜ ~ docker run --rm -it --entrypoint bash daskdev/dask:latest
(base) root@5b34ce038eb3:/# python
Python 3.8.0 (default, Nov 6 2019, 21:49:08)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import dask
>>>
>>> exit()
(base) root@5b34ce038eb3:/# exit
exit

# now trying to fire up the container on a minikube cluster
➜ ~ kubectl run dask --image daskdev/dask
pod/dask created

# let's see what's going on with the Pod
➜ ~ kubectl get pods -w
NAME READY STATUS RESTARTS AGE
dask 0/1 CrashLoopBackOff 1 13s
dask 0/1 Completed 2 24s
dask 0/1 CrashLoopBackOff 2 38s

# not sure why the logs look like something is missing
➜ ~ kubectl logs dask --tail=100
+ '[' '' ']'
+ '[' -e /opt/app/environment.yml ']'
+ echo 'no environment.yml'
+ '[' '' ']'
+ '[' '' ']'
+ exec
no environment.yml

最佳答案

  • 所以基本上,如果你检查 kubectl describe pod dask 的结果,你会看到最后一个状态是 Terminated退出代码为 0,字面意思是您的容器已成功启动,完成工作并成功完成。您还希望 pod 发生什么?
    此外,当您使用 kubectl run dask --image daskdev/dask 创建 pod 时- 它使用 restartPolicy: Always 创建默认情况下!!!!

  • 始终意味着容器将重新启动,即使它以零退出代码(即成功)退出 .
        State:          Waiting
    Reason: CrashLoopBackOff
    Last State: Terminated
    Reason: Completed
    Exit Code: 0
    Started: Fri, 02 Apr 2021 15:06:00 +0000
    Finished: Fri, 02 Apr 2021 15:06:00 +0000
    Ready: False
    Restart Count: 3
    Environment: <none>
  • 没有/opt/app/environment.yml在您的容器中。如果我没记错的话,你应该先用 prepare.sh 配置它.请查看更多 here - DASK
  • #docker run --rm -it --entrypoint bash daskdev/dask:latest
    (base) root@431d69bb9a80:/# ls -la /opt/app/
    total 12
    drwxr-xr-x 2 root root 4096 Mar 27 15:43 .
    drwxr-xr-x 1 root root 4096 Mar 27 15:43 ..

    not sure why the logs look like something is missing ➜ ~ kubectl logs dask --tail=100...exec no environment.yml


  • 已经准备好了helm DASK chart .用它。它工作正常:
  • helm repo add dask https://helm.dask.org/
    helm repo update
    helm install raffael-dask-release dask/dask

    NAME: raffael-dask-release
    LAST DEPLOYED: Fri Apr 2 15:43:38 2021
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    NOTES:
    Thank you for installing DASK, released at name: raffael-dask-release.

    This release includes a Dask scheduler, 3 Dask workers, and 1 Jupyter servers.

    The Jupyter notebook server and Dask scheduler expose external services to
    which you can connect to manage notebooks, or connect directly to the Dask
    cluster. You can get these addresses by running the following:

    export DASK_SCHEDULER="127.0.0.1"
    export DASK_SCHEDULER_UI_IP="127.0.0.1"
    export DASK_SCHEDULER_PORT=8080
    export DASK_SCHEDULER_UI_PORT=8081
    kubectl port-forward --namespace default svc/raffael-dask-release-scheduler $DASK_SCHEDULER_PORT:8786 &
    kubectl port-forward --namespace default svc/raffael-dask-release-scheduler $DASK_SCHEDULER_UI_PORT:80 &

    export JUPYTER_NOTEBOOK_IP="127.0.0.1"
    export JUPYTER_NOTEBOOK_PORT=8082
    kubectl port-forward --namespace default svc/raffael-dask-release-jupyter $JUPYTER_NOTEBOOK_PORT:80 &

    echo tcp://$DASK_SCHEDULER:$DASK_SCHEDULER_PORT -- Dask Client connection
    echo http://$DASK_SCHEDULER_UI_IP:$DASK_SCHEDULER_UI_PORT -- Dask dashboard
    echo http://$JUPYTER_NOTEBOOK_IP:$JUPYTER_NOTEBOOK_PORT -- Jupyter notebook

    NOTE: It may take a few minutes for the LoadBalancer IP to be available. Until then, the commands above will not work for the LoadBalancer service type.
    You can watch the status by running 'kubectl get svc --namespace default -w raffael-dask-release-scheduler'

    NOTE: It may take a few minutes for the URLs above to be available if any EXTRA_PIP_PACKAGES or EXTRA_CONDA_PACKAGES were specified,
    because they are installed before their respective services start.

    NOTE: The default password to login to the notebook server is `dask`. To change this password, refer to the Jupyter password section in values.yaml, or in the README.md.
  • 如果您还想手动创建 pod,请使用以下...主要思想设置 restartPolicy: Never .
  • apiVersion: v1
    kind: Pod
    metadata:
    name: dask-tesssssst
    labels:
    foo: bar
    spec:
    restartPolicy: Never
    containers:
    - image: daskdev/dask:latest
    imagePullPolicy: Always
    name: dask-tesssssst
  • 请查收 DASK KubeCluster official documentation for more examples.最后一张我正是从那里拿的。
  • 关于kubernetes - 为什么将 daskdev/dask 启动到 Pod 会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66908090/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com