Kubectl
kubectl is the command-line tool used to interact with Kubernetes clusters. Kubectl allows developers and administrators to deploy applications, inspect and manage cluster resources, and troubleshoot issues directly from the terminal.
https://formulae.brew.sh/formula/kubernetes-cli
`kubectl` is the command-line tool that serves as the primary interface for interacting with Kubernetes clusters. It empowers you to deploy applications, inspect and manage cluster resources, view logs, execute commands within containers, and perform a wide range of administrative tasks.
Key Features
**Resource Management:** `kubectl` allows you to create, update, delete, and get information about various Kubernetes resources, such as pods, deployments, services, and namespaces.
**Deployment and Scaling:** You can use `kubectl` to deploy applications to your cluster, scale them up or down based on demand, and roll out updates with minimal downtime.
**Monitoring and Troubleshooting:** `kubectl` provides commands to monitor the health and status of your cluster, view logs from pods and containers, and execute commands within running containers for debugging purposes.
**Configuration Management:** `kubectl` can be used to manage configuration data, such as ConfigMaps and Secrets, which store configuration values and sensitive information, respectively.
**Extensibility:** `kubectl` supports plugins, allowing you to extend its functionality with custom commands and integrations.
Benefits
**Flexibility and Control:** `kubectl` offers a powerful and flexible command-line interface, granting you granular control over your Kubernetes cluster and its resources.
**Portability:** It can be used from any machine with access to the Kubernetes
API server, enabling remote management and administration.
**Automation:** `kubectl` commands can be easily integrated into scripts and automation workflows, facilitating continuous integration and continuous delivery (CI/CD) pipelines.
**Community Support:** As the primary tool for interacting with Kubernetes, `kubectl` benefits from a vast and active community, providing extensive documentation, tutorials, and support.
Code Examples
1. **Get a List of Pods:**
```bash
kubectl get pods
```
This command retrieves a list of all pods running in the current namespace.
2. **Describe a Pod:**
```bash
kubectl describe pod my-pod
```
This command provides detailed information about a specific pod named “my-pod.”
3. **View Logs of a Container:**
```bash
kubectl logs my-pod -c my-container
```
This command displays the logs from the “my-container” container within the “my-pod” pod.
Additional Resources
(DevOps deployment navbar)
Return to GitOps, DevOps deployment, Kubernetes-Docker, Linux configuration (Unix shell initialization - bash profile) Ansible-Terraform, Package manager, Package management, Packages, Configuration, Configuration automation, Deployment automation, Continuous deployment, Delivery, Continuous delivery, Integration, Continuous integration, CI-CD, CI/CD, Version control, GitHub, GitHub Actions, GitHub CLI, AWS Cloud Shell, AWS Tools for PowerShell, Azure Cloud Shell, Azure PowerShell, Google Cloud Shell, Oracle Cloud Shell (Oracle Cloud Infrastructure Cloud Shell), IBM Cloud Shell, Linode Cloud Shell, DigitalOcean Cloud Shell, GitHub Codespaces IDE, AWS Cloud9 IDE, Databricks Cloud Shell, JetBrains, Azure DevOps, JetBrains TeamCity, Management, Configuration management
kubectl controls the Kubernetes cluster manager.
Find more information at: https://kubernetes.io/docs/reference/kubectl/overview/
Basic kubectl Commands (Beginner):
create Create a resource from a file or from stdin
expose Take a replication controller, service, deployment or pod and
expose it as a new Kubernetes service
run Run a particular image on the cluster
set Set specific features on objects
Basic kubectl Commands (Intermediate):
explain Get documentation for a resource
get Display one or many resources
edit Edit a resource on the server
delete Delete resources by file names, stdin, resources and names, or
by resources and label selector
kubectl Deploy Commands:
rollout Manage the rollout of a resource
scale Set a new size for a deployment, replica set, or replication
controller
autoscale Auto-scale a deployment, replica set, stateful set, or
replication controller
kubectl Cluster Management Commands:
-
-
top Display resource (CPU/memory) usage
cordon Mark node as unschedulable
-
drain Drain node in preparation for maintenance
taint Update the taints on one or more nodes
kubectl Troubleshooting and Debugging Commands:
describe Show details of a specific resource or group of resources
logs Print the logs for a container in a pod
attach Attach to a running container
exec Execute a command in a container
-
proxy Run a proxy to the Kubernetes
API server
cp Copy files and directories to and from containers
auth Inspect authorization
debug Create debugging sessions for troubleshooting workloads and
nodes
kubectl Advanced Commands:
diff Diff the live version against a would-be applied version
apply Apply a configuration to a resource by file name or stdin
patch Update fields of a resource
replace Replace a resource by file name or stdin
wait Experimental: Wait for a specific condition on one or many
resources
kustomize Build a kustomization target from a directory or
URL.
kubectl Settings Commands:
label Update the labels on a resource
annotate Update the annotations on a resource
completion Output shell completion code for the specified shell (bash or
zsh)
Other Commands:
-
api-versions Print the supported
API versions on the server, in the form of
“group/version”
config Modify kubeconfig files
plugin Provides utilities for interacting with plugins
version Print the client and server version information
Usage:
kubectl [flags] [options]
Use “kubectl <command> –help” for more information about a given command.
Use “kubectl options” for a list of global command-line options (applies to all
commands).