Introducción
Kubectl es un conjunto de comandos para controlar los clústeres de Kubernetes. Cada comando de Kubernetes tiene un punto final de API y el objetivo principal de kubectl es realizar solicitudes HTTP a la API.
Si bien es posible emitir solicitudes HTTP usted mismo (por ejemplo, usando curl), kubectl está diseñado para hacer que este proceso sea más cómodo y directo.
Este tutorial cubrirá todas las operaciones comunes de kubectl y brindará ejemplos para familiarizarse con la sintaxis.
Lista de comandos de kubectl
Usa el kubectl
comandos enumerados a continuación como una referencia rápida cuando se trabaja con Kubernetes.
Listado de recursos
Para enumerar uno o más pods, controladores de replicación, servicios o conjuntos de daemons, use el kubectl get
comando.
Genere una lista de texto sin formato de todos los espacios de nombres:
kubectl get namespaces
Mostrar una lista de texto sin formato de todos los pods:
kubectl get pods
Genere una lista detallada de texto sin formato de todos los pods, que contenga información como el nombre del nodo:
kubectl get pods -o wide
Mostrar una lista de todos los pods que se ejecutan en un servidor de nodo en particular:
kubectl get pods --field-selector=spec.nodeName=[server-name]
Enumere un controlador de replicación específico en texto sin formato:
kubectl get replicationcontroller [replication-controller-name]
Genere una lista de texto sin formato de todos los controladores y servicios de replicación:
kubectl get replicationcontroller,services
Mostrar una lista de texto sin formato de todos los conjuntos de demonios:
kubectl get daemonset
Crear un recurso
Cree un recurso como un servicio, una implementación, un trabajo o un espacio de nombres mediante kubectl create
comando.
Por ejemplo, para crear un nuevo espacio de nombres, escriba:
kubectl create namespace [namespace-name]
Cree un recurso desde un archivo JSON o YAML:
kubectl create -f [filename]
Aplicar y actualizar un recurso
Para aplicar o actualizar un recurso, use kubectl apply
dominio. La fuente en esta operación puede ser un archivo o la entrada estándar (stdin ).
Cree un nuevo servicio con la definición contenida en un archivo [service-name].yaml:
kubectl apply -f [service-name].yaml
Cree un nuevo controlador de replicación con la definición contenida en un archivo [controller-name].yaml:
kubectl apply -f [controller-name].yaml
Cree los objetos definidos en cualquier archivo .yaml, .yml o .json en un directorio:
kubectl apply -f [directory-name]
Puede actualizar un recurso configurándolo en un editor de texto, usando kubectl edit
dominio. Este comando es una combinación de kubectl get
y kubectl apply
.
Por ejemplo, para editar un servicio, escriba:
kubectl edit svc/[service-name]
Este comando abre el archivo en su editor predeterminado. Para usar un editor diferente, especifíquelo delante del comando:
KUBE_EDITOR=”[editor-name]” kubectl edit svc/[service-name]
Mostrar el estado de los recursos
Para mostrar el estado de cualquier cantidad de recursos en detalle, utilice kubectl describe
dominio. De forma predeterminada, la salida también enumera los recursos no inicializados.
Ver detalles sobre un nodo en particular:
kubectl describe nodes [node-name]
Ver detalles sobre un pod en particular:
kubectl describe pods [pod-name]
Mostrar detalles sobre un pod cuyo nombre y tipo se enumeran en pod.json :
kubectl describe -f pod.json
Vea detalles sobre todos los pods administrados por un controlador de replicación específico:
kubectl describe pods [replication-controller-name]
Mostrar detalles sobre todos los pods:
kubectl describe pods
Eliminación de recursos
Para eliminar recursos de un archivo o stdin, use kubectl delete
comando.
Elimina un pod con el nombre y el tipo que se enumeran en pod.yaml:
kubectl delete -f pod.yaml
Eliminar todos los pods y servicios con una etiqueta específica:
kubectl delete pods,services -l [label-key]=[label-value]
Eliminar todos los pods (incluidos los pods no inicializados):
kubectl delete pods --all
Ejecución de un comando
Utilice kubectl exec
para emitir comandos en un contenedor o para abrir un shell en un contenedor.
Reciba el resultado de un comando que se ejecuta en el primer contenedor de un pod:
kubectl exec [pod-name] -- [command]
Obtenga el resultado de un comando que se ejecuta en un contenedor específico en un pod:
kubectl exec [pod-name] -c [container-name] -- [command]
Ejecute /bin/bash de una vaina específica. La salida recibida proviene del primer contenedor:
kubectl exec -ti [pod-name] -- /bin/bash
Modificación de archivos kubeconfig
kubectl config
le permite ver y modificar archivos kubeconfig. Este comando suele ir seguido de otro subcomando.
Mostrar el contexto actual:
kubectl config current-context
Establezca una entrada de clúster en kubeconfig:
kubectl config set-cluster [cluster-name] --server=[server-name]
Desarmar una entrada en kubeconfig:
kubectl config unset [property-name]
Impresión de registros de contenedores
Para imprimir registros de contenedores en un pod, utilice los kubectl logs
comando.
Imprimir registros:
kubectl logs [pod-name]
Para transmitir registros desde un pod, use:
kubectl logs -f [pod-name]
Nombres cortos para tipos de recursos
Algunas de las kubectl
los comandos enumerados anteriormente pueden parecer inconvenientes debido a su longitud. Por esta razón, nombres de tipos de recursos kubectl comunes también tienen versiones más cortas.
Considere el comando mencionado anteriormente:
kubectl create namespace [namespace-name]
También puede ejecutar este comando como:
kubectl create ns [namespace-name]
Aquí está la lista completa de nombres cortos de kubectl:
Nombre corto | Nombre largo |
---|---|
csr | certificatesigningrequests |
cs | componentstatuses |
cm | configmaps |
ds | daemonsets |
deploy | deployments |
ep | endpoints |
ev | events |
hpa | horizontalpodautoscalers |
ing | ingresses |
limits | limits |
ns | namespaces |
no | nodes |
pvc | persistentvolumeclaims |
pv | persistentvolumes |
po | pods |
pdb | poddisruptionbudgets |
psp | podsecuritypolicies |
rs | replicasets |
rc | replicationcontrollers |
quota | resourcequotas |
sa | serviceaccounts |
svc | services |