Difference between revisions of "Kubectl"

From wikieduonline
Jump to navigation Jump to search
 
(115 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<code>kubectl</code> is a command line interface for running commands against [[Kubernetes]] clusters.<ref>https://kubernetes.io/docs/reference/kubectl/overview/</ref>
+
{{lowercase}}
 +
<code>[[wikipedia:kubectl]]</code> is a command line interface for running commands against [[Kubernetes]] clusters.<ref>https://kubernetes.io/docs/reference/kubectl/overview/</ref>
  
To install in MacOS execute: <code>brew install kubernetes-cli</code>
+
== Installation ==
 +
* To install in [[macOS]] execute: <code>[[brew install kubernetes-cli]]</code>
 +
* [[Kubectl in Amazon Linux]]
 +
* [[Ubuntu kubectl installation]]
 +
* <code>[[~/.kube/config]]</code>
 +
* [[scoop install kubectl]]
  
== kubectl info commands ==
+
== Commands ==
* Verify running [[Pod]]s:
+
* <code>[[kubectl --help]]</code>
** <code>kubectl get pods</code>
+
* <code>[[kubectl api-versions]]</code>
** <code>kubectl get pod PODNAME</code>
+
* <code>[[kubectl apply]]</code>
** <code>kubectl get pod PODNAME -n MY_NAMESPACE</code>
+
* <code>[[kubectl auth]]</code>
** <code>kubectl get pod PODNAME -n MY_NAMESPACE --watch</code>
+
* <code>[[kubectl create]]</code>
* Fetch metrics for PODNAME pod <code>kubectl top pod PODNAME</code>
+
* <code>[[kubectl completion]]</code>
 +
* <code>[[kubectl config]]</code>: <code>[[kubectl config use-context|config-use-context]]</code>
 +
* <code>[[kubectl cp]]</code>
 +
* <code>[[kubectl debug]]</code> (since [[v1.18]], March 2020)
 +
* <code>[[kubectl delete]]</code>
 +
* <code>[[kubectl describe]]</code>
 +
* <code>[[kubectl diff]]</code> (since [[v1.18]], March 2020)
 +
* <code>[[kubectl edit]]</code>
 +
* <code>[[kubectl explain]]</code>
 +
* <code>[[kubectl expose]]</code>
 +
* <code>[[kubectl exec]]</code>
 +
* <code>[[kubectl get]] [[kubectl get all|all]] | [[kubectl get nodes|nodes]] | [[kubectl get pvc|pvc]] | [[kubectl get pods|pods]] | [[kubectl get replicaset|replicaset]] .../... </code>  
 +
* <code>[[kubectl label]]</code>
 +
* <code>[[kubectl logs]]</code>
 +
* <code>[[kubectl patch]]</code>
 +
* <code>[[kubectl port-forward]]</code>
 +
* <code>[[kubectl proxy]]</code>
 +
* <code>[[kubectl plugin]]</code>
 +
* <code>[[kubectl replace]]</code>
 +
* <code>[[kubectl rolling-update]]</code>
 +
* <code>[[kubectl rollout]]</code>
 +
* <code>[[kubectl set]]</code>
 +
* <code>[[kubectl top]]</code>
 +
* <code>[[kubectl virt]]</code>
 +
 
 +
== [[Kubectl information commands]] ==
 +
{{kubectl information TOC}}
  
 
== kubectl operation commands ==
 
== kubectl operation commands ==
* Connect to a Pod: <code>kubectl exec -it YOUR_POD_NANE -- /bin/bash</code>
+
* <code>[[kubectl create]]</code>
 
+
* <code>[[kubectl delete pod]]</code>
== kubectl delete/destroy commands ==
+
* <code>[[kubectl delete namespace]] MY_NAMESPACE</code>
* <code>kubectl delete namespace MY_NAMESPACE</code>
+
* Connect to a Pod: <code>[[kubectl exec]] -it YOUR_POD_NANE -- /bin/bash</code>
  
 
== kubectl command reference ==
 
== kubectl command reference ==
 
The following table includes short descriptions and the general syntax for all of the <code>kubectl</code> operations:<ref>https://kubernetes.io/docs/reference/kubectl/overview/</ref>
 
The following table includes short descriptions and the general syntax for all of the <code>kubectl</code> operations:<ref>https://kubernetes.io/docs/reference/kubectl/overview/</ref>
  
*'''Apply''' <code>kubectl apply -f FILENAME [flags]</code>. Apply a configuration change to a resource from a file or stdin. Allows to [[Create and configure a basic Pod|create a Pod]].
+
*'''Apply''' <code>[[kubectl apply]] -f FILENAME [flags]</code>. Apply a configuration change to a resource from a file or stdin. Allows to [[Create and configure a basic Pod|create a Pod]].
  
 
*'''Attach''' <code>kubectl attach POD -c CONTAINER [-i] [-t] [flags]</code>:Attach to a running container either to view the output stream or interact with the container (stdin)
 
*'''Attach''' <code>kubectl attach POD -c CONTAINER [-i] [-t] [flags]</code>:Attach to a running container either to view the output stream or interact with the container (stdin)
Line 27: Line 59:
  
  
*'''Cluster Info''' <code>kubectl cluster-info [flags]</code> :Display endpoint information about the master and services in the cluster
+
*'''Cluster Info''' <code>[[kubectl cluster-info]] [flags]</code> :Display endpoint information about the master and services in the cluster
  
*'''Create''' <code>kubectl create -f FILENAME [flags]</code>: Create one or more resources from a file or stdin
+
*'''Create''' <code>[[kubectl create]] -f FILENAME [flags]</code>: Create one or more resources from a file or stdin
 
** <code>kubectl create namespace myexamplenamespace</code>
 
** <code>kubectl create namespace myexamplenamespace</code>
 
** <code>kubectl create sa my_new_user</code> (Create service account for your my_new_user)
 
** <code>kubectl create sa my_new_user</code> (Create service account for your my_new_user)
Line 36: Line 68:
  
 
*'''Config''': <code>kubectl config .../...</code>
 
*'''Config''': <code>kubectl config .../...</code>
** <code>kubectl config view</code>
+
** <code>[[kubectl config view]]</code>
  
 
*'''Delete''' <code>kubectl delete (-f FILENAME \| TYPE [NAME \| /NAME \| -l label \| --all]) [flags]</code> :Delete resources  
 
*'''Delete''' <code>kubectl delete (-f FILENAME \| TYPE [NAME \| /NAME \| -l label \| --all]) [flags]</code> :Delete resources  
Line 53: Line 85:
 
** <code>kubectl logs -l app=elasticsearch</code> (using labels: -l)
 
** <code>kubectl logs -l app=elasticsearch</code> (using labels: -l)
  
* '''Get''':  
+
* '''[[kubectl get|Get]]''':  
** <code>kubectl get apiservices</code>
 
** <code>kubectl get nodes</code>
 
** <code>kubectl get pods</code>
 
** <code>kubectl get pod PODNAME -n NAMESPACE -o yaml | kubectl replace --force -f -</code><ref>https://stackoverflow.com/a/45046340/9269906</ref>
 
  
* '''Replace''': <code>kubectl replace --force -f yml_file_describing_pod.yml</code>
+
* '''Replace''': <code>[[kubectl replace]] --force -f yml_file_describing_pod.yml</code>
  
* '''Proxy''': <code>kubectl proxy --port=8080</code><ref>https://kubernetes.io/docs/tasks/access-kubernetes-api/http-proxy-access-api/</ref>
+
* '''Proxy''': <code>[[kubectl proxy]] --port=8080</code><ref>https://kubernetes.io/docs/tasks/access-kubernetes-api/http-proxy-access-api/</ref>
  
 
* '''Rolling-update:''' <code>[[kubectl rolling-update]]</code>
 
* '''Rolling-update:''' <code>[[kubectl rolling-update]]</code>
  
*'''Run''' <code>kubectl run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [flags]</code>: Run a specified image on the cluster.
+
*'''Run''' <code>[[kubectl run]] NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [flags]</code>: Run a specified image on the cluster.
  
*'''Scale''': <code>kubectl scale deployment YOUR_DEPLOYMENT_NAME</code>
+
*'''Scale''': <code>[[kubectl scale]] deployment YOUR_DEPLOYMENT_NAME</code>
  
 
*'''Stop''' <code>kubectl stop</code>
 
*'''Stop''' <code>kubectl stop</code>
  
 
*'''Version''' <code>kubectl version [--client] [flags]</code>: Display the Kubernetes version running on the client and server.
 
*'''Version''' <code>kubectl version [--client] [flags]</code>: Display the Kubernetes version running on the client and server.
 +
 +
== Activities ==
 +
* [[Create and configure a basic Pod]] (<code>[[kubectl apply]]</code>)
 +
* Read official <code>kubectl</code> cheat sheet: https://kubernetes.io/docs/reference/kubectl/cheatsheet/
 +
* Check examples: https://www.codegrepper.com/code-examples/shell/kubectl+describe+ingress+output+yaml
 +
* https://stackoverflow.com/questions/tagged/kubectl?tab=Votes
 +
* [[Kubernetes quiz]]
 +
* [[Merge multiple kubeconfigs]]: <code>[[~/.kube/config]]s</code> into one using <code>[[kubectl konfig merge]]</code>
 +
 +
== Related ==
 +
* [[Krew]]
 +
* <code>[[kops]]</code>
 +
* [[Kots]] kubectl plugin
 +
* [[K9s]]
 +
* <code>[[aws eks]] --region $([[terraform output -raw]] region) [[update-kubeconfig]] --name $([[terraform output -raw]] cluster_name)</code>
 +
* <code>[[kubectl-convert]]</code>
 +
* <code>[[kubeadm]]</code>
 +
* <code>[[Error: flags cannot be place before plugin name]]</code>
 +
* <code>[[kubectl.kubernetes.io]]</code>
 +
* [[kubectl (alias)]]
 +
* [[Terraform: kubectl provider]]
 +
* <code>[[kubectl --request-timeout]]</code>
  
 
== See also ==
 
== See also ==
* {{k8s}}
+
* {{Kubernetes components}}
 
+
* {{kubectl}}
[[Category: Software development]]
 
[[Category:Server administration]]
 
  
 +
[[Category: Kubernetes]]
 +
[[Category: kubectl]]
  
 
{{CC license}}
 
{{CC license}}
 
Source: https://en.wikiversity.org/wiki/DevOps/Kubernetes/kubectl
 
Source: https://en.wikiversity.org/wiki/DevOps/Kubernetes/kubectl

Latest revision as of 16:02, 10 July 2024

wikipedia:kubectl is a command line interface for running commands against Kubernetes clusters.[1]

Installation[edit]

Commands[edit]

Kubectl information commands[edit]

kubectl operation commands[edit]

kubectl command reference[edit]

The following table includes short descriptions and the general syntax for all of the kubectl operations:[2]

  • Apply kubectl apply -f FILENAME [flags]. Apply a configuration change to a resource from a file or stdin. Allows to create a Pod.
  • Attach kubectl attach POD -c CONTAINER [-i] [-t] [flags]:Attach to a running container either to view the output stream or interact with the container (stdin)
  • Auto Scale kubectl autoscale (-f FILENAME \| TYPE NAME \| TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu-percent=CPU] [flags]: Automatically scale the set of pods that are managed by a replication controller


  • Cluster Info kubectl cluster-info [flags] :Display endpoint information about the master and services in the cluster
  • Create kubectl create -f FILENAME [flags]: Create one or more resources from a file or stdin
    • kubectl create namespace myexamplenamespace
    • kubectl create sa my_new_user (Create service account for your my_new_user)
    • kubectl create -f mypod.yaml


  • Delete kubectl delete (-f FILENAME \| TYPE [NAME \| /NAME \| -l label \| --all]) [flags] :Delete resources
    • kubectl delete --all namespaces
  • Describe kubectl describe (-f FILENAME \| TYPE [NAME_PREFIX \| /NAME \| -l label]) [flags] : Detailed state of one or more resources.
    • kubectl describe pod MyPodName
    • kubectl describe pods
    • kubectl describe replicaset MyReplicaName
  • Edit kubectl edit (-f FILENAME \| TYPE NAME \| TYPE/NAME) [flags] : Edit and update the definition of one or more resources on the server by using the default editor.
  • Execute kubectl exec POD [-c CONTAINER] [-i] [-t] [flags] [-- COMMAND [args...]]: Execute a command against a container in a pod
  • Logs kubectl logs POD [-c CONTAINER] [--follow] [flags]: Print the logs for a container in a pod.
    • kubectl logs -l app=elasticsearch (using labels: -l)
  • Run kubectl run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [flags]: Run a specified image on the cluster.
  • Stop kubectl stop
  • Version kubectl version [--client] [flags]: Display the Kubernetes version running on the client and server.

Activities[edit]

Related[edit]

See also[edit]

Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy.

Source: https://en.wikiversity.org/wiki/DevOps/Kubernetes/kubectl

Advertising: