Skip to content

Instantly share code, notes, and snippets.

@AngelCruzL
Forked from Klerith/K8s.README.md
Created June 25, 2024 05:45
Show Gist options
  • Save AngelCruzL/1c357a768085af3a1d8850d2de6b6b1a to your computer and use it in GitHub Desktop.
Save AngelCruzL/1c357a768085af3a1d8850d2de6b6b1a to your computer and use it in GitHub Desktop.

Revisions

  1. @Klerith Klerith revised this gist Mar 20, 2024. 1 changed file with 17 additions and 2 deletions.
    19 changes: 17 additions & 2 deletions K8s.README.md
    Original file line number Diff line number Diff line change
    @@ -22,7 +22,7 @@ kubectl create deployment <nombre> --image=<registro/url/imagen> --dry-run=clien
    # Crear service
    ```
    kubectl create service clusterip <nombre> --tcp=<8888> --dry-run=client -o yaml > service.yml
    kubectl create service nodeport <nombre> --tcp=<3000> --dry-run=client -o yaml > service.yml
    **kubectl create service nodeport <nombre> --tcp=<3000> --dry-run=client -o yaml > service.yml**
    ```
    * **clusterip**: solo se puede acceder desde dentro del cluster
    * **nodeport**: se puede acceder desde fuera del cluster
    @@ -65,4 +65,19 @@ kubectl create secret docker-registry gcr-json-key --docker-server=SERVIDOR-DE-G
    2. Path del secreto para que use la llave:
    ```
    kubectl patch serviceaccounts default -p '{ "imagePullSecrets": [{ "name":"gcr-json-key" }] }'
    ```
    ```


    ## Exportar y aplicar configuraciones con archivos (secrets en este caso)
    * Para exportar los archivos de configuración

    ```
    kubectl get secret <nombre> -o yaml > <nombre>.yml
    ```

    * Aplicar la configuración basado en el archivo
    ```
    kubectl create -f <nombre>.yml
    ```


  2. @Klerith Klerith revised this gist Mar 19, 2024. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion K8s.README.md
    Original file line number Diff line number Diff line change
    @@ -24,7 +24,7 @@ kubectl create deployment <nombre> --image=<registro/url/imagen> --dry-run=clien
    kubectl create service clusterip <nombre> --tcp=<8888> --dry-run=client -o yaml > service.yml
    kubectl create service nodeport <nombre> --tcp=<3000> --dry-run=client -o yaml > service.yml
    ```
    * **clusterid**: solo se puede acceder desde dentro del cluster
    * **clusterip**: solo se puede acceder desde dentro del cluster
    * **nodeport**: se puede acceder desde fuera del cluster


  3. @Klerith Klerith revised this gist Mar 19, 2024. 1 changed file with 13 additions and 0 deletions.
    13 changes: 13 additions & 0 deletions K8s.README.md
    Original file line number Diff line number Diff line change
    @@ -53,3 +53,16 @@ Recordar que los secrets están en `base64`, por lo que si queremos editar un se
    8. Editar nuevamente el archivo **i** y dejar la línea en su posición
    9. Presionar **esc** y luego **:wq** para guardar y salir



    ## Configurar secretos de Google Cloud para obtener las imágenes

    1. Crear secreto:
    ```
    kubectl create secret docker-registry gcr-json-key --docker-server=SERVIDOR-DE-GOOGLE-docker.pkg.dev --docker-username=_json_key --docker-password="$(cat 'PATH/DE/Tienda Microservices IAM.json')" [email protected]
    ```

    2. Path del secreto para que use la llave:
    ```
    kubectl patch serviceaccounts default -p '{ "imagePullSecrets": [{ "name":"gcr-json-key" }] }'
    ```
  4. @Klerith Klerith revised this gist Mar 19, 2024. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion K8s.README.md
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,6 @@
    # Helm commands

    * Crear configuración `helm create <nombre> .`
    * Crear configuración `helm create <nombre>`
    * Aplicar configuración inicial: `helm install <nombre> .`
    * Aplicar actualizaciones: `helm upgrade <nombre> .`

  5. @Klerith Klerith created this gist Mar 19, 2024.
    55 changes: 55 additions & 0 deletions K8s.README.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,55 @@
    # Helm commands

    * Crear configuración `helm create <nombre> .`
    * Aplicar configuración inicial: `helm install <nombre> .`
    * Aplicar actualizaciones: `helm upgrade <nombre> .`

    # K8s commands

    * Obtener pods, deployments y services: `kubectl get <pods | deployments | services>`
    * Revisar todos pods: `kubectl describe pods`
    * Revisar un pod: `kubectl describe pod <nombre>`
    * Eliminar pod: `kubectl delete pod <nombre>`
    * Revisar logs: `kubectl logs <nombre>`



    # Crear deployment:
    ```
    kubectl create deployment <nombre> --image=<registro/url/imagen> --dry-run=client -o yaml > deployment.yml
    ```

    # Crear service
    ```
    kubectl create service clusterip <nombre> --tcp=<8888> --dry-run=client -o yaml > service.yml
    kubectl create service nodeport <nombre> --tcp=<3000> --dry-run=client -o yaml > service.yml
    ```
    * **clusterid**: solo se puede acceder desde dentro del cluster
    * **nodeport**: se puede acceder desde fuera del cluster


    # Secrets

    * Crear secretos, varios a la vez, o uno por uno.
    ```
    kubectl create secret generic <nombre> --from-literal=key=value
    kubectl create secret generic secret1 --from-literal=key1=value1 --from-literal=key2=value2
    ```
    * Obtener los secretos `kubectl get secrets`
    * Ver el contenido de un secreto `kubectl get secrets <nombre> -o yaml`

    ## Editar un secret
    La forma más fácil es borrarlo y volverlo a crear pero si es más de un secret, no vamos a querer perder los demás.
    Recordar que los secrets están en `base64`, por lo que si queremos editar un secret, debemos hacerlo en `base64`.

    1. Editar el secret con `kubectl edit secret <nombre>` esto invocará el editor
    2. Cambiar el valor (se puede usar un editor en [línea para convertir a base64](https://www.rapidtables.com/web/tools/base64-decode.html))
    3. Tocar **i** para insertar líneas y editar el archivo
    4. Poner el valor a decodificar en una nueva línea
    5. Presionar **esc** y luego `:. ! base64 -D` para decodificar el valor
    6. Presionar **i** para insertar o editar el valor
    7. Presionar **esc** y luego `:. ! base64` para codificar el valor
    8. Editar nuevamente el archivo **i** y dejar la línea en su posición
    9. Presionar **esc** y luego **:wq** para guardar y salir