Saltar al contenido

Crear secretos ssh key archivo en kubernetes

Deseamos proponerte la mejor respuesta que descubrimos online. Nuestro deseo es que te resulte de mucha utilidad y si quieres compartir algo que nos pueda ayudar a perfeccionar nuestra información hazlo con libertad.

Solución:

Los documentos oficiales de Kubernetes para secretos cubren este caso de uso exacto.

Para crear el secreto, utilice:

$ kubectl create secret generic my-secret --from-file=ssh-privatekey=/path/to/.ssh/id_rsa --from-file=ssh-publickey=/path/to/.ssh/id_rsa.pub

Para montar el secreto en sus contenedores, use la siguiente configuración de Pod:


  "kind": "Pod",
  "apiVersion": "v1",
  "metadata": 
    "name": "secret-test-pod",
    "labels": 
      "name": "secret-test"
    
  ,
  "spec": 
    "volumes": [
      
        "name": "secret-volume",
        "secret": 
          "secretName": "my-secret"
        
      
    ],
    "containers": [
      
        "name": "ssh-test-container",
        "image": "mySshImage",
        "volumeMounts": [
          
            "name": "secret-volume",
            "readOnly": true,
            "mountPath": "/etc/secret-volume"
          
        ]
      
    ]
  

Kubernetes en realidad no tiene una forma de controlar los permisos de archivos para un secreto a partir de ahora, pero una solicitud de extracción reciente agregó soporte para cambiar la ruta de los secretos. Este soporte se agregó con 1.3 según este comentario

Estos son los problemas relacionados con los permisos de Github:

  • https://github.com/kubernetes/kubernetes/issues/4789
  • https://github.com/kubernetes/kubernetes/issues/28317

Desde kubernetes-1.4, las cosas se simplificaron. Esta es mi opinión sobre cómo mejorar el instructivo oficial de Kubernetes.

Para crear el secreto, utilice:

kubectl create secret generic ssh-keys --from-file=id_rsa=/path/to/.ssh/id_rsa --from-file=id_rsa.pub=/path/to/.ssh/id_rsa.pub

Para montar el secreto en sus contenedores, use la siguiente configuración de Pod:

apiVersion: v1
kind: Pod
metadata:
  name: secret-test-pod
  labels:
    name: secret-test
spec:
  volumes:
  - name: ssh-keys-v
    secret:
      secretName: ssh-keys
      defaultMode: 0600 
  containers:
  - name: ssh-test-container
    image: mySshImage
    volumeMounts:
    - name: ssh-keys-v
      readOnly: true
      # container will see /root/.ssh/id_rsa as usual:
      mountPath: "/root/.ssh"

También quisquilloso: el id_rsa.pub casi nunca se usa, no me molestaría en ocultarlo hasta que sea necesario.

Recuerda que puedes optar por la opción de interpretar si te fue preciso.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *