Shared Flashcard Set

Details

kubectl Commands
List of kubectl Commands
99
Computer Science
Professional
11/22/2022

Additional Computer Science Flashcards

 


 

Cards

Term
Generate a plain-text list of all namespaces
Definition

 

 

kubectl get namespaces

Term
Show a plain-text list of all pods:
Definition
kubectl get pods
Term
Generate a detailed plain-text list of all pods, containing information such as node name:
Definition
kubectl get pods -o wide
Term
Display a list of all pods running on a particular node server:
Definition
kubectl get pods --field-selector=spec.nodeName=[server-name]
Term
List a specific replication controller in plain-text:
Definition
kubectl get replicationcontroller [replication-controller-name]
Term
Generate a plain-text list of all replication controllers and services:
Definition
kubectl get replicationcontroller,services
Term
Show a plain-text list of all daemon sets:
Definition
kubectl get daemonset
Term

Create a resource such as a service, deployment, job, or namespace using the kubectl create command.

For example, to create a new namespace, type:

Definition

kubectl create namespace [namespace-name]

 

and

 

kubectl create -f [filename]

Term
Create a new service with the definition contained in a [service-name].yaml file:
Definition
kubectl apply -f [service-name].yaml
Term
Create a new replication controller with the definition contained in a [controller-name].yaml file:
Definition
kubectl apply -f [controller-name].yaml
Term
Create the objects defined in any .yaml, .yml, or .json file in a directory:
Definition
kubectl apply -f [directory-name]
Term

You can update a resource by configuring it in a text editor, using the kubectl edit command. This command is a combination of kubectl get and kubectl apply.

For example, to edit a service, type:

Definition
kubectl edit svc/[service-name]
Term
This command opens the file in your default editor. To use a different editor, specify it in front of the command:
Definition
KUBE_EDITOR=”[editor-name]” kubectl edit svc/[service-name]
Term

To display the state of any number of resources in detail, use the     kubectl describe command. By default, the output also lists uninitialized resources.

 

View details about a particular node:

Definition
kubectl describe nodes [node-name]
Term
View details about a particular pod:
Definition
kubectl describe pods [pod-name]
Term
Display details about a pod whose name and type are listed in pod.json:
Definition
kubectl describe -f pod.json
Term
See details about all pods managed by a specific replication controller:
Definition
kubectl describe pods [replication-controller-name]
Term
Show details about all pods:
Definition
kubectl describe pods
Term

To remove resources from a file or stdin, use the kubectl delete command.

 

Remove a pod using the name and type listed in pod.yaml:

Definition
kubectl delete -f pod.yaml
Term
Remove all pods and services with a specific label:
Definition
kubectl delete pods,services -l [label-key]=[label-value]
Term
Remove all pods (including uninitialized pods):
Definition
kubectl delete pods --all
Term

Use kubectl exec to issue commands in a container or to open a shell in a container.

 

Receive output from a command run on the first container in a pod:

Definition
kubectl exec [pod-name] -- [command]
Term
Run /bin/bash from a specific pod. The received output comes from the first container:
Definition
kubectl exec -ti [pod-name] -- /bin/bash
Term

Listing resources- for listing pods, services, replication controllers, or daemon sets, you can use this command:

 

 

Definition
kubectl get
Term
  1. Create a plain list of all namespaces: 
Definition
Kubectl get namespaces
Term
  1. Create a list of pods:
Definition
Kubectl get pods
Term
  1. Create a detailed list of pods which must consist of information like node name:
Definition
Kubectl get pods -o wide 
Term
  1. Create a list of pods running on a specific node server:
Definition
kubectl get pods --field-selector=spec.nodeName=[server-name]
Term
  1. List a replication controller: 
Definition
kubectl get replicationcontroller [replication-controller-name]
Term
  1. Create a list of services and replication controllers together:
Definition
kubectl get replicationcontroller,services
Term
Here is how you can troubleshoot Kubernetes using Kubectl:
Definition
kubectl describe 
Term

It shows the details of the resource you are currently viewing. It’s mostly used to describe a pod or node and check for any errors in the events or if the resources are limited. Resources that can be described are – nodes, pods, deployments, services, replica sets, and Cronjobs. 

The following is an example showing how to describe the cronjob in a cluster:

Definition
 kubectl describe cronjob my-cron
Term

Kubectl logs

