Pip 在 Kubernetes 集群中安装包

Pip installing a package inside of a Kubernetes cluster

我已经在 Google Cloud Kubernetes 集群中通过其 Helm Chart 安装了 Apache Superset。我需要 pip install 安装 Helm Chart 时未安装的包。如果我像这样连接到 Kubernetes bash shell:

kubectl exec -it superset-4934njn23-nsnjd /bin/bash

里面没有 python 可用,没有 pip,apt-get 找不到大部分包。

我了解到在容器安装过程中,包列在 Docker 文件中,我想我需要 fork docker 容器,修改 Docker 文件,将容器注册到容器注册表并制作一个新的 Helm Chart,它将 运行 这个容器。

但这一切对于一个简单的 pip install 来说似乎太复杂了,有没有更简单的方法来做到这一点?

链接:

Docker- https://hub.docker.com/r/amancevice/superset/

舵图 - https://github.com/helm/charts/tree/master/stable/superset

创建容器,多做一些开发工作,减少寻呼机发出的警报

Docker 文件似乎正在安装 python3 包。 尝试 'python3' 或 "pip3" 而不是 'python'/'pip'

如@Murli 所述,您应该使用 pip3。但是,您应该记住的一件事是,helm 用于管理 k8s,即进入集群的内容应该是可追踪的。所以我向您推荐以下内容:

$ helm get stable/superset

修改values.yaml。就我而言,我将 jenkins-job-builder 添加到 pip3:

initFile: |-
  pip3 install jenkins-job-builder
  /usr/local/bin/superset-init --username admin --firstname admin --lastname user --email admin@fab.org --password admin
  superset runserver

然后将 values.yaml 传递给 helm install

$ helm install --values=values.yaml stable/superset

就是这样。

 $ kubectl exec -it doltish-gopher-superset-696448b777-8b9c6 which jenkins-jobs
 /usr/local/bin/jenkins-jobs
 $