【Kubernetes(K8S)】学习记录四:kubectl 常用命令
介绍Kubectl是一个命令行界面,用于针对Kubernetes集群运行命令。查看help,了解kubectl命令## kubectl helpBasic Commands (Beginner):createCreate a resource from a file or from stdin.expose使用 replication co...
·
kubectl 常用命令
- 一、介绍
- 二、查看help,了解kubectl命令
- 三、命令汇总
- 四、常用的命令详解
- 4.1、查看所有 pod 列表, -n 后跟 namespace, 查看指定的命名空间
- 4.2、 进入某个pod
- 4.3、查看 service 列表, -o wide 查看详细信息,包括cluster ip及port信息
- 4.4、显示 Node 的详细信息
- 4.5、显示 Pod 的详细信息, 特别是查看 pod 无法创建的时候的日志
- 4.6、根据 yaml 创建资源, apply 可以重复执行,create 不行
- 4.7、基于 pod.yaml 定义的名称删除 pod
- 4.8、删除所有包含某个 label 的pod 和 service
- 4.9、删除所有 Pod
- 4.10、查看 endpoint 列表
- 4.11、执行 pod 的 date 命令
- 4.13、查看容器的日志
- 4.14、获取所有namespace
- 4.15、在指定的namespace下获取资源
- 4.16、以yaml格式输出资源
- 4.17、编辑一个资源文件
- 4.18、获取所有的deployment
- 4.19、删除指定的deployment
一、介绍
Kubectl是一个命令行界面,用于针对Kubernetes集群运行命令。
二、查看help,了解kubectl命令
## kubectl help
Basic Commands (Beginner):
create Create a resource from a file or from stdin.
expose 使用 replication controller, service, deployment 或者 pod 并暴露它作为一个 新的
Kubernetes Service
run 在集群中运行一个指定的镜像
set 为 objects 设置一个指定的特征
Basic Commands (Intermediate):
explain 查看资源的文档
get 显示一个或更多 resources
edit 在服务器上编辑一个资源
delete Delete resources by filenames, stdin, resources and names, or by resources and label selector
Deploy Commands:
rollout Manage the rollout of a resource
scale 为 Deployment, ReplicaSet, Replication Controller 或者 Job 设置一个新的副本数量
autoscale 自动调整一个 Deployment, ReplicaSet, 或者 ReplicationController 的副本数量
Cluster Management Commands:
certificate 修改 certificate 资源.
cluster-info 显示集群信息
top Display Resource (CPU/Memory/Storage) usage.
cordon 标记 node 为 unschedulable
uncordon 标记 node 为 schedulable
drain Drain node in preparation for maintenance
taint 更新一个或者多个 node 上的 taints
Troubleshooting and Debugging Commands:
describe 显示一个指定 resource 或者 group 的 resources 详情
logs 输出容器在 pod 中的日志
attach Attach 到一个运行中的 container
exec 在一个 container 中执行一个命令
port-forward Forward one or more local ports to a pod
proxy 运行一个 proxy 到 Kubernetes API server
cp 复制 files 和 directories 到 containers 和从容器中复制 files 和 directories.
auth Inspect authorization
Advanced Commands:
apply 通过文件名或标准输入流(stdin)对资源进行配置
patch 使用 strategic merge patch 更新一个资源的 field(s)
replace 通过 filename 或者 stdin替换一个资源
wait Experimental: Wait for one condition on one or many resources
convert 在不同的 API versions 转换配置文件
Settings Commands:
label 更新在这个资源上的 labels
annotate 更新一个资源的注解
completion Output shell completion code for the specified shell (bash or zsh)
Other Commands:
alpha Commands for features in alpha
api-resources Print the supported API resources on the server
api-versions Print the supported API versions on the server, in the form of "group/version"
config 修改 kubeconfig 文件
plugin Runs a command-line plugin
version 输出 client 和 server 的版本信息
三、命令汇总
命令 | 作用 |
---|---|
get | 获取列出一个或多个资源的信息。(资源分为pod、instance、service等很多种) |
create | 指定Yaml或Json,创建资源。(通过文件或者控制台输入) |
apply | 通过文件名或控制台输入,对资源进行配置。 |
edit | 编辑服务器上定义的资源。(文件默认输出格式为YAML。要以JSON格式编辑,请指定“-o json”选项。) |
delete | 删除一个资源(可以是pod、instance等) |
describe | 输出指定的一个/多个资源的详细信息。(一般describe状态有问题节点,如Pending等) |
logs | 输出pod中一个容器的日志。(如果pod只包含一个容器则可以省略容器名) |
exec | 在容器内部执行命令 |
run | 在集群中使用指定镜像启动容器 |
set | 配置应用资源 |
rolling-update | 执行指定ReplicationController的滚动更新。(不中断业务的更新方式) |
kubectl annotate – 更新资源的注解。
kubectl api-versions – 以“组/版本”的格式输出服务端支持的API版本。
kubectl apply – 通过文件名或控制台输入,对资源进行配置。
kubectl attach – 连接到一个正在运行的容器。
kubectl autoscale – 对replication controller进行自动伸缩。
kubectl cluster-info – 输出集群信息。
kubectl config – 修改kubeconfig配置文件。
kubectl create – 通过文件名或控制台输入,创建资源。
kubectl delete – 通过文件名、控制台输入、资源名或者label selector删除资源。
kubectl describe – 输出指定的一个/多个资源的详细信息。
kubectl edit – 编辑服务端的资源。
kubectl exec – 在容器内部执行命令。
kubectl expose – 输入replication controller,service或者pod,并将其暴露为新的kubernetes service。
kubectl get – 输出一个/多个资源。
kubectl label – 更新资源的label。
kubectl logs – 输出pod中一个容器的日志。
kubectl namespace -(已停用)设置或查看当前使用的namespace。
kubectl patch – 通过控制台输入更新资源中的字段。
kubectl port-forward – 将本地端口转发到Pod。
kubectl proxy – 为Kubernetes API server启动代理服务器。
kubectl replace – 通过文件名或控制台输入替换资源。
kubectl rolling-update – 对指定的replication controller执行滚动升级。
kubectl run – 在集群中使用指定镜像启动容器。
kubectl scale – 为replication controller设置新的副本数。
kubectl stop – (已停用)通过资源名或控制台输入安全删除资源。
kubectl version – 输出服务端和客户端的版本信息。
四、常用的命令详解
4.1、查看所有 pod 列表, -n 后跟 namespace, 查看指定的命名空间
kubectl get pod
kubectl get pod -n kube
4.2、 进入某个pod
kubectl exec -it <pod-name> -c <container-name> -- bash
eg:
kubectl exec -it redis-master-cln81 -- bash
4.3、查看 service 列表, -o wide 查看详细信息,包括cluster ip及port信息
kubectl get rc,svc
kubectl get pod,svc -o wide
kubectl get pod <pod-name> -o yaml
4.4、显示 Node 的详细信息
kubectl describe node 192.168.XXX.XXX
4.5、显示 Pod 的详细信息, 特别是查看 pod 无法创建的时候的日志
kubectl describe pod <pod-name>
4.6、根据 yaml 创建资源, apply 可以重复执行,create 不行
kubectl create -f pod.yaml
kubectl apply -f pod.yaml
4.7、基于 pod.yaml 定义的名称删除 pod
kubectl delete -f pod.yaml
4.8、删除所有包含某个 label 的pod 和 service
kubectl delete pod,svc -l name=<label-name>
4.9、删除所有 Pod
kubectl delete pod --all
4.10、查看 endpoint 列表
kubectl get endpoints
4.11、执行 pod 的 date 命令
kubectl exec <pod-name> -- date
kubectl exec <pod-name> -- bash
kubectl exec <pod-name> -- ping 10.24.51.9
4.13、查看容器的日志
kubectl logs <pod-name>
kubectl logs -f <pod-name> # 实时查看日志
4.14、获取所有namespace
kubectl get ns
4.15、在指定的namespace下获取资源
kubectl -n {$nameSpace} get pods
4.16、以yaml格式输出资源
kubectl -n {$nameSpace} -o yaml
4.17、编辑一个资源文件
这里以编辑configMap资源对象为例(yaml格式):
kubectl -n {$nameSpace} edit {$resourceType} {$resourceName} -o yaml
4.18、获取所有的deployment
kubectl get deploy
4.19、删除指定的deployment
kubectl delete deploy/XXX
删除掉deployment,其对应的pod也会被删除
更多推荐
已为社区贡献3条内容
所有评论(0)