标签: kubernetes-secrets

将所有机密作为环境变量插入kubernetes部署

我有许多秘密要传递到k8部署中,这变得非常冗长,下面是从秘密中传递redis秘密的一个示例redis-secrets

- name: REDIS_HOST
  valueFrom:
    secretKeyRef:
      name: redis-secrets
      key: REDIS_HOST
- name: REDIS_PASSWORD
  valueFrom:
    secretKeyRef:
      name: redis-secrets
      key: REDIS_PASSWORD
- name: REDIS_PORT
  valueFrom:
    secretKeyRef:
      name: redis-secrets
      key: REDIS_PORT
Run Code Online (Sandbox Code Playgroud)

是否可以将所有机密传递redis-secrets到部署中,而这些机密的密钥是env变量密钥?

kubernetes google-kubernetes-engine kubernetes-secrets

4
推荐指数
1
解决办法
1017
查看次数

HashiCorp Vault填充kubernetes秘密

最近,我了解了HashiCorp Vault及其结合Kubernetes的用法。我发现了两个非常棒的博客文章,其中介绍了如何使用init容器和共享卷(post1post2)使用HashiCorp Vault快速生成凭据。Kubernetes还提供了一种使用Kubernetes机密处理凭据的好方法,它还使人们能够通过环境变量读取凭据。因此,它为秘密存储提供了很好的抽象。

我的问题是,还可以使用HashiCorp Vault 填充凭据填充Kubernetes Secrets,如何实现?

kubernetes hashicorp-vault kubernetes-secrets

4
推荐指数
1
解决办法
1202
查看次数

未安装为文件路径的 kubernetes 机密项目

我有以下 yaml:

        volumeMounts:
        - name: app-secret
          mountPath: /app
          readOnly: true
      volumes:
      - name: app-secret
        secret:
          secretName: app-secret
          items:
          - key: app-secret.json
            path: appsettings.secret.json
Run Code Online (Sandbox Code Playgroud)

我希望秘密已安装,/app/appsettings.secret.json但事实并非如此。我不知道它安装在哪里,容器崩溃了,我没有机会kubectl exec进入容器检查安装机密的位置。我的猜测是它会清除/app. 任何建议和见解表示赞赏。

mount-point app-secret kubernetes kubernetes-secrets

4
推荐指数
1
解决办法
3142
查看次数

Kubernetes:如何在 configMap 中设置布尔类型变量

我想在 configMap(或秘密)中设置一个布尔变量:

apiVersion: v1
kind: ConfigMap
metadata:
  name: env-config
  namespace: mlo-stage
data:
  webpack_dev_server: false
Run Code Online (Sandbox Code Playgroud)

但是当我应用它时,我收到以下错误:

The request is invalid: patch: Invalid value: "map[data:map[webpack_dev_server:false] metadata:map[annotations:map[kubectl.kubernetes.io/last-applied-configuration:{ blah blah blah}]]]": unrecognized type: string
Run Code Online (Sandbox Code Playgroud)

我试图将值更改为 Off/No/False,但都存在同样的问题。

好像data map中key的值只能是字符串,我试过把值改成“false”,yaml文件没问题,但是后来变量变成了字符串而不是boolean。

如果我想传递一个布尔值作为值应该怎么做?

kubernetes kubernetes-deployment kubernetes-secrets configmap

4
推荐指数
1
解决办法
4710
查看次数

为所有名称空间创建秘密

当我创建秘密并Rancher选择它应该在所有命名空间中可见时,它会创建一个不带namespace标签且带有 的秘密namespaceId: null

没有的话如何创造这样的秘密Rancher?当我使用 时kubectl,它总是将其绑定到命令上下文中的命名空间。

kubernetes rancher kubectl kubernetes-secrets

4
推荐指数
1
解决办法
4320
查看次数

如何在application.yml中使用quarkus.kubernetes-config.secrets.enabled?

我正在努力使用 application.yml 读取机密。

当我做:

quarkus:
    application:
        name: pi-quarkus-fund-persistence-service
    kubernetes-config:
        enabled: true
        fail-on-missing-config: false
        config-maps: pi-quarkus-fund-persistence-service-configmap
        secrets: pi-quarkus-fund-persistence-service-secrets
            enabled: true
Run Code Online (Sandbox Code Playgroud)

构建失败并显示:

Failed to build quarkus application: mapping values are not allowed here
    in 'reader', line 16, column 20:
                enabled: true
                        ^
Run Code Online (Sandbox Code Playgroud)

什么时候:

quarkus:
    application:
        name: pi-quarkus-fund-persistence-service
    kubernetes-config:
        enabled: true
        secrets.enabled: true
        fail-on-missing-config: false
        config-maps: pi-quarkus-fund-persistence-service-configmap
        secrets: pi-quarkus-fund-persistence-service-secrets
Run Code Online (Sandbox Code Playgroud)

