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 podslists 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 versiondisplays 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>.yamlapplies 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>.yamlcreates a resource. Unlikeapply, 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-contextdisplays the currently active cluster context.8^[400-devops-06-kubernetes-k8s.md] - List Contexts:
kubectl config get-contextslists 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.0forwards 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
-nflag filters commands by a specific namespace, such askubectl 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
-
Lines 50-56 in
400-devops-06-kubernetes-k8s.md↩ -
Line 51 in
400-devops-06-kubernetes-k8s.md↩ -
Line 64 in
400-devops-06-kubernetes-k8s.md↩ -
Line 66 in
400-devops-06-kubernetes-k8s.md↩ -
Lines 132-135 in
400-devops-06-kubernetes-k8s-ithelp-day6-readme.md↩ -
Lines 132-134 in
400-devops-06-kubernetes-k8s-ithelp-day6-readme.md↩ -
Lines 15-21 in
400-devops-06-kubernetes-k8s.md↩ -
Line 27 in
400-devops-06-kubernetes-k8s.md↩ -
Line 29 in
400-devops-06-kubernetes-k8s.md↩ -
Line 30 in
400-devops-06-kubernetes-k8s.md↩ -
Lines 168-172 in
400-devops-06-kubernetes-k8s-ithelp-day6-readme.md↩ -
Line 168 in
400-devops-06-kubernetes-k8s-ithelp-day6-readme.md↩ -
Line 59 in
400-devops-06-kubernetes-k8s.md↩ -
Line 61 in
400-devops-06-kubernetes-k8s.md↩ -
Line 62 in
400-devops-06-kubernetes-k8s.md↩ -
Line 63 in
400-devops-06-kubernetes-k8s.md↩