Kubernetes - Commandes Kubectl

Kubectlcontrôle le cluster Kubernetes. C'est l'un des composants clés de Kubernetes qui s'exécute sur le poste de travail sur n'importe quelle machine lorsque la configuration est terminée. Il a la capacité de gérer les nœuds du cluster.

KubectlLes commandes sont utilisées pour interagir et gérer les objets Kubernetes et le cluster. Dans ce chapitre, nous discuterons de quelques commandes utilisées dans Kubernetes via kubectl.

kubectl annotate - Il met à jour l'annotation sur une ressource.

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

Par exemple,

kubectl annotate pods tomcat description = 'my frontend'

kubectl api-versions - Il imprime les versions prises en charge de l'API sur le cluster.

$ kubectl api-version;

kubectl apply - Il a la capacité de configurer une ressource par fichier ou stdin.

$ kubectl apply –f <filename>

kubectl attach - Cela attache des choses au conteneur en cours d'exécution.

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

kubectl autoscale - Ceci est utilisé pour mettre à l'échelle automatiquement les pods qui sont définis tels que le déploiement, le jeu de répliques, le contrôleur de réplication.

$ 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 - Il affiche les informations sur le cluster.

$ kubectl cluster-info

kubectl cluster-info dump - Il décharge les informations pertinentes concernant le cluster pour le débogage et le diagnostic.

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

kubectl config - Modifie le fichier kubeconfig.

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

kubectl config current-context - Il affiche le contexte actuel.

$ kubectl config current-context
#deploys the current context

kubectl config delete-cluster - Supprime le cluster spécifié de kubeconfig.

$ kubectl config delete-cluster <Cluster Name>

kubectl config delete-context - Supprime un contexte spécifié de kubeconfig.

$ kubectl config delete-context <Context Name>

kubectl config get-clusters - Affiche le cluster défini dans kubeconfig.

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

kubectl config get-contexts - Décrit un ou plusieurs contextes.

$ kubectl config get-context <Context Name>

kubectl config set-cluster - Définit l'entrée de cluster dans Kubernetes.

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

kubectl config set-context - Définit une entrée de contexte dans le point d'entrée 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 - Définit une entrée utilisateur dans kubeconfig.

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

kubectl config set - Définit une valeur individuelle dans le fichier kubeconfig.

$ kubectl config set PROPERTY_NAME PROPERTY_VALUE

kubectl config unset - Il annule un composant spécifique dans kubectl.

$ kubectl config unset PROPERTY_NAME PROPERTY_VALUE

kubectl config use-context - Définit le contexte actuel dans le fichier 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 - Copiez des fichiers et des répertoires vers et depuis des conteneurs.

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

kubectl create- Pour créer une ressource par nom de fichier ou stdin. Pour ce faire, les formats JSON ou YAML sont acceptés.

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

De la même manière, nous pouvons créer plusieurs éléments répertoriés en utilisant le create commande avec kubectl.

  • deployment
  • namespace
  • quota
  • registre docker secret
  • secret
  • générique secret
  • secret tls
  • serviceaccount
  • clusterip de service
  • équilibreur de charge de service
  • noeud de serviceport

kubectl delete - Supprime les ressources par nom de fichier, stdin, ressource et noms.

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

kubectl describe- Décrit une ressource particulière dans kubernetes. Affiche les détails de la ressource ou d'un groupe de ressources.

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

kubectl drain- Ceci est utilisé pour drainer un nœud à des fins de maintenance. Il prépare le nœud pour la maintenance. Cela marquera le nœud comme indisponible afin de ne pas lui attribuer un nouveau conteneur qui sera créé.

$ kubectl drain tomcat –force

kubectl edit- Il est utilisé pour terminer les ressources sur le serveur. Cela permet d'éditer directement une ressource que l'on peut recevoir via l'outil en ligne de commande.

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

kubectl exec - Cela permet d'exécuter une commande dans le conteneur.

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

kubectl expose- Ceci est utilisé pour exposer les objets Kubernetes tels que le pod, le contrôleur de réplication et le service en tant que nouveau service Kubernetes. Cela a la capacité de l'exposer via un conteneur en cours d'exécution ou à partir d'unyaml fichier.

$ 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 - Cette commande est capable de récupérer des données sur le cluster concernant les ressources 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]

Par exemple,

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

kubectl logs- Ils sont utilisés pour récupérer les logs du conteneur dans un pod. L'impression des journaux peut être la définition du nom du conteneur dans le pod. Si le POD n'a qu'un seul conteneur, il n'est pas nécessaire de définir son nom.

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

kubectl port-forward - Ils sont utilisés pour transmettre un ou plusieurs ports locaux aux 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 - Capable de remplacer une ressource par un nom de fichier ou stdin.

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

kubectl rolling-update- Effectue une mise à jour continue sur un contrôleur de réplication. Remplace le contrôleur de réplication spécifié par un nouveau contrôleur de réplication en mettant à jour un POD à la fois.

$ 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 - Il est capable de gérer le déploiement du déploiement.

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

En dehors de ce qui précède, nous pouvons effectuer plusieurs tâches à l'aide du déploiement, telles que -

  • historique du déploiement
  • pause de déploiement
  • reprise du déploiement
  • état du déploiement
  • déroulement annuler

kubectl run - La commande Exécuter a la capacité d'exécuter une image sur le cluster 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 - Il mettra à l'échelle la taille des déploiements Kubernetes, du ReplicaSet, du Replication Controller ou du travail.

$ 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 - Il met à jour l'image d'un modèle 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- Il est utilisé pour définir le contenu de la ressource. Il met à jour les ressources / limites sur l'objet avec le modèle 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- Il affiche l'utilisation du processeur / mémoire / stockage. La commande top vous permet de voir la consommation de ressources pour les nœuds.

$ kubectl top node [node Name]

La même commande peut également être utilisée avec un pod.