The kubectl describe command provides the events that occur in the applications inside a pod, whereas kubectl logs offer detailed insights into Kubernetes. Understanding this difference will allow you to fix issues that occur in the Kubernetes as well as in applications too. 

Definition
$ kubectl logs cherry-chart-88d49478c-dmcfv -n charts
Term

Kubectl exec

You can also execute a container just like the docker exec command for troubleshooting an application directly. This command proves to be useful when the logs don’t fix the problems that may be arising. While using the exec command, the end of the line must provide the shell you intend to use in the pod. 

Definition
kubectl exec -it cherry-chart-88d49478c-dmcfv -n charts -- /bin/bash
root@cherry-chart-88d49478c-dmcfv:/#
Term

Kubectl cp 

If you wish to copy directories and files to and from containers, this command is a must, just like the Linux cp command. This command is essential for restoring backups when automation fails. 

Here’s the syntax to copy a file to the container:

Definition
kubectl cp <filename> <namespace/podname:/path/tofile> format
Term
The syntax for pulling a file to the local machine from a container: 
Definition
kubectl cp <namespace/podname:/path/tofile>
Term
You can also change the default grace period when you manually delete a resource with kubectl delete command, adding the parameter 
Definition
kubectl delete deployment test --grace-period=60
Term

Cluster Management

Display endpoint information regarding the services and master in the cluster

Definition
kubectl cluster-info
Term
Show the Kubernetes version functioning on the client and server
Definition
kubectl version
Term
Get the configuration of the cluster
Definition
kubectl config view
Term
Make a list of the available API resources
Definition
kubectl api-resources
Term
Make a list of the available API versions 
Definition
kubectl api-versions
Term
List everything
Definition
kubectl get all –all-namespaces
Term

2. Namespaces

 

Create namespace <name>

Definition
kubectl create namespace <namespace_name>
Term
List one or more namespaces
Definition
kubectl get namespace <namespace_name>
Term
Show the detailed condition of one or more namespace
Definition
kubectl describe namespace <namespace_name>
Term
kubectl delete namespace <namespace_name>
Definition
Delete a namespace
Term
Edit and modify the namespace’s definition
Definition
kubectl edit namespace <namespace_name>
Term

Display Resource (CPU/Memory/Storage) usage for a namespace
Definition
kubectl top namespace <namespace_name>
Term

Node operations

A Node is a worker machine in Kubernetes and can either be a virtual or a physical machine, which depends on the cluster. Every Node is handled by the control plane. A Node can contain several pods, and the Kubernetes control plane handles scheduling the pods automatically across the Nodes in the cluster. Following commands can be utilised for Node Operation

 

Revise the taints on one or more nodes

Definition
kubectl taint node <node_name>
Term
List one or more nodes
Definition
kubectl get node
Term
Delete a node or multiple nodes
Definition
kubectl delete node <node_name>
Term
Display Resource usage (CPU/Memory/Storage) for nodes
Definition
kubectl top node
Term
Resource allocation per node
Definition
kubectl describe nodes | grep Allocated -A 5
Term
Pods running on a node
Definition
kubectl get pods -o wide | grep <node_name>
Term
Annotate a node
Definition
kubectl annotate node <node_name>
Term
Mark a node as unschedulable
Definition
kubectl cordon node <node_name>
Term
Mark node as schedulable
Definition
kubectl uncordon node <node_name>
Term
Drain a node in preparation for maintenance
Definition
kubectl drain node <node_name>
Term
Add the labels of one or more nodes
Definition
kubectl label node
Term

 Listing Resources 

Kubernets resources also regarded as Kubernetes objects related to a certain namespace, you can either utilise individual kubectl get command to jot down every resource one by one, or you can jot down all the resources in a Kubernetes namespace by executing a single command. Mentioned below are the list of commands to get the resources information.

Create a plain-text list of all namespaces

Definition
kubectl get namespaces
Term
Create a plain-text list of all pods
Definition
kubectl get pods
Term
Create a comprehensive plain-text list of all pods
Definition
kubectl get pods -o wide
Term
Create a list of all pods functioning on a certain node server
Definition
kubectl get pods–field-selector=spec. nodeName=[server-name]
Term
In plain text, make a lst a specific replication controller
Definition
kubectl get replicationcontroller [replication-controller-name]
Term
Generate a plain-text list of all replication services and controllers 
Definition
kubectl get replicationcontroller, services
Term