构建失败并显示:

Unrecognized configuration key "quarkus.kubernetes-config."secrets.enabled"" was provided; it will be ignored; verify that the dependency extension for this configuration is set or you did …
Run Code Online (Sandbox Code Playgroud)

client runtime kubernetes kubernetes-secrets quarkus

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

如何在kubernetes中创建秘密文件

我有 yaml,我用它来使用下面的命令创建一个秘密。

kubectl create secret generic -n <NAMESPACE> gitlab-openid-connect --from-file=provider=provider.yaml
Run Code Online (Sandbox Code Playgroud)

下边是Provider.yaml

name: 'openid_connect'
label: 'OpenID SSO Login'
args:
  name: 'openid_connect'
  scope: ['openid','profile','email']
  response_type: 'code'
  issuer: 'https://keycloak.example.com/auth/realms/myrealm'
  discovery: true
  client_auth_method: 'basic'
  client_options:
    identifier: 'gitlab.example.com-oidc'
    secret: '<keycloak clientID secret>'
    redirect_uri: 'https://gitlab.example.com/users/auth/openid_connect/callback'
Run Code Online (Sandbox Code Playgroud)

我想将其转换为 Secret yaml 文件,以便我可以运行kubectl apply -f provider.yaml

我尝试创建以下文件但它不起作用,provider-new.yaml

apiVersion: v1
kind: Secret
type: Opaque
metadata:
  name: 'openid_connect'
  label: 'OpenID SSO Login'
data:
  scope: ['openid','profile','email']
  response_type: 'code'
  issuer: 'url'
  discovery: true
  client_auth_method: 'basic'
  client_options:
    identifier: 'identifier'
    secret: 'secret-key' …
Run Code Online (Sandbox Code Playgroud)

yaml kubernetes kubernetes-secrets

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

我可以使用 .pfx 证书通过 kubectl 命令创建 kubernetes 密钥吗?

下面的命令给出了一个错误:error: flag key is required

kubectl create secret tls k8-secret2 \
    -n ingress-tls-test1 \
    --cert ingress-tls-test1.pfx
Run Code Online (Sandbox Code Playgroud)

我可以使用 .crt 和 .key 文件创建秘密:

kubectl create secret tls aks-ingress-tls \
    --namespace ingress-basic \
    --key aks-ingress-tls.key \
    --cert aks-ingress-tls.crt
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-secrets

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

无法拉取镜像存储库不存在或可能需要“docker 登录”:

我在启动 Pod 时收到此错误

Failed to pull image "docker-username/docker-private-repository:latest": rpc error: code = Unknown desc = Error response from daemon: pull access denied for docker-username/docker-private-repository, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
Run Code Online (Sandbox Code Playgroud)

我的设置如下:

使用命令行创建秘密服务

kubectl create secret docker-registry docker-keys --docker-username=docker-username --docker-password=password --docker-email=docker-email@gmail.com --docker-server=https://index.docker.io/v1
Run Code Online (Sandbox Code Playgroud)

它会在机密内生成以下数据

kubectl get secret docker-keys -o json | jq '.data | map_values(@base64d)'
{
  ".dockerconfigjson": "{\"auths\":{\"https://index.docker.io/v1\":{\"username\":\"docker-username\",\"password\":\"password\",\"email\":\"docker-email@gmail.com\",\"auth\":\"base64encodedtoken\"}}}"
}

Run Code Online (Sandbox Code Playgroud)

然后在部署中我使用docker-keys秘密

apiVersion: apps/v1
kind: Deployment
metadata:
  name: docker-private-repository
  labels:
    app: …
Run Code Online (Sandbox Code Playgroud)

kubernetes docker-registry minikube kubernetes-secrets

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

连接 configMap 和 Secret 中的值

我有一个 configMap 文件:

apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    owner: testdb
  name: testdb-configmap 
data:
  host: postgres
  port: "5432" 

Run Code Online (Sandbox Code Playgroud)

和一个秘密文件:

aapiVersion: v1
kind: Secret
type: Opaque
metadata:
  labels:
    owner: testdb
  name: testdb-secret
  namespace: test
data:
  user: dGVzdA==
  pwd: dGVzdA==
Run Code Online (Sandbox Code Playgroud)

我想构建一个环境变量,CONNECTION_STRING如下所示:

env:
 - name: CONNECTION_STRING
   value: "Host=<host-from-configmap>;Username=<user-from-secret>;Password=<password-from-secret>;Port=<port-from-configmap>;Pooling=False;"
Run Code Online (Sandbox Code Playgroud)

我想知道这是否可能,如果可以,那么如何?我也考虑过使用.tpl(命名模板),但找不到方法。


笔记

由于我无权访问图像,因此CONNECTION_STRING我必须以这种方式构建它。这些配置映射和秘密文件也将保持这样。


kubernetes kubernetes-helm kubernetes-secrets configmap

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