Añado documentación y corrijo estructura del README
This commit is contained in:
parent
48a81f6956
commit
ab11d514e3
296
README.md
296
README.md
@ -4,6 +4,8 @@
|
||||
- [Componentes](#componentes)
|
||||
- [Recursos Kubernetes](#recursos-kubernetes)
|
||||
- [Instalación kubctl y primeros pasos](#instalación-kubctl-y-primeros-pasos)
|
||||
- [Ayuda de kubeclt](#ayuda-de-kubeclt)
|
||||
- [Resultados de kubectl con colores: kubecolors](#resultados-de-kubectl-con-colores-kubecolors)
|
||||
- [kind](#kind)
|
||||
- [minikube](#minikube)
|
||||
- [MicroK8s](#microk8s)
|
||||
@ -15,9 +17,7 @@
|
||||
- [Utilizar complementos](#utilizar-complementos)
|
||||
- [Iniciando y deteniendo MicroK8s](#iniciando-y-deteniendo-microk8s)
|
||||
- [Digital Ocean](#digital-ocean)
|
||||
- [Resultados de kubectl con cololes: kubecolors](#resultados-de-kubectl-con-cololes-kubecolors)
|
||||
- [Resumen conexión de cluster Digital Ocean](#resumen-conexión-de-cluster-digital-ocean)
|
||||
- [Ayuda de kubeclt](#ayuda-de-kubeclt)
|
||||
- [Resumen conexión de cluster Digital Ocean](#resumen-conexión-de-cluster-digital-ocean)
|
||||
- [Ejemplo de un YAML para un pod básico de busybox](#ejemplo-de-un-yaml-para-un-pod-básico-de-busybox)
|
||||
- [Manifiestos de Pelado Nerd](#manifiestos-de-pelado-nerd)
|
||||
- [Manifiesto de POD](#manifiesto-de-pod)
|
||||
@ -164,6 +164,150 @@ kubectl version --client=true --output=yaml
|
||||
```
|
||||
Ponemos `--cliente=true` porque si no se intentaría conectar a un clúster kubernetes y trataría de descargar la versión kubernetes del clúster. Para un formato más legible controlamos la salida con `--output=yaml|json]`
|
||||
|
||||
### Ayuda de kubeclt
|
||||
|
||||
Podemos encontrar muy buena [documentación oficial](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands), pero también se puede ver la ayuda del cliente con
|
||||
```
|
||||
kubectl --help
|
||||
```
|
||||
![](img/ayuda.png)
|
||||
|
||||
> *Trascripción traducida de la ayuda de kubectl*
|
||||
```
|
||||
kubectl controla el gestor de clústeres de Kubernetes.
|
||||
|
||||
Encontrará más información en: https://kubernetes.io/docs/reference/kubectl/
|
||||
|
||||
Comandos básicos (principiante):
|
||||
create Crear un recurso desde un archivo o desde stdin
|
||||
expose Tomar un controlador de replicación, servicio, despliegue o pod y exponerlo como un nuevo servicio Kubernetes
|
||||
run Ejecutar una imagen particular en el cluster
|
||||
set Establecer características específicas en los objetos
|
||||
|
||||
Comandos básicos (Intermedio):
|
||||
explain Obtener la documentación de un recurso
|
||||
get Mostrar uno o varios recursos
|
||||
edit Editar un recurso en el servidor
|
||||
delete Eliminar recursos por nombres de archivo, stdin, recursos y nombres, o por recursos y selector de etiqueta
|
||||
|
||||
Comandos de despliegue:
|
||||
rollout Gestionar el despliegue de un recurso
|
||||
scale Establecer un nuevo tamaño para un despliegue, conjunto de réplicas o controlador de replicación
|
||||
autoscale Escala automáticamente un despliegue, un conjunto de réplicas, un conjunto con estado o un controlador de replicación
|
||||
|
||||
Comandos de gestión del clúster:
|
||||
certificate Modificar los recursos del certificado.
|
||||
cluster-info Mostrar información del cluster
|
||||
top Mostrar el uso de recursos (CPU/memoria)
|
||||
cordon Marcar un nodo como no programable
|
||||
uncordon Marcar el nodo como programable
|
||||
drain Drenar el nodo en preparación para el mantenimiento
|
||||
taint Actualizar los taints de uno o más nodos
|
||||
|
||||
Comandos de solución de problemas y depuración:
|
||||
describe Mostrar los detalles de un recurso específico o de un grupo de recursos
|
||||
logs Imprimir los registros de un contenedor en un pod
|
||||
attach Adjuntar a un contenedor en ejecución
|
||||
exec Ejecutar un comando en un contenedor
|
||||
port-forward Reenviar uno o más puertos locales a un pod
|
||||
proxy Ejecutar un proxy al servidor de la API de Kubernetes
|
||||
cp Copiar archivos y directorios hacia y desde los contenedores
|
||||
auth Inspeccionar la autorización
|
||||
debug Crear sesiones de depuración para la resolución de problemas de cargas de trabajo y nodos
|
||||
|
||||
Comandos avanzados:
|
||||
diff Comparar una versión en vivo contra una versión aplicada
|
||||
apply Aplicar una configuración a un recurso por nombre de archivo o stdin
|
||||
patch Actualizar los campos de un recurso
|
||||
replace Reemplazar un recurso por nombre de archivo o stdin
|
||||
wait Experimental: Esperar una condición específica en uno o varios recursos
|
||||
kustomize Construir un objetivo de kustomize a partir de un directorio o una URL.
|
||||
|
||||
Settings Commands:
|
||||
label Actualizar las etiquetas de un recurso
|
||||
annotate Actualiza las anotaciones de un recurso
|
||||
completion Imprimir el código de finalización del shell para el shell especificado (bash, zsh, fish o powershell)
|
||||
|
||||
Otros Comandos:
|
||||
alpha Comandos para funciones en alpha
|
||||
api-resources Imprime los recursos de la API soportados en el servidor
|
||||
api-versions Imprime las versiones de la API admitidas en el servidor, en forma de "grupo/versión"
|
||||
config Modifica los archivos kubeconfig
|
||||
plugin Proporciona utilidades para interactuar con los plugins
|
||||
version Imprime la información de la versión del cliente y del servidor
|
||||
|
||||
Uso:
|
||||
kubectl [flags] [options]
|
||||
|
||||
Utilice "kubectl <command> --help" para obtener más información sobre un determinado comando.
|
||||
Utilice "kubectl options" para obtener una lista de opciones globales de la línea de comandos (se aplica a todos los comandos).
|
||||
```
|
||||
|
||||
Una herramienta gráfica para kubectl es *[lens](https://k8slens.dev/)*., Muestra los contenedores de una manera clara y también tiene gráficas (memoria, CPU, etc).
|
||||
|
||||
Para mostrar los contextos que están en el fichero kubeconfig o el archivo de configuración de kubectl
|
||||
```
|
||||
kubectl config get-contexts
|
||||
```
|
||||
|
||||
Para mostrar los namespaces:
|
||||
```
|
||||
kubectl get ns
|
||||
```
|
||||
Con el clúster recien creado aparecerán los namespaces por defecto que vienen con cualquier clúster.
|
||||
|
||||
![](img/get-ns.png)
|
||||
|
||||
Para ver los pods que están corriendo
|
||||
```
|
||||
kubectl -n kube-system get pods
|
||||
```
|
||||
![](img/kube-system-n-get-pods.png)
|
||||
|
||||
`kube-system` es un namespace que utiliza kubernetes para correr los pods de sistema.
|
||||
|
||||
Tomando un ejemplo, `do-node-agent-9rt5c` es un agente que corre DigitalOcean en sus nodos para hacer algún tipo de recolección de datos o monitoreo. El final alfanumérico es porque ha sido generado por el template de pods *deployment*, todos los pods tendrá ese hash en el nombre.
|
||||
|
||||
La segunda columna indica el número de pods activos y los que existen. El estado, está claro, después están las columnas de los reinicios efectuados y la de el tiempo que lleva arrancado.
|
||||
|
||||
Con la opción `-o wide` mostrará un poco más de información.
|
||||
|
||||
![](img/kube-system-n-get-pods-o-wide.png)
|
||||
|
||||
Vamos a probar lo que dicen de kubernetes de que si se borra un pod se creará uno nuevo.
|
||||
```
|
||||
kubectl -n kube-system delete pod do-node-agent-9rt5c
|
||||
```
|
||||
Inmediatamente muestro los pods y se puede ver como lo está creando de nuevo.
|
||||
![](img/delete-pod-agent.png)
|
||||
|
||||
El pod es nuevo, tiene otro hash. Así que esto asegura que siempre estén el mismo número de pods.
|
||||
|
||||
### Resultados de kubectl con colores: kubecolors
|
||||
Para verlo con colores se puede instalar el plugin de kubectl que se llama *[kubecolors](https://github.com/hidetatz/kubecolor)*
|
||||
|
||||
*En ubuntu:*
|
||||
```
|
||||
wget http://archive.ubuntu.com/ubuntu/pool/universe/k/kubecolor/kubecolor_0.0.20-1_amd64.deb
|
||||
```
|
||||
```
|
||||
sudo dpkg -i kubecolor_0.0.20-1_amd64.deb
|
||||
```
|
||||
```
|
||||
sudo apt update && sudo apt install kubecolor -y
|
||||
|
||||
```
|
||||
```
|
||||
kubecolor --context=[tu_contexto] get pods -o json
|
||||
```
|
||||
```
|
||||
kubecolor --context=do-ams3-k8s-1-24-4-do-0-ams3-..... get pods -o json
|
||||
```
|
||||
```
|
||||
alias kubectl="kubecolor"
|
||||
```
|
||||
![](img/get-nodes-color.png)
|
||||
|
||||
### kind
|
||||
|
||||
En **Linux**, podemos instalar [kind](https://kind.sigs.k8s.io/)
|
||||
@ -305,32 +449,7 @@ kubectl get nodes
|
||||
|
||||
![](img/get-nodes.png)
|
||||
|
||||
### Resultados de kubectl con cololes: kubecolors
|
||||
Para verlo con colores se puede instalar el plugin de kubectl que se llama *[kubecolors](https://github.com/hidetatz/kubecolor)*
|
||||
|
||||
*En ubuntu:*
|
||||
```
|
||||
wget http://archive.ubuntu.com/ubuntu/pool/universe/k/kubecolor/kubecolor_0.0.20-1_amd64.deb
|
||||
```
|
||||
```
|
||||
sudo dpkg -i kubecolor_0.0.20-1_amd64.deb
|
||||
```
|
||||
```
|
||||
sudo apt update && sudo apt install kubecolor -y
|
||||
|
||||
```
|
||||
```
|
||||
kubecolor --context=[tu_contexto] get pods -o json
|
||||
```
|
||||
```
|
||||
kubecolor --context=do-ams3-k8s-1-24-4-do-0-ams3-..... get pods -o json
|
||||
```
|
||||
```
|
||||
alias kubectl="kubecolor"
|
||||
```
|
||||
![](img/get-nodes-color.png)
|
||||
|
||||
### Resumen conexión de cluster Digital Ocean
|
||||
#### Resumen conexión de cluster Digital Ocean
|
||||
Para que tenga el color y todo
|
||||
```
|
||||
export KUBECONFIG=~/Downloads/k8s-1-20.... get nodes
|
||||
@ -355,125 +474,6 @@ alias kubectl="kubecolor"
|
||||
kubectl get nodes
|
||||
```
|
||||
|
||||
### Ayuda de kubeclt
|
||||
Se puede ver la ayuda del cliente con
|
||||
```
|
||||
kubectl --help
|
||||
```
|
||||
![](img/ayuda.png)
|
||||
|
||||
> *Trascripción traducida de la ayuda de kubectl*
|
||||
```
|
||||
kubectl controla el gestor de clústeres de Kubernetes.
|
||||
|
||||
Encontrará más información en: https://kubernetes.io/docs/reference/kubectl/
|
||||
|
||||
Comandos básicos (principiante):
|
||||
create Crear un recurso desde un archivo o desde stdin
|
||||
expose Tomar un controlador de replicación, servicio, despliegue o pod y exponerlo como un nuevo servicio Kubernetes
|
||||
run Ejecutar una imagen particular en el cluster
|
||||
set Establecer características específicas en los objetos
|
||||
|
||||
Comandos básicos (Intermedio):
|
||||
explain Obtener la documentación de un recurso
|
||||
get Mostrar uno o varios recursos
|
||||
edit Editar un recurso en el servidor
|
||||
delete Eliminar recursos por nombres de archivo, stdin, recursos y nombres, o por recursos y selector de etiqueta
|
||||
|
||||
Comandos de despliegue:
|
||||
rollout Gestionar el despliegue de un recurso
|
||||
scale Establecer un nuevo tamaño para un despliegue, conjunto de réplicas o controlador de replicación
|
||||
autoscale Escala automáticamente un despliegue, un conjunto de réplicas, un conjunto con estado o un controlador de replicación
|
||||
|
||||
Comandos de gestión del clúster:
|
||||
certificate Modificar los recursos del certificado.
|
||||
cluster-info Mostrar información del cluster
|
||||
top Mostrar el uso de recursos (CPU/memoria)
|
||||
cordon Marcar un nodo como no programable
|
||||
uncordon Marcar el nodo como programable
|
||||
drain Drenar el nodo en preparación para el mantenimiento
|
||||
taint Actualizar los taints de uno o más nodos
|
||||
|
||||
Comandos de solución de problemas y depuración:
|
||||
describe Mostrar los detalles de un recurso específico o de un grupo de recursos
|
||||
logs Imprimir los registros de un contenedor en un pod
|
||||
attach Adjuntar a un contenedor en ejecución
|
||||
exec Ejecutar un comando en un contenedor
|
||||
port-forward Reenviar uno o más puertos locales a un pod
|
||||
proxy Ejecutar un proxy al servidor de la API de Kubernetes
|
||||
cp Copiar archivos y directorios hacia y desde los contenedores
|
||||
auth Inspeccionar la autorización
|
||||
debug Crear sesiones de depuración para la resolución de problemas de cargas de trabajo y nodos
|
||||
|
||||
Comandos avanzados:
|
||||
diff Comparar una versión en vivo contra una versión aplicada
|
||||
apply Aplicar una configuración a un recurso por nombre de archivo o stdin
|
||||
patch Actualizar los campos de un recurso
|
||||
replace Reemplazar un recurso por nombre de archivo o stdin
|
||||
wait Experimental: Esperar una condición específica en uno o varios recursos
|
||||
kustomize Construir un objetivo de kustomize a partir de un directorio o una URL.
|
||||
|
||||
Settings Commands:
|
||||
label Actualizar las etiquetas de un recurso
|
||||
annotate Actualiza las anotaciones de un recurso
|
||||
completion Imprimir el código de finalización del shell para el shell especificado (bash, zsh, fish o powershell)
|
||||
|
||||
Otros Comandos:
|
||||
alpha Comandos para funciones en alpha
|
||||
api-resources Imprime los recursos de la API soportados en el servidor
|
||||
api-versions Imprime las versiones de la API admitidas en el servidor, en forma de "grupo/versión"
|
||||
config Modifica los archivos kubeconfig
|
||||
plugin Proporciona utilidades para interactuar con los plugins
|
||||
version Imprime la información de la versión del cliente y del servidor
|
||||
|
||||
Uso:
|
||||
kubectl [flags] [options]
|
||||
|
||||
Utilice "kubectl <command> --help" para obtener más información sobre un determinado comando.
|
||||
Utilice "kubectl options" para obtener una lista de opciones globales de la línea de comandos (se aplica a todos los comandos).
|
||||
```
|
||||
|
||||
Una herramienta gráfica para kubectl es *[lens](https://k8slens.dev/)*., Muestra los contenedores de una manera clara y también tiene gráficas (memoria, CPU, etc).
|
||||
|
||||
Para mostrar los contextos que están en el fichero kubeconfig o el archivo de configuración de kubectl
|
||||
```
|
||||
kubectl config get-contexts
|
||||
```
|
||||
|
||||
Para mostrar los namespaces:
|
||||
```
|
||||
kubectl get ns
|
||||
```
|
||||
Con el clúster recien creado aparecerán los namespaces por defecto que vienen con cualquier clúster.
|
||||
|
||||
![](img/get-ns.png)
|
||||
|
||||
Para ver los pods que están corriendo
|
||||
```
|
||||
kubectl -n kube-system get pods
|
||||
```
|
||||
![](img/kube-system-n-get-pods.png)
|
||||
|
||||
`kube-system` es un namespace que utiliza kubernetes para correr los pods de sistema.
|
||||
|
||||
Tomando un ejemplo, `do-node-agent-9rt5c` es un agente que corre DigitalOcean en sus nodos para hacer algún tipo de recolección de datos o monitoreo. El final alfanumérico es porque ha sido generado por el template de pods *deployment*, todos los pods tendrá ese hash en el nombre.
|
||||
|
||||
La segunda columna indica el número de pods activos y los que existen. El estado, está claro, después están las columnas de los reinicios efectuados y la de el tiempo que lleva arrancado.
|
||||
|
||||
Con la opción `-o wide` mostrará un poco más de información.
|
||||
|
||||
![](img/kube-system-n-get-pods-o-wide.png)
|
||||
|
||||
Vamos a probar lo que dicen de kubernetes de que si se borra un pod se creará uno nuevo.
|
||||
```
|
||||
kubectl -n kube-system delete pod do-node-agent-9rt5c
|
||||
```
|
||||
Inmediatamente muestro los pods y se puede ver como lo está creando de nuevo.
|
||||
![](img/delete-pod-agent.png)
|
||||
|
||||
El pod es nuevo, tiene otro hash. Así que esto asegura que siempre estén el mismo número de pods.
|
||||
|
||||
|
||||
---
|
||||
## Ejemplo de un YAML para un pod básico de busybox
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user