在Kubernetes集群内部安装软件包

时间:2018-08-01 07:23:29

标签: kubernetes google-cloud-platform kubernetes-helm

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

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

里面没有可用的python,没有pip和apt-get找不到大多数软件包。

我了解到,在容器安装过程中,软件包会在Dockerfile中列出,我想我需要派生Docker容器,修改Dockerfile,将容器注册到容器注册表中,并制作一个新的Helm Chart来运行这个容器。

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

链接:

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

头盔图表-https://github.com/helm/charts/tree/master/stable/superset

3 个答案:

答案 0 :(得分:2)

Docker文件似乎正在安装python3软件包。 尝试使用“ python3”或“ pip3”而不是“ python” /“ pip”

答案 1 :(得分:2)

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

$ helm get stable/superset

修改values.yaml。就我而言,我在pip3中添加了jenkins-job-builder:

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
 $

答案 2 :(得分:1)

做一个容器,多做一些开发工作,更少的寻呼机警报