如何从kubernetesclus中的气流工作者在另一个名称空间的另一个pod中运行命令

2024-09-28 21:42:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在pod中运行papermill命令并获取错误(如果有)。这必须由使用bash operatori气流的气流工作人员完成。在

我尝试过根据需要运行命令,也尝试过从我自己的worker运行多个bash命令,这些命令本来是要在worker内部执行的。但这让我觉得这样的事情是可能的。不过,如果有什么更好的方法可以解决this,我会全神贯注的。在

要运行的bash命令是:

papermill check1.ipynb check1_output.ipynb -p params '{"aviral":"srivastava", "apoorv":"srivastava"}'

手动地,我exec在我的pod中,然后运行这个命令。我想在气流的dag里做一个bash命令。在


Tags: 方法命令bash错误this事情podworker
1条回答
网友
1楼 · 发布于 2024-09-28 21:42:10

要在pod中使用kubectl,您需要在pod中有可用的二进制文件。在

您可以使用kubectl安装Create a Docker image。在

我觉得Dockerfile可能是这样的:

FROM ubuntu:14.04

# Install.
RUN \
  sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && \
  apt-get update && \
  apt-get -y upgrade && \
  apt-get install -y build-essential && \
  apt-get install -y software-properties-common && \
  apt-get install -y byobu curl git htop man unzip vim wget && \
  rm -rf /var/lib/apt/lists/* && \
# Installing kubectl using native package management  
  apt-get install -y apt-transport-https && \
  curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - && \
  echo 'deb https://apt.kubernetes.io/ kubernetes-xenial main' | sudo tee -a /etc/apt/sources.list.d/kubernetes.list && \
  apt-get update && \
  apt-get install -y kubectl

# Add files.
ADD root/.bashrc /root/.bashrc
ADD root/.gitconfig /root/.gitconfig
ADD root/.scripts /root/.scripts

# Set environment variables.
ENV HOME /root

# Define working directory.
WORKDIR /root

# Define default command.
CMD ["bash"]

或者Define a Command and Arguments for a Container,并在pod启动时使用它来安装kubectl。在

如果要在Kubernetes部署中使用它,.yaml的部分可能如下所示:

^{pr2}$

您也可以kubectl exec -it <pod_name> bash到pod中,并使用本指南Install and Set Up kubectl手动安装,但它将在容器重新启动时停止。在

相关问题 更多 >