DEV Community

Cover image for What is Kubectl?
Ambassador
Ambassador

Posted on • Originally published at getambassador.io

What is Kubectl?

kubectl is the main way in which you will interact with your Kubernetes cluster

Kubectl is a command line tool used to run commands against Kubernetes clusters. It does this by authenticating with the Master Node of your cluster and making API calls to do a variety of management actions. If you’re just getting started with Kubernetes, prepare to spend a lot of time with kubectl!

Key Capabilities of kubectl

Application Deployment and Scaling: Kubectl simplifies deploying and scaling applications. It provides a streamlined process for adjusting the scale of your applications based on demand, directly from the command line.

Resource Management: Dive deep into managing Kubernetes resources such as pods, deployments, and services. Kubectl enables precise interaction, offering a detailed view of application architecture and operation within clusters.
Optimization and Decision Making: Armed with comprehensive insights into application performance, engineers can make informed decisions to enhance efficiency and ensure high availability.

Troubleshooting with kubectl

When applications falter, kubectl is an invaluable asset for diagnosis and remediation. It facilitates quick identification of issues and offers solutions, aiming to minimize downtime and maintain continuous service delivery.

Cluster Configuration Management

Kubectl does more than just handle applications; it’s also instrumental in managing cluster configurations. This capability ensures that clusters are optimized for performance, security, and compliance with organizational standards.

How to Use kubectl

The format of a kubectl command looks like this:


kubectl[command][type][name][flags]

[command]: specifies the action you want to perform like create, delete, get, apply
[type]: any Kubernetes resource, whether automatically provided by Kubernetes (like a service or a pod) or created by you with a Custom Resource Definition
[name]: the name you have given the resource — if you omit the name, kubectl will return every resource specified by the type
[flags]: specify any additional global or command specific options such as the output format
An example of a command using the full command format is

kubectl get pods hello-world -o yaml
Enter fullscreen mode Exit fullscreen mode

which will make a call to the kubernetes api and output the configuration of a pod named hello-world in yaml format.

Since the name is optional, some commands you will commonly execute will completely omit it such as

kubectl apply -f hello-world.yaml

which will apply a configuration defined in the hello-world.yamlfile.

Learn More

https://kubernetes.io/docs/reference/kubectl/overview/
https://kubernetes.io/docs/reference/kubectl/cheatsheet/
https://kubectl.docs.kubernetes.io

Other useful tools:

kubectx & kubens
kube-ps1
autocomplete
aliases
stern

Top comments (0)