Skip to content

kubectl

kubectl is the command-line interface tool for Kubernetes, used to manage clusters and deploy applications.^[400-devops-06-kubernetes-k8s-ithelp-day11-readme.md] It functions as a wrapper around the kube-apiserver component, utilizing RESTful APIs to perform operations on the cluster.^[400-devops-06-kubernetes-k8s-ithelp-day11-readme.md]

Syntax Structure

The general syntax for executing kubectl commands follows a specific structure.^[400-devops-06-kubernetes-k8s-ithelp-day11-readme.md]

kubectl [command] [TYPE] [NAME] [flags]

Components

  • command: Specifies the operation to perform (e.g., create, get, describe, delete).^[400-devops-06-kubernetes-k8s-ithelp-day11-readme.md]
  • TYPE: Specifies the resource type (e.g., pod, service, deployment). Types are case-insensitive and can be singular, plural, or abbreviated (e.g., po, pods, pod).^[400-devops-06-kubernetes-k8s-ithelp-day11-readme.md]
  • NAME: Specifies the name of the resource. Names are case-sensitive.^[400-devops-06-kubernetes-k8s-ithelp-day11-readme.md]
  • flags: Specifies optional parameters (e.g., -f for file, -n for namespace).^[400-devops-06-kubernetes-k8s-ithelp-day11-readme.md]

Resource Operations

Creation and Configuration

  • apply: Creates or updates resources based on a file or standard input.^[400-devops-06-kubernetes-k8s-ithelp-day11-readme.md]
  • create: Creates a new resource explicitly from a file.^[400-devops-06-kubernetes-k8s-ithelp-day11-readme.md]
  • run: Creates and runs a specific image in the cluster (e.g., kubectl run nginx --image=nginx).^[400-devops-06-kubernetes-k8s-ithelp-day11-readme.md]
  • expose: Creates a Service to expose a resource (e.g., a Deployment) externally.^[400-devops-06-kubernetes-k8s-ithelp-day11-readme.md]

Viewing and Troubleshooting

  • get: Lists one or more resources.^[400-devops-06-kubernetes-k8s-ithelp-day11-readme.md]
    • Common usage: kubectl get pods, kubectl get services.^[400-devops-06-kubernetes-k8s-ithelp-day11-readme.md]
    • Flags: -o wide for more details; --all-namespaces to list across all namespaces.^[400-devops-06-kubernetes-k8s-ithelp-day11-readme.md]
  • describe: Displays detailed state of one or more resources, including uninitialized ones.^[400-devops-06-kubernetes-k8s-ithelp-day11-readme.md]
  • logs: Prints logs for a container in a Pod. Adding -f streams the logs (similar to tail -f).^[400-devops-06-kubernetes-k8s-ithelp-day11-readme.md]
  • exec: Executes a command inside a container in a Pod (e.g., kubectl exec -it <pod-name> -- /bin/bash).^[400-devops-06-kubernetes-k8s-ithelp-day11-readme.md]

Modification and Deletion

  • delete: Removes resources.^[400-devops-06-kubernetes-k8s-ithelp-day11-readme.md]
  • set: Configures specific application resources or updates existing ones (e.g., set image, set env).^[400-devops-06-kubernetes-k8s-ithelp-day11-readme.md]

Configuration and Context

kubectl relies on a configuration file (typically located in ${HOME}/.kube/config) to manage cluster access.^[400-devops__06-Kubernetes__k8s.md]

  • cluster-info: Displays cluster information (e.g., endpoint addresses).^[400-devops__06-Kubernetes__k8s-ithelp__Day4__README.md]
  • config: Manages access via current-context, get-contexts, and use-context.^[400-devops__06-Kubernetes__k8s.md]
  • version: Prints the client and server versions.^[400-devops__06-Kubernetes__k8s-ithelp__Day4__README.md]

Sources

^[400-devops-06-kubernetes-k8s-ithelp-day11-readme.md] ^[400-devops__06-Kubernetes__k8s.md] ^[400-devops__06-Kubernetes__k8s-ithelp__Day4__README.md]