![Kubernetes Commands Techhyme](https://techhyme.com/wp-content/uploads/2023/07/Kubernetes-Commands-Techhyme-1024x526.jpg)
Kubernetes has become the de facto standard for container orchestration in the world of cloud-native applications. It empowers developers to deploy, scale, and manage containerized applications seamlessly. As you delve into the world of Kubernetes, mastering its client configuration and management becomes essential.
In this guide, we will explore various commands and techniques to interact with Kubernetes clusters effectively.
- Client Configuration
- Setup Autocomplete in Bash
- View Kubernetes Config
- View Specific Config Items by JSON Path
- Set Credentials for a Specific Cluster
- Set Active Namespace
- Viewing and Finding Resources
- List All Services in a Namespace
- List All Pods in All Namespaces in Wide Format
- List All Pods in JSON (or YAML) Format
- Describe Resource Details
- List Services Sorted by Name
- List Pods Sorted by Restart Count
- Rolling Update Pods
- Scaling Replicas
- Managing Resources
- Get Documentation for a Resource
- Create Resources from Manifests
- Apply a Configuration to a Resource
- Creating a Single Instance of Nginx
- Creating a Secret
- Deleting a Resource
- Monitoring and Logging
- Deploy Heapster
- Show Metrics for Nodes
- Show Metrics for Pods
- Show Metrics for a Specific Pod and Its Containers
- Dump Pod Logs (stdout)
- Stream Pod Container Logs
- Interacting with Running Pods
- Run Command in Pod
- Run Command in Pod with Multiple Containers
- Get Terminal of a Pod
- Get Terminal of a Container in a Pod with Multiple Containers
1. Client Configuration
To interact with a Kubernetes cluster, you need to configure your client environment properly. Here are some essential commands to set up and manage your client configuration.
1. Setup Autocomplete in Bash
Autocomplete in the bash shell can significantly improve your productivity. Ensure that the `bash-completion` package is installed, and then use the following command to enable autocomplete for Kubernetes commands:
source <(kubectl completion bash)
2. View Kubernetes Config
To see the configuration details of your Kubernetes cluster, including clusters, users, and contexts, use the following command:
kubectl config view
3. View Specific Config Items by JSON Path
If you want to access a specific configuration item using JSONPath, you can do so with the following command. Replace `”k8s”` with the desired user name.
kubectl config view -o jsonpath='{.users[?(@.name == "k8s")].user.password}'
4. Set Credentials for a Specific Cluster
You can set credentials for a specific cluster using the `kubectl config set-credentials` command. For example:
kubectl config set-credentials kubeuser/foo.kubernetes.com --username=kubeuser --password=kubepassword
5. Set Active Namespace
Set the active namespace to avoid specifying it repeatedly in future commands:
kubectl config set-context --current --namespace=namespace_name
2. Viewing and Finding Resources
Understanding the current state of your Kubernetes resources is crucial for managing your cluster effectively. Here are some useful commands for viewing and finding resources:
1. List All Services in a Namespace
To list all services within a specific namespace, use the following command:
kubectl get services
2. List All Pods in All Namespaces in Wide Format
To get a wide-format view of all pods in all namespaces, use:
kubectl get pods -o wide --all-namespaces
3. List All Pods in JSON (or YAML) Format
If you prefer to see the pod details in JSON or YAML format, use the following:
kubectl get pods -o json
4. Describe Resource Details
To get more detailed information about a specific resource, such as a node, pod, or service, use the `kubectl describe` command. For example, to describe a node named `my-node`:
kubectl describe nodes my-node
5. List Services Sorted by Name
Sort services alphabetically by name using the `–sort-by` flag:
kubectl get services --sort-by=.metadata.name
6. List Pods Sorted by Restart Count
To see pods sorted by their restart count:
kubectl get pods --sort-by='.status.containerStatuses[0].restartCount'
7. Rolling Update Pods
Perform a rolling update of pods using the `rolling-update` command. Here, we’re updating from `frontend-v1` to `frontend-v2`:
kubectl rolling-update frontend-v1 -f frontend-v2.json
8. Scaling Replicas
Scale the number of replicas for a resource, such as a ReplicaSet, using the `kubectl scale` command. For example, to scale a ReplicaSet named `foo` to 3 replicas:
kubectl scale --replicas=3 rs/foo
3. Managing Resources
Creating and managing resources is at the heart of Kubernetes administration. Here are some essential commands for resource management:
1. Get Documentation for a Resource
To get documentation for a specific resource, such as a pod or service:
kubectl explain pods,svc
2. Create Resources from Manifests
Create resources like pods, services, or daemonsets from a YAML manifest file:
kubectl create -f ./my-manifest.yaml
3. Apply a Configuration to a Resource
The `apply` command is used to apply changes to a resource defined in a YAML manifest:
kubectl apply -f ./my-manifest.yaml
4. Creating a Single Instance of Nginx
Create a single instance of Nginx using the `run` command:
kubectl run nginx --image=nginx
5. Creating a Secret
Create a secret with several keys for sensitive information:
cat <<EOF | kubectl create -f -
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
password: $(echo "s33msi4" | base64)
username: $(echo "jane"| base64)
EOF
6. Deleting a Resource
Delete a resource defined in a YAML manifest:
kubectl delete -f ./my-manifest.yaml
4. Monitoring and Logging
Kubernetes offers robust monitoring and logging capabilities to help you keep an eye on your cluster’s health. Here are some useful commands for monitoring and logging:
1. Deploy Heapster
Heapster is a popular tool for cluster monitoring. Deploy it using:
kubectl create -f deploy/kube-config/standalone/
2. Show Metrics for Nodes
To view resource utilization metrics for nodes:
kubectl top node
3. Show Metrics for Pods
To see metrics for all pods:
kubectl top pod
4. Show Metrics for a Specific Pod and Its Containers
To get resource usage metrics for a specific pod and its containers:
kubectl top pod pod_name --containers
5. Dump Pod Logs (stdout)
To view the logs of a pod:
kubectl logs pod_name
6. Stream Pod Container Logs
Stream logs (stdout) from a specific container in a pod:
kubectl logs -f pod_name -c my-container
5. Interacting with Running Pods
Interacting with running pods is vital for debugging and troubleshooting. Here are some useful commands to interact with pods:
1. Run Command in Pod
Execute a command inside a pod:
kubectl exec pod_name -- command_name
2. Run Command in Pod with Multiple Containers
When a pod contains multiple containers, specify the container name:
kubectl exec pod_name -c container_name -- command_name
3. Get Terminal of a Pod
Open an interactive terminal inside a pod:
kubectl exec -it pod_name /bin/sh
4. Get Terminal of a Container in a Pod with Multiple Containers
Access a specific container within a pod interactively:
kubectl exec -it pod_name -c container_name /bin/sh
With these powerful commands at your disposal, you can confidently manage and monitor your Kubernetes clusters. Whether you are a developer, a DevOps engineer, or a cluster administrator, mastering
You may also like:- Essential Commands For Process Management in Kali Linux
- A Comprehensive Guide to File System Commands in Linux
- Essential File Compression Commands in Linux
- Secure Shell (SSH) Protocol – A Comprehensive Guide
- Monitoring Active Connections in Kali Linux Using Netstat
- Manage Time and Date in Linux with timedatectl
- How to Add a User to Sudoers on Ubuntu
- 25 Popular Linux IP Command Examples
- Top 11 Nmap Commands for Remote Host Scanning
- 9 Useful w Command Examples in Linux