Kubernetes: comandos de Kubectl

Kubectlcontrola el clúster de Kubernetes. Es uno de los componentes clave de Kubernetes que se ejecuta en la estación de trabajo de cualquier máquina cuando se realiza la configuración. Tiene la capacidad de administrar los nodos del clúster.

KubectlLos comandos se utilizan para interactuar y administrar los objetos de Kubernetes y el clúster. En este capítulo, analizaremos algunos comandos utilizados en Kubernetes a través de kubectl.

kubectl annotate - Actualiza la anotación de un recurso.

$kubectl annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ...
KEY_N = VAL_N [--resource-version = version]

Por ejemplo,

kubectl annotate pods tomcat description = 'my frontend'

kubectl api-versions - Imprime las versiones compatibles de API en el clúster.

$ kubectl api-version;

kubectl apply - Tiene la capacidad de configurar un recurso por archivo o stdin.

$ kubectl apply –f <filename>

kubectl attach - Esto adjunta cosas al contenedor en ejecución.

$ kubectl attach <pod> –c <container>
$ kubectl attach 123456-7890 -c tomcat-conatiner

kubectl autoscale - Se utiliza para escalar automáticamente los pods que se definen como Implementación, conjunto de réplicas, Controlador de réplica.

$ kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min = MINPODS] --
max = MAXPODS [--cpu-percent = CPU] [flags]
$ kubectl autoscale deployment foo --min = 2 --max = 10

kubectl cluster-info - Muestra la información del clúster.

$ kubectl cluster-info

kubectl cluster-info dump - Descarga información relevante sobre el clúster para depuración y diagnóstico.

$ kubectl cluster-info dump
$ kubectl cluster-info dump --output-directory = /path/to/cluster-state

kubectl config - Modifica el archivo kubeconfig.

$ kubectl config <SUBCOMMAD>
$ kubectl config –-kubeconfig <String of File name>

kubectl config current-context - Muestra el contexto actual.

$ kubectl config current-context
#deploys the current context

kubectl config delete-cluster - Elimina el clúster especificado de kubeconfig.

$ kubectl config delete-cluster <Cluster Name>

kubectl config delete-context - Elimina un contexto específico de kubeconfig.

$ kubectl config delete-context <Context Name>

kubectl config get-clusters - Muestra el clúster definido en kubeconfig.

$ kubectl config get-cluster
$ kubectl config get-cluster <Cluser Name>

kubectl config get-contexts - Describe uno o varios contextos.

$ kubectl config get-context <Context Name>

kubectl config set-cluster : Establece la entrada del clúster en Kubernetes.

$ kubectl config set-cluster NAME [--server = server] [--certificateauthority =
path/to/certificate/authority] [--insecure-skip-tls-verify = true]

kubectl config set-context - Establece una entrada de contexto en el punto de entrada de kubernetes.

$ kubectl config set-context NAME [--cluster = cluster_nickname] [--
user = user_nickname] [--namespace = namespace]
$ kubectl config set-context prod –user = vipin-mishra

kubectl config set-credentials - Establece una entrada de usuario en kubeconfig.

$ kubectl config set-credentials cluster-admin --username = vipin --
password = uXFGweU9l35qcif

kubectl config set - Establece un valor individual en el archivo kubeconfig.

$ kubectl config set PROPERTY_NAME PROPERTY_VALUE

kubectl config unset - Desarma un componente específico en kubectl.

$ kubectl config unset PROPERTY_NAME PROPERTY_VALUE

kubectl config use-context - Establece el contexto actual en el archivo kubectl.

$ kubectl config use-context <Context Name>

kubectl config view

$ kubectl config view
$ kubectl config view –o jsonpath='{.users[?(@.name == "e2e")].user.password}'

kubectl cp - Copie archivos y directorios desde y hacia contenedores.

$ kubectl cp <Files from source> <Files to Destinatiion>
$ kubectl cp /tmp/foo <some-pod>:/tmp/bar -c <specific-container>

kubectl create- Para crear recursos por nombre de archivo o stdin. Para ello, se aceptan formatos JSON o YAML.

$ kubectl create –f <File Name>
$ cat <file name> | kubectl create –f -

De la misma manera, podemos crear varias cosas como se enumeran usando el create comando junto con kubectl.

  • deployment
  • namespace
  • quota
  • Docker-registro secreto
  • secret
  • secreto genérico
  • tls secretos
  • serviceaccount
  • servicio clusterip
  • equilibrador de carga de servicio
  • servicio nodeport

kubectl delete - Elimina recursos por nombre de archivo, stdin, recurso y nombres.

$ kubectl delete –f ([-f FILENAME] | TYPE [(NAME | -l label | --all)])

kubectl describe- Describe cualquier recurso en particular en kubernetes. Muestra detalles de un recurso o un grupo de recursos.

$ kubectl describe <type> <type name>
$ kubectl describe pod tomcat

kubectl drain- Se utiliza para drenar un nodo con fines de mantenimiento. Prepara el nodo para el mantenimiento. Esto marcará el nodo como no disponible para que no se le asigne un nuevo contenedor que se creará.

$ kubectl drain tomcat –force

