Table of Contents
Kubectl
`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
- **kubectl Reference Docs:** s://kubernetes.io/docs/reference/kubectl/overview/(https://kubernetes.io/docs/reference/kubectl/overview/)
- **kubectl Cheat Sheet:** s://kubernetes.io/docs/reference/kubectl/cheatsheet/(https://kubernetes.io/docs/reference/kubectl/cheatsheet/)
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
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
- 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:
- certificate Modify certificate resources.
- cluster-info Display cluster information
- top Display resource (CPU/memory) usage
- cordon Mark node as unschedulable
- uncordon Mark node as schedulable
- 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
- port-forward Forward one or more local ports to a pod
- 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
- 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.
- 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-resources Print the supported API resources on the server
- 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).