如何在Windows上为Google云平台添加docker-registry secret(就是在PowerShell中,不是Bash)?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Windows上为Google云平台添加docker-registry secret(就是在PowerShell中,不是Bash)?相关的知识,希望对你有一定的参考价值。

我使用的是Windows,启用Kubernetes的Docker for Windows和PowerShell(不是Bash)。这只是为了本地测试我的Docker镜像和Kubernetes设置。我遇到的问题是如何访问Google的容器注册表。

我创建了服务账户,希望有正确的权限,但我还没有做到。我已经得到了包含私钥和其他细节的JSON文件。我的问题是,当我试图通过运行来创建秘密。

kubectl create secret docker-registry gcr-json-key --docker-server=eu.gcr.io --docker-username=_json_key --docker-password="$(cat json_credentials.json)" --docker-email=pupeno@example.com

我得到了这个错误。

error: exactly one NAME is required, got 5
See 'kubectl create secret docker-registry -h' for help and examples.

我猜测是在... --docker-password=" 我最后用行文,引用等方式,这就是造成问题的原因。还是其他原因?我应该怎么做呢?这在Bash中可以工作,但在PowerShell中不行吗?

答案

我能够通过转义双引号和从JSON键文件中删除新行来解决这个问题。(Powershell)

$JSON_CREDS = "C:\Path\To\Creds.json"
$REPOSITORY_HOST = "https://gcr.io"
$EMAIL = "email@example.com"
# An arbitrary string to serve as the name of the secret
$SECRET_NAME = "gcr-pull-secret"
$KUB_NAMESPACE = "some-namespace"

$service_json = (Get-Content $JSON_CREDS).replace("\n", "").replace('"', '\"')

$kubePath = "C:\Path\To\kubectl.exe"
$namespaceArg = "--namespace=$KUB_NAMESPACE"
$createArg = "create secret docker-registry $SECRET_NAME"
$serverArg = "--docker-server=$REPOSITORY_HOST"
$usernameArg = "--docker-username=_json_key"
$passwordArg = "--docker-password=""$service_json"""
$emailArg = "--docker-email=$EMAIL"

Start-Process $kubePath -ArgumentList "$namespaceArg $createArg $serverArg $usernameArg $passwordArg $emailArg" -Wait -NoNewWindow

# Optional, used to patch the default service account

$imagePullSecretJson = """\""imagePullSecrets\"": [\""name\"": \""$SECRET_NAME\""]"""

Start-Process $kubePath -ArgumentList "patch serviceaccount default -p $imagePullSecretJson" -Wait -NoNewWindow

以上是关于如何在Windows上为Google云平台添加docker-registry secret(就是在PowerShell中,不是Bash)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 上为 NetBeans 和 gcc 添加库包含路径?

如何在 AWS EB Amazon Linux 2 平台上为 cron.d 添加环境属性引用

如何在 Google App Engine 上为社交新闻提要建模

Google云平台使用方法 | Hail | GWAS

如何在颤振、x 轴和 y 轴上为图表添加名称?

Qt - 在 Windows 上为 Linux 交叉编译