kubectl edit- Se utiliza para finalizar los recursos en el servidor. Esto permite editar directamente un recurso que se puede recibir a través de la herramienta de línea de comandos.

$ kubectl edit <Resource/Name | File Name)
Ex.
$ kubectl edit rc/tomcat

kubectl exec - Esto ayuda a ejecutar un comando en el contenedor.

$ kubectl exec POD <-c CONTAINER > -- COMMAND < args...>
$ kubectl exec tomcat 123-5-456 date

kubectl expose- Esto se usa para exponer los objetos de Kubernetes como el pod, el controlador de replicación y el servicio como un nuevo servicio de Kubernetes. Esto tiene la capacidad de exponerlo a través de un contenedor en ejecución o desde unyaml archivo.

$ kubectl expose (-f FILENAME | TYPE NAME) [--port=port] [--protocol = TCP|UDP]
[--target-port = number-or-name] [--name = name] [--external-ip = external-ip-ofservice]
[--type = type]
$ kubectl expose rc tomcat –-port=80 –target-port = 30000
$ kubectl expose –f tomcat.yaml –port = 80 –target-port =

kubectl get - Este comando es capaz de obtener datos en el clúster sobre los recursos de Kubernetes.

$ kubectl get [(-o|--output=)json|yaml|wide|custom-columns=...|custom-columnsfile=...|
go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...]
(TYPE [NAME | -l label] | TYPE/NAME ...) [flags]

Por ejemplo,

$ kubectl get pod <pod name>
$ kubectl get service <Service name>

kubectl logs- Se utilizan para meter los troncos del contenedor en una vaina. La impresión de los registros puede significar la definición del nombre del contenedor en el pod. Si el POD solo tiene un contenedor, no es necesario definir su nombre.

$ kubectl logs [-f] [-p] POD [-c CONTAINER]
Example
$ kubectl logs tomcat.
$ kubectl logs –p –c tomcat.8

kubectl port-forward - Se utilizan para reenviar uno o más puertos locales a los pods.

$ kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT
[...[LOCAL_PORT_N:]REMOTE_PORT_N]
$ kubectl port-forward tomcat 3000 4000
$ kubectl port-forward tomcat 3000:5000

kubectl replace - Capaz de reemplazar un recurso por nombre de archivo o stdin.

$ kubectl replace -f FILENAME
$ kubectl replace –f tomcat.yml
$ cat tomcat.yml | kubectl replace –f -

kubectl rolling-update- Realiza una actualización continua en un controlador de replicación. Reemplaza el controlador de replicación especificado por un nuevo controlador de replicación actualizando un POD a la vez.

$ kubectl rolling-update OLD_CONTROLLER_NAME ([NEW_CONTROLLER_NAME] --
image = NEW_CONTAINER_IMAGE | -f NEW_CONTROLLER_SPEC)
$ kubectl rolling-update frontend-v1 –f freontend-v2.yaml

kubectl rollout - Es capaz de gestionar el despliegue de la implementación.

$ Kubectl rollout <Sub Command>
$ kubectl rollout undo deployment/tomcat

Aparte de lo anterior, podemos realizar varias tareas utilizando el lanzamiento, como:

  • historial de despliegue
  • pausa de lanzamiento
  • reanudar el lanzamiento
  • estado de lanzamiento
  • despliegue deshacer

kubectl run - El comando Ejecutar tiene la capacidad de ejecutar una imagen en el clúster de Kubernetes.

$ kubectl run NAME --image = image [--env = "key = value"] [--port = port] [--
replicas = replicas] [--dry-run = bool] [--overrides = inline-json] [--command] --
[COMMAND] [args...]
$ kubectl run tomcat --image = tomcat:7.0
$ kubectl run tomcat –-image = tomcat:7.0 –port = 5000

kubectl scale - Escalará el tamaño de las implementaciones de Kubernetes, ReplicaSet, Replication Controller o trabajo.

$ kubectl scale [--resource-version = version] [--current-replicas = count] --
replicas = COUNT (-f FILENAME | TYPE NAME )
$ kubectl scale –-replica = 3 rs/tomcat
$ kubectl scale –replica = 3 tomcat.yaml

kubectl set image - Actualiza la imagen de una plantilla de pod.

$ kubectl set image (-f FILENAME | TYPE NAME)
CONTAINER_NAME_1 = CONTAINER_IMAGE_1 ... CONTAINER_NAME_N = CONTAINER_IMAGE_N
$ kubectl set image deployment/tomcat busybox = busybox ngnix = ngnix:1.9.1
$ kubectl set image deployments, rc tomcat = tomcat6.0 --all

kubectl set resources- Se utiliza para establecer el contenido del recurso. Actualiza recursos / límites en el objeto con la plantilla de pod.

$ kubectl set resources (-f FILENAME | TYPE NAME) ([--limits = LIMITS & --
requests = REQUESTS]
$ kubectl set resources deployment tomcat -c = tomcat --
limits = cpu = 200m,memory = 512Mi

kubectl top node- Muestra el uso de CPU / Memoria / Almacenamiento. El comando superior le permite ver el consumo de recursos de los nodos.

$ kubectl top node [node Name]

El mismo comando también se puede utilizar con un pod.