正如标题所示,我正在尝试使用 helm 3 在我的 kubernetes 集群上部署 openwhisk(并作为 containerFactory),但我使用私有注册表来拉取操作 pod 映像,即 action-nodejs-v14。
尽管在命名空间内创建了 docker 注册表机密,但操作 pod 似乎没有意识到这一点,并且失败了:
rpc 错误:代码 = 未知 desc = 来自守护程序的错误响应:头“https://
/v2/openwhisk/action-nodejs-v14/manifests/latest”:没有基本身份验证凭据
我发现this和this问题表明,当使用kubernetes作为containerFactory时,
imagePullSecrets
不会传播,他们建议将其从pod-template
中的whisk.kubernetes.pod-template
通过whiskconfig.conf
传递,但我不知道如何Action Pod 应该看起来像这样,因为它们都是由调用者几乎神秘地创建的。
我可以确认这些图像存在于我的私人注册表中,如果登录后
docker pull <registry_url>/openwhisk/action-nodejs-v14:latest
我可以下载它们。
有没有办法从调用者 pod 模板文件中执行此操作?或者有其他办法吗?
谢谢!
我找到的解决方案是通过
imagePullSecret
中的 pod-template
配置变量以以下形式传播 whiskconfig.conf
:
include classpath("application.conf")
whisk{
...
kubernetes {
pod-template = """
apiVersion: v1
kind: Pod
spec:
imagePullSecrets:
- name: <name of your private docker registry>
"""
}
}
使用此配置,您可以从自己的私有 docker 注册表中提取函数映像,尽管 openwhisk 不支持 Kubernetes 的容器工厂。对于
openwhisk-deploy-kube
,如果您尚未修改 imagePullSecret
上的名称,则您的
{{ .Release.Name }}-private-registry.auth
的名称采用
_helpers.tpl
的形式