Daemonsets 

A Daemonset assures that some or all  Nodes run a copy of a Pod. As nodes are incorporated to the cluster, Pods are implemented to them. As nodes are erased  from the cluster, those Pods are garbage collected. Erasing a DaemonSet will clean up the Pods it created.

List one or more daemonsets

 

Definition
kubectl get daemonset
Term
Edit and modify the definition of one or more daemonset
Definition
kubectl edit daemonset <daemonset_name>
Term
Delete a daemonset
Definition
kubectl delete daemonset <daemonset_name>
Term
Create a new daemonset
Definition
kubectl create daemonset <daemonset_name>
Term
Manage the rollout of a daemonset
Definition
kubectl rollout daemonset
Term
Show the comprehensive state of daemonsets within a namespace
Definition
kubectl describe ds <daemonset_name> -n <namespace_name>
Term

Shortcode = ev
Kubernetes events are objects that displays what is happening within a cluster, like what decisions were implemented by the scheduler or why some pods were erased from the node. Events are the first thing to look at for application, along with infrastructure operations when something is not functioning as anticipated. Mentioned below are the kubectl commands to get the events.

 

List current events for all resources in the system

Definition
kubectl get events
Term
List Warnings only
Definition
kubectl get events –field-selector type=Warning
Term
List events but exclude Pod events
Definition
kubectl get events –field-selector involvedObject.kind!=Pod
Term
Pull events for a single node with a distinct name
Definition
kubectl get events –field-selector involvedObject.kind=Node, involvedObject.name=<node_name>
Term
From a list of events, filter out normal events
Definition
kubectl get events –field-selector type!=Normal
Term

7. Logs

You can use Kubernets logs commands to monitor, log and debug the pods

Print the logs for a pod

 

Definition
kubectl logs <pod_name>
Term
Print the logs for a pod for the last hour 
Definition
kubectl logs –since=1h <pod_name>
Term
Get the current 20 lines of logs
Definition
kubectl logs –tail=20 <pod_name>
Term
Get logs from a service and choose which container optionally
Definition
kubectl logs -f <service_name> [-c <$container>]
Term
Adhere to new logs and print the logs for a pod
Definition
kubectl logs -f <pod_name>
Term
For a container in a pod, Print the logs 
Definition
kubectl logs -c <container_name> <pod_name>
Term
Output the logs for a pod into a ‘pod.log’ file 
Definition
kubectl logs <pod_name> pod.log
Term
View the logs for the last failed pod
Definition
kubectl logs –previous <pod_name>
Term

Shortcode = deploy.

A Kubernetes Deployment is utilised to inform Kubernetes how to design or change instances of the pods that hold a containerized application. Deployments can enhance the number of replica pods, enable rollout of revised code in a controlled way, or roll back to an earlier deployment version if required.

List one or more deployments

Definition
kubectl get deployment
Term
Show the in-depth state of one or more deployments
Definition
kubectl describe deployment <deployment_name>
Term
Edit and revise the definition of one or more deployment on the server
Definition
kubectl edit deployment <deployment_name>
Term
Generate one a new deployment
Definition
kubectl create deployment <deployment_name>
Term
Delete deployments
Definition
kubectl delete deployment <deployment_name>
Term
Check the rollout status of a deployment
Definition
kubectl rollout status deployment <deployment_name>
Term

12. Services and Service Accounts: 

A Kubernetes service is a logical abstraction for a deployed group of pods in a cluster (which all perform the same function) and Service accounts are used to provide an identity for pods. Pods that want to interact with the API server will authenticate with a particular service account.

Make a list of  one or more services

Definition
kubectl get services
Term
Show the detailed state of a service
Definition
kubectl describe services
Term
Reveal a replication controller, service, deployment or pod as a new Kubernetes service
Definition

 

  • kubectl expose deployment [deployment_name]
Term
Edit and modify the definition of one or more services
Definition
kubectl edit services
Term
List service accounts
Definition
kubectl get serviceaccounts
Term
Show the in-depth state of one or more service accounts
Definition
kubectl describe serviceaccounts
Term
Replace a service account
Definition
kubectl replace serviceaccount
Term
Delete a service account
Definition
kubectl delete serviceaccount <service_account_name>
Supporting users have an ad free experience!