meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
virtualizacion:kubernetes:comandos [2021/06/23 11:41] lcvirtualizacion:kubernetes:comandos [2023/01/18 14:37] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
 +{{tag>kubectl comandos kubernetes cluster pod nodo}}
 ===== Comandos de Kubectl ===== ===== Comandos de Kubectl =====
 https://kubernetes.io/docs/reference/kubectl/cheatsheet/ https://kubernetes.io/docs/reference/kubectl/cheatsheet/
  
-  * para conocer el estado del cluster kubernetes -> kubectl status  +  * para conocer el estado del cluster kubernetes ->** kubectl status ** 
-  * para saber la versión -> kubectl version +  * para saber la versión -> **kubectl version** 
-  * ver la configuración -> kubectl config view +  * ver la configuración -> **kubectl config view** 
-  kubectl run -> para crear y ejecuar un pod +  * Listado de todos los comandos que permite la API -> ** kubectl api-resoruce **
-  kubectl get pods -> Para ver los pods de nuestro cluster +
-  * kubectl api-resoruce -> Listado de todos los comandos que permite la API +
-  * kubectl cluster-info -> información del cluster +
-  kubectl get pods -n kube-system -> pods del sistema +
-  * kubectl get deploy,rs,service,pods -> es igual a un kubectl get all +
-  * kubectl api-resources -> información sobre la API de kubernetes +
-  kubectl get service  -> lista de los servicios  +
-  kubectl get deployments -> lista de deployments  +
-  * kubectl get namespaces -> lista de namespaces +
-  * kubectl delete service <nombre_servicio>-> eliminar servicio  <nombre_servicio> +
-  * kubectl delete deployment <nombre_del_deployment>-> eliminar deployment  <nombre_del_deployment> +
-  * kubectl apply -f deployment.yaml  -> aplicar el contenido del fichero deployment.yaml   +
-  * kubeadm token list  ->listar los tokens  +
-  * exponer un deployment -> kubectl expose deployment <mi-deployment> --port=80 --type=NodePort  +
-  * escalar a 3 replicas un deployment -> kubectl scale --replicas=3 deployment <mi-deployment> -n <mi-namespace> +
-  * crear un secret -> kubectl create secret generic mysql-pass --from-literal=password=<mi-contraseña> +
  
-==== Crear un  POD ==== +  * **kubectl get deploy,rs,service,pods **-> es igual a un kubectl get all 
-Hay dos formas de crear pods. De forma imperativa y de forma declarativa+  * **kubectl api-resources **-> información sobre la API de kubernetes 
 +  * **kubectl get service ** -> lista de los servicios  
 +  * ** kubectl get deployments ** -> lista de deployments  
 +  * ** kubectl get namespaces** -> lista de namespaces 
 +  * **kubectl delete service <nombre_servicio>**-> eliminar servicio  <nombre_servicio> 
 +  * **kubectl delete deployment <nombre_del_deployment>**-> eliminar deployment  <nombre_del_deployment> 
 +  * **kubectl apply -f deployment.yaml**  -> aplicar el contenido del fichero deployment.yaml   
 +  * **kubeadm token list**  ->listar los tokens  
 +  * exponer un deployment ->** kubectl expose deployment <mi-deployment> --port=80 --type=NodePort ** 
 +  * escalar a 3 replicas un deployment -> **kubectl scale --replicas=3 deployment <mi-deployment> -n <mi-namespace>** 
 +  crear un secret -> **kubectl create secret generic mysql-pass --from-literal=password=<mi-contraseña> **
  
-=== Imperativa ===+==== Comando para PODs ==== 
 +=== Crear un  POD === 
 +Hay dos formas de crear pods. De forma imperativa y de forma declarativa 
 +== Imperativa ==
 Ejecutamos el comando para crearlo  Ejecutamos el comando para crearlo 
 Hasta la versión 1.17  se debe usar la forma siguiente <sxh>kubectl run  --generator=run-pod/v1 <nombre pod> --image=<nombre imagen> created</sxh> Hasta la versión 1.17  se debe usar la forma siguiente <sxh>kubectl run  --generator=run-pod/v1 <nombre pod> --image=<nombre imagen> created</sxh>
