标签: kubernetes-secrets

如何通过yaml将秘密文件设置为kubernetes的秘密?

我想在Kubernetes Secrets中存储文件,但我还没有找到如何使用yaml文件来完成它.

我已经能够使用cli来实现kubectl:

kubectl create secret generic some-secret --from-file=secret1.txt=secrets/secret1.txt
Run Code Online (Sandbox Code Playgroud)

但当我尝试类似的东西yaml:

apiVersion: v1
kind: Secret
metadata:
  name: some-secret
type: Opaque
data:
  secret1.txt: secrets/secret1.txt
Run Code Online (Sandbox Code Playgroud)

我有这个错误:

[pos 73]: json: error decoding base64 binary 'assets/elasticsearch.yml': illegal base64 data at input byte 20
Run Code Online (Sandbox Code Playgroud)

我正在按照本指南http://kubernetes.io/docs/user-guide/secrets/.它解释了如何使用a yaml而不是如何使用文件创建秘密来创建秘密yaml.

可能吗?如果是这样,我该怎么办?

yaml kubernetes kubernetes-secrets

26
推荐指数
4
解决办法
3万
查看次数

kubernetes:使用cli修改秘密?

如何secret使用cli 修改秘密中的值?

我创建了秘密kubectl,但似乎没有办法修改秘密.例如,向其添加新的秘密值,或更改其中的秘密值.

我假设我可以去'低级',并编写yaml文件并做一个kubernetes create secret generic但我希望有一个更简单的方法.

(我正在使用kubectl edit)

kubernetes kubernetes-secrets

24
推荐指数
8
解决办法
2万
查看次数

如何将多个文件/秘密挂载到 kubernetes 的公共目录中?

我从不同的文件创建了多个秘密。我想将它们全部存储在公共目录中/var/secrets/。不幸的是,我无法做到这一点,因为 kubernetes在 pod 验证步骤期间抛出'Invalid value: "/var/secret": must be unique错误。下面是我的 pod 定义示例。

apiVersion: v1
kind: Pod
metadata:
  labels:
    run: alpine-secret
  name: alpine-secret
spec:
  containers:
  - command:
    - sleep
    - "3600"
    image: alpine
    name: alpine-secret
    volumeMounts:
    - name: xfile
      mountPath: "/var/secrets/"
      readOnly: true
    - name: yfile
      mountPath: "/var/secrets/"
      readOnly: true
  volumes:
  - name: xfile
    secret:
      secretName: my-secret-one
  - name: yfile
    secret:
      secretName: my-secret-two
Run Code Online (Sandbox Code Playgroud)

如何将来自多个机密的文件存储在同一目录中?

kubernetes kubernetes-secrets

20
推荐指数
3
解决办法
1万
查看次数

使用 helm 时创建的额外秘密

我创建了一个舵图,它具有secrets.yaml

apiVersion: v1
kind: Secret
type: Opaque
metadata: 
 name: appdbpassword
stringData:
  password: password@1
Run Code Online (Sandbox Code Playgroud)

我的豆荚是:

apiVersion: v1
kind: Pod
metadata:
  name: expense-pod-sample-1
spec:
  containers:
    - name: expense-container-sample-1
      image: exm:1
      command: [ "/bin/sh", "-c", "--" ]
      args: [ "while true; do sleep 30; done;" ]
      envFrom:
      - secretRef:
              name: appdbpassword
Run Code Online (Sandbox Code Playgroud)

每当我运行kubectl get secrets命令时,我都会得到以下秘密:

name                                     Type                 Data    Age
appdbpassword                            Opaque               1      41m
sh.helm.release.v1.myhelm-1572515128.v1  helm.sh/release.v1   1      41m
Run Code Online (Sandbox Code Playgroud)

为什么我会得到那个额外的秘密?我在这里错过了什么吗?

kubernetes kubernetes-helm kubernetes-secrets

12
推荐指数
2
解决办法
3954
查看次数

将保管库机密注入 Kubernetes Pod 环境变量

我正在尝试在需要 PostgresSQL 的 Kubernetes 环境中安装 Sonarqube。我正在使用外部 Postgres 实例,并且在 Vault 中设置了凭证 kv 密钥。SonarQube helm Chart 在容器中创建一个环境变量,该变量采用 Postgres 的用户名和密码。

如何将 Vault 中的秘密注入到 Kubernetes 上运行的 sonarqube pod 的环境变量中?

创建 Kubernetes 机密并在 helm 图表中使用该机密是可行的,但我们正在管理 Vault 上的所有机密,并且需要将 Vault 机密注入到 pod 中。

谢谢

postgresql sonarqube kubernetes hashicorp-vault kubernetes-secrets

12
推荐指数
2
解决办法
2万
查看次数

Kubernetes 是否允许并使用多个 imagePullSecrets 从私有注册表中拉取镜像?

我有一个私人注册表 (gitlab),我的 docker 图像存储在其中。对于部署,会创建一个密钥,允许 GKE 访问注册表。秘密被称为deploy-secret。密钥的登录信息在注册表中很短的时间后就会过期。

