Skip to content

kubectl command interface

kubectl is the command-line interface (CLI) tool for Kubernetes (often abbreviated as k8s).^[400-devops-06-kubernetes-k8s.md]

Syntax and Resource Management

The general syntax for interacting with Kubernetes resources follows the pattern kubectl get <resource>, <resource> can be replaced with specific object types such as pods, deployments, services, configmaps, secrets, or ingress.1^[400-devops-06-kubernetes-k8s.md]

  • Listing Resources: kubectl get pods lists all pods.2^[400-devops-06-kubernetes-k8s.md]
  • Describing Resources: kubectl describe <resource> <name> provides detailed status and information about a specific resource.3^[400-devops-06-kubernetes-k8s.md]
  • Version: kubectl version displays the version information of the client and server.4^[400-devops-06-kubernetes-k8s.md]

Resource Creation and Updates

Resources can be created or updated using configuration files.

  • Declarative Management: kubectl apply -f <filename>.yaml applies a configuration. This command is idempotent and is preferred for managing existing resources, as it detects configuration changes and updates the resource accordingly.5^[400-devops-06-kubernetes-k8s-ithelp-day6-readme.md]
  • Imperative Creation: kubectl create -f <filename>.yaml creates a resource. Unlike apply, it is typically used only for resources that do not yet exist.6^[400-devops-06-kubernetes-k8s-ithelp-day6-readme.md]

Cluster Configuration

kubectl uses a configuration file (typically located at ${HOME}/.kube/config or specified via the KUBECONFIG environment variable) to manage cluster connection details, known as contexts.7^[400-devops-06-kubernetes-k8s.md]

  • View Context: kubectl config current-context displays the currently active cluster context.8^[400-devops-06-kubernetes-k8s.md]
  • List Contexts: kubectl config get-contexts lists all available contexts.9^[400-devops-06-kubernetes-k8s.md]
  • Switch Context: kubectl config use-context <name> switches the active context to a different cluster or namespace.10^[400-devops-06-kubernetes-k8s.md]

Port Forwarding

The kubectl port-forward command allows users to map a local port to a port on a Kubernetes resource, enabling direct access to an application running inside the cluster via localhost.11^[400-devops-06-kubernetes-k8s-ithelp-day6-readme.md]

  • Syntax: kubectl port-forward TYPE/NAME [LOCAL_PORT:]REMOTE_PORT.12^[400-devops-06-kubernetes-k8s-ithelp-day6-readme.md]
  • Example: kubectl port-forward mysql-dp-8dfb795cf-2hkgm 3306:3306 --address 0.0.0.0 forwards port 3306 from a specific Pod to the local machine on all interfaces.13^[400-devops-06-kubernetes-k8s.md]

Namespaces

Namespaces provide a mechanism to isolate resources within a cluster.

  • List Namespaces: kubectl get namespaces.14^[400-devops-06-kubernetes-k8s.md]
  • Create Namespace: kubectl create namespace <name>.15^[400-devops-06-kubernetes-k8s.md]
  • Filter by Namespace: The -n flag filters commands by a specific namespace, such as kubectl get pods -n test.16^[400-devops-06-kubernetes-k8s.md]

Sources

  • 400-devops-06-kubernetes-k8s-ithelp-day6-readme.md
  • 400-devops-06-kubernetes-k8s.md

  1. Lines 50-56 in 400-devops-06-kubernetes-k8s.md 

  2. Line 51 in 400-devops-06-kubernetes-k8s.md 

  3. Line 64 in 400-devops-06-kubernetes-k8s.md 

  4. Line 66 in 400-devops-06-kubernetes-k8s.md 

  5. Lines 132-135 in 400-devops-06-kubernetes-k8s-ithelp-day6-readme.md 

  6. Lines 132-134 in 400-devops-06-kubernetes-k8s-ithelp-day6-readme.md 

  7. Lines 15-21 in 400-devops-06-kubernetes-k8s.md 

  8. Line 27 in 400-devops-06-kubernetes-k8s.md 

  9. Line 29 in 400-devops-06-kubernetes-k8s.md 

  10. Line 30 in 400-devops-06-kubernetes-k8s.md 

  11. Lines 168-172 in 400-devops-06-kubernetes-k8s-ithelp-day6-readme.md 

  12. Line 168 in 400-devops-06-kubernetes-k8s-ithelp-day6-readme.md 

  13. Line 59 in 400-devops-06-kubernetes-k8s.md 

  14. Line 61 in 400-devops-06-kubernetes-k8s.md 

  15. Line 62 in 400-devops-06-kubernetes-k8s.md 

  16. Line 63 in 400-devops-06-kubernetes-k8s.md