Hello, this is the network technology alliance station.
Last time, I introduced the common commands of Docker to you, and the response was good. Some friends in the comment area want a collection of K8S commands, so today Rui Ge will arrange it!
Before starting to list the K8S command set, let me briefly introduce the basic theory of K8S.
What is K8S?
K8S is actually Kubernetes. Since Kubernetes
reads like K8S
, over time, everyone calls Kubernetes K8S for short.
Originally developed by Google, K8S is actually a container or microservice platform for orchestrating computing, networking, and storage infrastructure workloads.
The so-called container is to provide a way to package code, runtime, system tools, system libraries and configuration, that is to say, with this container, no matter which server of the same system you put it on, it can be intact. Running programs, the best example is Docker.
Advantages of K8S
The advantage of K8S is why most enterprises and organizations choose K8S. In short, it generally has the following four advantages:
1. Improve work efficiency
K8S provides a PaaS platform that creates a hardware abstraction layer where users can request the resources they need quickly and efficiently, and if they need more resources to handle additional work, they can also scale quickly, just a click away configuration, and can leverage Kubernetes-developed tools to automate packaging, deployment, and testing.
2. Flexibility
Container engines are programs that run containers, and K8s supports many types of container runtimes and infrastructures, as long as they have some version of Linux or Windows, and the portability of K8s allows development teams to easily switch engines, servers, or environment configurations.
3. Cost saving
K8S can save not only labor cost, but also material cost. Through dynamic and intelligent container management, K8S can help enterprises save their ecosystem management and ensure scalability across multiple environments. Resource allocation is automatically adjusted based on actual application needs while reducing low-level manual operations on the infrastructure. With automation, IT teams no longer need to perform a large number of operational tasks related to system administration, and can spend a lot of energy on more meaningful things, which greatly saves the cost of the enterprise.
4. Open source
K8S is a fully open-source, community-led project overseen by the CNCF, it has several major corporate sponsors, and for many, this open-source strategy makes K8S superior to closed-source orchestrators.
K8S Command Memo
1. List resources
Generate a plain text list of all namespaces:
kubectl get namespaces
Display a plain text list of all pods:
kubectl get pods
Generate a detailed plain-text listing of all pods, with information such as node names:
kubectl get pods -o wide
Display a list of all pods running on a specific node server:
kubectl get pods --field-selector=spec.nodeName=[server-name]
List specific replication controllers in plain text:
kubectl get replicationcontroller [replication-controller-name]
Generate a plain text list of all replication controllers and services:
kubectl get replicationcontroller,services
Display a plain text listing of all daemon sets:
kubectl get daemonset
2. Deployment
Create a new deployment
kubectl create deployment <deployment_name>
List one or more deployments
kubectl get deployment
List the detailed status of one or more deployments
kubectl describe deployment <deployment_name>
delete deployment
kubectl delete deployment<deployment_name>
3. Namespace related
Create namespace by given name
kubectl create namespace <namespace_name>
List the current namespaces in the cluster
kubectl get namespace
Display detailed status of one or more namespaces
kubectl describe namespace <namespace_name>
delete namespace
kubectl delete namespace <namespace_name>
Edit and update namespace definitions
kubectl edit namespace <namespace_name>
4. Execute the command
Receive the output of the command run on the first container in the pod:
kubectl exec [pod-name] -- [command]
Get output from a command run on a specific container in a pod:
kubectl exec [pod-name] -c [container-name] -- [command]
Run /bin/bash from a specific pod. The output received is from the first container:
kubectl exec -ti [pod-name] -- /bin/bash
5. Daemon process
List one or more daemon sets
kubectl get daemonset
Edit and update the definitions of one or more daemon sets
kubectl edit daemonset <daemonset_name>
delete daemon set
kubectl delete daemonset <daemonset_name>
Create a new daemon
kubectl create daemonset <daemonset_name>
Manage the rollout of the daemon set
kubectl rollout daemonset
Displays detailed status of daemon sets in a namespace
kubectl describe ds <daemonset_name> -n <namespace_name
8. Print the container log
print pod logs
kubectl logs <pod_name>
Print the logs for the last hour of the pod
kubectl logs --since=1h <pod_name>
Get the last 20 lines of log
kubectl logs --tail=20 <pod_name>
Get logs from service and choose which container to choose
kubectl logs -f <service_name> [-c <$container>]
Print the pod’s logs and keep an eye on new logs
kubectl logs -f <pod_name>
Print the logs of the containers in the pod
kubectl logs -c <container_name> <pod_name>
Output the pod’s logs to a file named “pod.log”
kubectl logs <pod_name> pod.log
View logs of previously failed pods
kubectl logs --previous <pod_name>
Get logs for all pods named with pod_prefix
kubetail <pod_prefix>
Include logs from the last 5 minutes
kubetail <pod_prefix> -s 5m
11. Other commands
Documentation
Documentation for getting the pod manifest
kubectl explain pod
Documentation for getting service manifest
kubectl explain service
alias
create alias on linux
alias k=kubectl
Create an alias on Windows
Set-Alias -Name k -Value kubectl
node
get node
kubectl get nodes
get a specific node
kubectl get nodes <node>
show node metrics
kubectl top node <node>
service account
List service accounts
kubectl get serviceaccounts
Get service account
kubectl get serviceaccount <serviceaccount>
Create a service account
kubectl create serviceaccount <serviceaccount>
Delete service account
kubectl delete serviceaccount <serviceaccount>
Describe the service account
kubectl describe serviceaccount <serviceaccount>
10. Formatted output
If you want to output detailed information to the terminal window in a specific format, you can add the -o parameter to the K8S command.
Print table with comma separated list of custom columns
-o=custom-columns=<spec>
Print table using custom column template from file
-o=custom-columns-file=<filename><filename>
Output API object in JSON format
-o=json
print the fields defined in the jsonpath expression
-o=jsonpath=<template>
Print the field <filename> defined by the jsonpath expression in the file
-o=jsonpath-file=<filename>
Print only the resource name, nothing else
-o=name
Output any additional information in plain text, for pods, including the node name
-o=wide
Output API object in YAML format
-o=yaml
The above is the command list of K8S. Below is a list of frequently used commands, I hope you can keep it in mind! ! !
Commands used by K8S high frequency
1. List all namespace services
View a list of all services in the current namespace:
kubectl get services
See a list of services in all namespaces:
kubectl get pods --all-namespaces
2. Retrieve detailed information on a node
View the overall status of the node:
kubectl get nodes
3. Create a new namespace with a unique name
Create a new namespace:
kubectl create ns hello-there
4. Use files to configure Kubernetes
Take advantage of configuration files and change resources:
kubectl apply -f config.yaml
5. List all running pods in the namespace
kubectl get pods --field-selector=status.phase=Running
6. Cluster service
Display endpoint information for the cluster master and services:
kubectl cluster-info
7. Service log ⭐
kubectl logs -f <service_name>
8. Key
Get a list of all Kubernetes keys:
kubectl get secrets
9. Events
See a list of all resource-based events:
kubectl get events
10. Create a new DaemonSet
kubectl create daemonset <daemonset_name>
Summarize
K8S has been called standard technology in the era of the prevalence of container technology. In this article, Ruige began to introduce the basic knowledge of K8S, then listed the command list of K8S, and finally extracted the frequently used commands. I hope this article can to help you.
Finally, thank you for reading. If you think the article is helpful to you, don’t forget to like ? and bookmark ⭐! If you have any questions, welcome to discuss with me in the comment section below! ! !
The text and pictures in this article are from InfoQ
This article is reprinted from https://www.techug.com/post/a-set-of-k8s-commands-for-everyone-it-s-coming036ee5e69b97f25fa0af/
This site is for inclusion only, and the copyright belongs to the original author.