Línea 41: Línea 39:
 <sxh> kubectl run --rm -ti podtest --image=nginx:alpine -- sh</sxh> <sxh> kubectl run --rm -ti podtest --image=nginx:alpine -- sh</sxh>
  
-=== Declarativa ===+== Declarativa ==
 Definimos un archivo en formato yaml para después aplicarlo Definimos un archivo en formato yaml para después aplicarlo
 <sxh>kubecttl apply -f nombre_fichero.yaml</sxh> <sxh>kubecttl apply -f nombre_fichero.yaml</sxh>
Línea 49: Línea 47:
 Listar los pods de todos los namespaces <sxh>kubectl get pods --all-namespaces -o wide</sxh> Listar los pods de todos los namespaces <sxh>kubectl get pods --all-namespaces -o wide</sxh>
 Listar los pods de un determinado namespace <sxh>kubectl get pods -n <nombre_namespaces></sxh> Listar los pods de un determinado namespace <sxh>kubectl get pods -n <nombre_namespaces></sxh>
 +Listar los pods del sistema   -> ** kubectl get pods -n kube-system ** 
 === Ver una descripción del pod === === Ver una descripción del pod ===
 Nos permite ver los eventos de un pod y su descripción Nos permite ver los eventos de un pod y su descripción
Línea 54: Línea 53:
 === Etiquetar un pod ==== === Etiquetar un pod ====
 <sxh>kubectl label pods <nombredelpod> app=mietiqueta</sxh> <sxh>kubectl label pods <nombredelpod> app=mietiqueta</sxh>
 +=== Recursos que consume un pod === 
 +<sxh>kubectl top pod <nombre pod></sxh>
 === Eliminar un pod === === Eliminar un pod ===
 <sxh>kubectl delete pod <nombredelpod> </sxh> <sxh>kubectl delete pod <nombredelpod> </sxh>
Línea 68: Línea 68:
 === Ver  los logs de un pod === === Ver  los logs de un pod ===
 <sxh>kubectl logs <nombredelpod></sxh> <sxh>kubectl logs <nombredelpod></sxh>
 +Si tenemos mas de un contenedor en el pod
 +<sxh>kubectl logs <nombredelpod> -c <nombredelcontenedor></sxh>
  
 si son pods del system , por ejemplo del driver kube-flannel <sxh>kubectl logs -p kube-flannel-ds-xcl6f -n kube-system</sxh> si son pods del system , por ejemplo del driver kube-flannel <sxh>kubectl logs -p kube-flannel-ds-xcl6f -n kube-system</sxh>
  
 +== Ejecutar un comando sobre un contenedor ==
 +<sxh>kubectl exec <nombredelpod> -c <nombredelcontenedor> <comando></sxh>
 +== Copiar un fichero a un contenedor ==
 +<sxh>kubectl cp /tmp/archivoprueba <nombredelpod>:/var/www/html -c <nombredelcontenedor></sxh>
 +
 +== Acceder a un puerto dentro de un pod ==
 +<sxh>kubectl port-forward --address 0.0.0.0 pod/<pod-name> <host-port>:<pod-port></sxh>
 ==== Trabajar con Cluster ==== ==== Trabajar con Cluster ====
   * Para obtener información sobre el cluster ->** kubectl cluster-info**   * Para obtener información sobre el cluster ->** kubectl cluster-info**
   * Información sobre los nodos -> **kubectl get nodes**   * Información sobre los nodos -> **kubectl get nodes**
   * descripción de un nodo -> **kubectl describe node <nombre del nodo>**   * descripción de un nodo -> **kubectl describe node <nombre del nodo>**
-  * ver el consumo de un nodo ->**kubectl top <nombre nodo>**+  * ver el consumo de un nodo ->**kubectl top node <nombre nodo>** 
 +  * Poner un nodo fuera de servicio (para actualizar por ejemplo) -> **kubectl uncordon <nombre nodo>** 
 +  * Para que quite todos los pods etc que ya existieran en este nodo -> **kubectl drain <nombre nodo>**  
 +  * Para volver a ponerlo como disponible -> **kubectl cordon <nombre nodo>**
  
  
Línea 81: Línea 93:
 ==== Referencias ==== ==== Referencias ====
   * https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands   * https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands
-  * +  * https://www.albertcoronado.com/2021/06/08/tutorial-kubernetes-i/