Inicio › Herramientas para desarrolladores › Generador de Secrets de Kubernetes

Generador de Secrets de Kubernetes

Introduce pares clave/valor o pega un archivo .env y obtén un Secret de Kubernetes listo para aplicar: los valores se codifican en base64 por ti, los nombres y las claves se validan y se muestra el comando kubectl equivalente. Cambia a Decodificar para leer los valores de un Secret existente.

Última actualización:

Datos
Etiquetas, anotaciones y opciones
Escribir los valores como

    Todo se codifica y decodifica en esta pestaña del navegador. Recuerda: base64 es una codificación, no un cifrado, así que trata la salida como un secreto.

    Publicidad
    Publicidad

    Cómo usar Generador de Secrets de Kubernetes

    1. Ponle nombre al Secret y elige un namespace y un tipo. Opaque es el tipo de uso general para la configuración de apps.
    2. Añade los datos como filas de clave/valor, pega un archivo .env o añade un archivo, como un certificado o una configuración JSON, como clave.
    3. Elige data o stringData: data guarda valores en base64; stringData te permite mantener texto legible que el servidor de la API codifica al escribir.
    4. Corrige las notas en rojo, luego copia o descarga el YAML y ejecuta kubectl apply -f, o usa la pestaña kubectl.
    5. ¿Necesitas leer un Secret? Abre Decodificar Secret y pega la salida de kubectl get secret NAME -o yaml.

    Tipos de Secret de Kubernetes

    typeClaves obligatoriasUso típicoAtajo de kubectl
    OpaqueCualquieraContraseñas de apps, tokens de API, cadenas de conexióncreate secret generic
    kubernetes.io/dockerconfigjson.dockerconfigjsonDescargar imágenes de un registro privado mediante imagePullSecretscreate secret docker-registry
    kubernetes.io/tlstls.crt, tls.keyCertificados HTTPS para un Ingresscreate secret tls
    kubernetes.io/basic-authusername y/o passwordCredenciales para autenticación básicacreate secret generic --type=…
    kubernetes.io/ssh-authssh-privatekeyGit por SSH, claves de desplieguecreate secret generic --type=…

    Usar el Secret en un pod

    Carga cada clave como variable de entorno:

    containers:
      - name: app
        image: example/app:1.4.2
        envFrom:
          - secretRef:
              name: app-credentials

    O móntalo como archivos, un archivo por clave, lo que va bien para certificados y archivos de configuración y recoge las actualizaciones sin reiniciar el pod:

        volumeMounts:
          - name: creds
            mountPath: /etc/creds
            readOnly: true
    volumes:
      - name: creds
        secret:
          secretName: app-credentials

    Consejos para manejar Secrets de forma segura

    • No subas el YAML de un Secret a Git. Cualquiera puede decodificar base64. Usa una herramienta como Sealed Secrets, SOPS o un operador de secretos externos para flujos GitOps.
    • Cuidado con los saltos de línea finales. echo "pass" | base64 también codifica un salto de línea; usa echo -n o printf. Esta herramienta codifica exactamente lo que escribes.
    • Limita el acceso con RBAC: get y list sobre Secrets revelan su contenido, y también el permiso para crear pods en el namespace.
    • Genera valores seguros con el Generador de contraseñas, y crea el Deployment que usa el Secret con el Generador de YAML de Kubernetes.

    Preguntas frecuentes

    ¿Por qué los valores de un Secret de Kubernetes se codifican en base64?

    El campo data de un Secret contiene bytes arbitrarios, como certificados o almacenes de claves, y base64 permite que esos bytes viajen de forma segura dentro de YAML y JSON. Es solo una codificación, no un cifrado: cualquiera que pueda leer el Secret puede decodificarlo, así que protege el acceso con RBAC y considera el cifrado en reposo para etcd.

    ¿Cuál es la diferencia entre data y stringData?

    data espera valores codificados en base64. stringData acepta texto plano y es una comodidad de solo escritura: el servidor de la API codifica los valores y los combina en data al guardar el Secret, y stringData prevalece si la misma clave está en ambos. Cuando vuelves a leer el Secret, siempre obtienes data en base64.

    ¿Cómo creo un Secret a partir de un archivo .env?

    Pega el archivo en la vista Pegar .env de esta herramienta y descarga el YAML, o ejecuta kubectl create secret generic NAME --from-env-file=.env. Cada línea KEY=value se convierte en una clave del Secret. Después puedes cargar todas las claves en un contenedor como variables de entorno con envFrom y secretRef.

    ¿Cómo decodifico un Secret de Kubernetes?

    Pega la salida de kubectl get secret NAME -o yaml en la pestaña Decodificar Secret para ver cada valor. En la línea de comandos puedes decodificar una clave con kubectl get secret NAME -o jsonpath='{.data.KEY}' canalizado a base64 --decode.

    ¿Qué nombres y claves están permitidos?

    El nombre del Secret debe ser un subdominio DNS: letras minúsculas, dígitos, guiones y puntos, hasta 253 caracteres. Las claves de datos pueden contener letras, dígitos, guiones, guiones bajos y puntos. El namespace es una etiqueta DNS de como máximo 63 caracteres.

    ¿Qué tamaño puede tener un Secret?

    Cada Secret está limitado a 1 MiB de datos, así que los archivos grandes deben ir en un volumen o en almacenamiento de objetos. Además, muchos Secrets pequeños son mejores que uno enorme, porque cada uno se envía a todos los nodos que ejecutan un pod que lo usa.

    ¿Qué hace immutable: true?

    Un Secret inmutable no puede cambiar sus datos después de crearse; en su lugar, se elimina y se vuelve a crear. Esto protege contra ediciones accidentales y permite que el kubelet deje de vigilarlo, lo que reduce la carga del servidor de la API en clústeres grandes.

    ¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?

    Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.

    Herramientas relacionadas

    Ver todas las de Generadores de código →