我还创建了第二个永久机密,允许访问 docker 注册表,名为permanent-secret.

是否可以用两个秘密指定 Pod?例如:

apiVersion: v1
kind: Pod
metadata:
  name: private-reg
spec:
  containers:
  - name: private-reg-container
    image: <your-private-image>
  imagePullSecrets:
  - name: deploy-secret
  - name: permanent-secret
Run Code Online (Sandbox Code Playgroud)

Kubernetes 在稍后尝试重新拉取镜像时,是否会识别出第一个秘密不起作用(不允许对私有注册表进行身份验证),然后成功回退到第二个秘密?

kubernetes google-kubernetes-engine kubernetes-secrets

11
推荐指数
1
解决办法
3756
查看次数

Kubernetes 入口控制器无法找到证书密钥

我正在设置一个包含入口控制器证书的机密,但在检查入口日志时出现以下错误

入口日志:

W0304 05:47:32.020497       7 controller.go:1153] Error getting SSL certificate "default/auth-tls": local SSL certificate default/auth-tls was not found. Using default certificate
W0304 05:47:32.020516       7 controller.go:1407] Error getting SSL certificate "default/auth-tls": local SSL certificate default/auth-tls was not found
I0304 05:47:32.114777       7 main.go:117] "successfully validated configuration, accepting" ingress="hello-kubernetes-ingress" namespace="default"
Run Code Online (Sandbox Code Playgroud)

秘密:

$ kubectl create secret tls auth-tls --cert key.pem --key out.key
$ kubectl describe secret auth-tls
Name:         auth-tls
Namespace:    default
Labels:       <none>
Annotations:  <none>

Type:  kubernetes.io/tls

Data
====
tls.crt:  3231 bytes
tls.key:  1732 …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-ingress kubernetes-secrets

11
推荐指数
1
解决办法
1万
查看次数

更改安装在投影卷上的kubernetes机密文件的默认文件所有者和组所有者

我是K8S的新手。我有一个yaml文件,该文件生成安装在投影卷上的kubernetes机密。执行后,我发现秘密文件(与秘密一起打包)将“ root”显示为文件所有者和组所有者。我想将文件所有者和组所有者更改为同一特定用户(例如450)。

我曾尝试从初始化容器中使用“ chown”(尝试过但失败了),但出现错误,提示“只读文件系统”,并且无法修改文件和组所有者。我不想在securitycontext下使用“ fsGroup”。我观察到使用fsGroup时,“ items”下的“ mode:”选项的行为无法预测。

有什么方法可以修改通过计划卷安装的kubernetes秘密文件的默认文件和组所有者吗?

我在下面提供示例代码。假设我想在以下示例中更改“密码”文件(在“ mysecret2”下)的文件和组所有者。如何实现呢?

apiVersion: v1
kind: Pod
metadata:
  name: volume-test
spec:
  containers:
  - name: container-test
    image: busybox
    volumeMounts:
    - name: all-in-one
      mountPath: "/projected-volume"
      readOnly: true
  volumes:
  - name: all-in-one
    projected:
      sources:
      - secret:
          name: mysecret
          items:
            - key: username
              path: username
      - secret:
          name: mysecret2
          items:
            - key: password
              path: password
              mode: 511
Run Code Online (Sandbox Code Playgroud)

kubernetes mounted-volumes kubernetes-secrets

10
推荐指数
2
解决办法
3055
查看次数

将多行 json 字符串插入 helm 模板以进行 base64 编码

我正在尝试将多行 json 字符串插入到 helm 模板中,以进行 Kubernetes 机密所需的 base64 编码。

目标:

  • helm 值被注入到 json 字符串中
  • 多行 json 字符串必须使用 base64 编码 b64enc

myfile1.json不起作用,但myfile2.json有效。我不想将整个 json 文件放在values.yaml.

apiVersion: v1
kind: Secret
metadata:
  name: {{ template "mychart.fullname" . }}
  labels:
    app: {{ template "mychart.name" . }}
    chart: {{ template "mychart.chart" . }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
type: Opaque
data:
  myfile.json: {{ |-
    {
      "item1": {
          "name": "{{ .Values.item1.name }}"
      },
      "item2": {
      }
    } | b64enc …
Run Code Online (Sandbox Code Playgroud)

json yaml kubernetes kubernetes-helm kubernetes-secrets

10
推荐指数
3
解决办法
2万
查看次数

如果我更新秘密,它是否会自动更新到卷安装的所有资源?

我有一个秘密,我将其作为部署中的卷安装。

如果我稍后更新机密值,新的更新值是否也会自动反映在我批量安装机密的部署 Pod 中?

笔记:

我按照这里的答案来更新秘密

当从文件生成密钥时,如何更新 Kubernetes 上的密钥?

提前致谢。

kubernetes kubernetes-security kubernetes-secrets

10
推荐指数
1
解决办法
7085
查看次数