kubernetes - Kubectl 创建多行 secret

标签 kubernetes google-kubernetes-engine kubernetes-helm kubectl

我正在尝试将服务帐户保密 - 一年前我这样做了并且它有效但现在 - 无论我如何处理它,应用程序都看不到它并说有 输入字节数组的结尾字节不正确 - 当创建普通 secret 时,我知道你必须换行,所以

echo -n "secret" | base64

然后将该值保密并应用,但是我的多行文件

cat secret.json
{
  "type": "service_account",
  "project_id": "smth-smth",
  "private_key_id": "blabla"
...
}

无论我如何处理 - 无论是像第一个示例中那样手动放置,还是用

cat secret.json | base64

# or 

base64 < secret.json

secret 已创建但应用程序抛出

Constructor threw exception; nested exception is java.lang.IllegalArgumentException: Input byte array has incorrect ending byte at 3104

当我将新密码与服务帐户的最后一个密码进行比较时,不同之处在于输出的样子

工作的是这样的 - 当我尝试解密 base64 时

echo -n "<long string of base64 encrypred sa> | base64 -D
    { "type": "service_account", "project_id": "blabla"... }

所以它在一行中,我尝试解密的新 SA 以文件中的格式输出 - 所以 json 的每个部分在新行中 - 我尝试手动将它们全部放在一行中但没有成功

有人知道吗?如何正确地将多行文件放入 secret (base64)中?

最佳答案

从文件创建 secret 的最简单方法是使用kubectl create secret generic

将文件 secret.json 放在文件夹 config 中,然后运行:

kubectl create secret generic my-secret --from-file=config

您将获得一个 secret my-secret,其中包含一个 key secret.json 包含您的文件(然后您可以将其挂载到 pod 卷)。

关于kubernetes - Kubectl 创建多行 secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63246293/

相关文章:

docker - 无法从谷歌计算引擎实例运行 gcloud docker push

kubernetes - Kubernetes如何确保Canary前端达到Canary后端并且稳定前端仅达到稳定后端?

kubernetes - 带有pvc的local类型的StorageClass,但在kubernetes中给出错误

jenkins - 如何在helm upgrade命令中传递指向文件的指针?

kubernetes - 使用云 DNS 的 GKE 上的证书管理器配置

amazon-web-services - 如何使用 kops 删除 kubernetes 集群而不删除我用于数据库的 EBS 持久卷?

kubernetes - 由网络负载平衡器引起的长请求在120秒后返回,响应为空

kubernetes - 如何正确地将OpenLDAP集成到Keycloak?

kubernetes - “Error: forwarding ports: Upgrade request required” kubernetes 集群 helm 错误

go - 无法覆盖 Kubernetes Go 客户端中的 Kubernetes 配置