通过 helm 3 部署在 Kubernetes 上的 Openwhisk 中 Action Pod 的私有注册表

问题描述 投票:0回答:1

正如标题所示,我正在尝试使用 helm 3 在我的 kubernetes 集群上部署 openwhisk(并作为 containerFactory),但我使用私有注册表来拉取操作 pod 映像,即 action-nodejs-v14。

尽管在命名空间内创建了 docker 注册表机密,但操作 pod 似乎没有意识到这一点,并且失败了:

rpc 错误:代码 = 未知 desc = 来自守护程序的错误响应:头“https:///v2/openwhisk/action-nodejs-v14/manifests/latest”:没有基本身份验证凭据

我发现thisthis问题表明,当使用kubernetes作为containerFactory时,

imagePullSecrets
不会传播,他们建议将其从
pod-template
中的
whisk.kubernetes.pod-template
通过
whiskconfig.conf
传递,但我不知道如何Action Pod 应该看起来像这样,因为它们都是由调用者几乎神秘地创建的。

我可以确认这些图像存在于我的私人注册表中,如果登录后

docker pull <registry_url>/openwhisk/action-nodejs-v14:latest
我可以下载它们。

有没有办法从调用者 pod 模板文件中执行此操作?或者有其他办法吗?

谢谢!

kubernetes docker-registry openwhisk
1个回答
0
投票

我找到的解决方案是通过

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

的形式
© www.soinside.com 2019 - 2024. All rights reserved.