本文介绍了在JupyterHub中使用私有回购中的图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试将我自己的jupyter图像插入jupyterHub。使用helm,我已将jupyterHub设置为在本地运行Minikube,并使用默认映像:
RELEASE=jhub
NAMESPACE=jhub
helm upgrade --cleanup-on-fail
--install $RELEASE jupyterhub/jupyterhub
--namespace $NAMESPACE
--create-namespace
--version=0.9.0
--values config.yaml
这行得通。
然后我尝试通过修改配置.yaml:
来更改图像singleuser:
image:
name: myrepo.azurecr.io/myrepo/myimage
tag: 1.0
imagePullSecret:
enabled: true
name: mysecret
这应该会指出我在私有存储库中的形象。mysecret
是使用kubectl create secret docker-registry mysecret ...
创建的秘密,但是,当运行上述helm upgrade
命令时,我收到一个错误,似乎是由于jupyterHub舵图无法正确处理命名的imagePullSecret
:
Error: UPGRADE FAILED: failed to create resource: Secret "singleuser-image-credentials" is invalid: data[.dockerconfigjson]: Invalid value: "<secret contents redacted>": invalid character ',' looking for beginning of value
如果我将--dry-run --debug
添加到helm upgrade
命令中,我会得到问题的提示:
kind: Secret
apiVersion: v1
metadata:
name: singleuser-image-credentials
labels:
component: singleuser-image-credentials
app: jupyterhub
release: jhub
chart: jupyterhub-0.9.0
heritage: Helm
type: kubernetes.io/dockerconfigjson
data:
.dockerconfigjson: ewogICJhdXRocyI6IHsKICAgICJodHRwczovL2luZGV4LmRvY2tlci5pby92MS8iOiB7CiAgICAgICJ1c2VybmFtZSI6ICwKICAgICAgInBhc3N3b3JkIjogLAogICAgICAiYXV0aCI6ICJQRzVwYkQ0NlBHNXBiRDQ9IgogICAgfQogIH0KfQ==
上面的dockerconfigjson密码实际上并不包含密码:
$ echo ewogICJhdXRocyI6IHsKICAgICJodHRwczovL2luZGV4LmRvY2tlci5pby92MS8iOiB7CiAgICAgICJ1c2VybmFtZSI6ICwKICAgICAgInBhc3N3b3JkIjogLAogICAgICAiYXV0aCI6ICJQRzVwYkQ0NlBHNXBiRDQ9IgogICAgfQogIH0KfQ== | base64 --decode
{
"auths": {
"https://index.docker.io/v1/": {
"username": ,
"password": ,
"auth": "PG5pbD46PG5pbD4="
}
}
}
$ echo PG5pbD46PG5pbD4= | base64 --decode
<nil>:<nil>
问题
这种看起来像是臭虫。但应该有某种方法可以使用密钥将凭据插入到jupyterHub 0.9.0中?
解决方法:
我可以使用helm upgrade --set singleuser.imagePullSecret.password=<my password here> ...
直接插入用户名和密码。那么它就起作用了。推荐答案
而不是将您的私有Helm存储库添加到config.yaml
,您应该修改values.yaml
文件,如this github issue中所述:
image:
name: <image>
tag: '<tag>'
pullPolicy: Always
pullSecrets:
- secretName: "<secret-name>"
这篇关于在JupyterHub中使用私有回购中的图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!