kubectl 常用命令学习笔记
kubernetes
kubectl 是Kubernetes的命令行工具,可以让用户通过命令行的方式对Kubernetes集群进行操作,通过它与Kubernetes进行交互。通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。
kubectl 用法概述
kubectl命令行的语法如下
$ kubectl [command] [TYPE] [NAME] [flags]
- command:子命令,用于操作Kubernetes集群资源对象的命令,例如
create、delete、describe、get、apply等。 - TYPE:资源对象的类型,区分大小写,能以单数形式、复数形式或者简写形式表示。例如以下3种TYPE是等价的
kubectl get pod pod1、kubectl get pods pod1、kubectl get po pod1 - NAME:资源对象的名称,区分大小写。如果不指定名称,则系统将返回属于TYPE的全部对象的列表,例如
$ kubectl get pods将返回所有Pod的列表。 - flags:kubectl子命令的可选参数,例如使用“-s”指定apiserver的URL地址而不用默认值。
同时对多个资源对象进行操作
在一个命令行中也可以同时对多个资源对象进行操作,以多个 TYPE 和 NAME 的组合表示。
# 获取多个Pod的信息:
kubectl get pods pod1 pod2# 同时应用多个yaml文件,以多个-f file参数表示:
kubectl create -f pod1.yaml -f rc1.yaml -f service1.yaml
kubectl 输出格式
kubectl 命令可以用多种格式对结果进行显示,输出的格式通过 -o 参数指定:
$ kubectl [command] [TYPE] [NAME] -o=
根据不同子命令的输出结果,可选的输出格式如下:
| 输出格式 | 说明 |
|---|---|
| -o=custom-columns=< spec> | 根据自定义列名进行输出,以逗号分隔 |
| -o=custom-colimns-file=< filename> | 从文件中获取自定义列名进行输出 |
| -o=json | 以SON格式显示结果 |
| -o=jsonpath=< template> | 输出jsonpath表达式定义的字段信息 |
| -o=jsonpath-file=< filename> | 输出jsonpath表达式定义的字段信息,来源于文件 |
| -o=name | 仅输出资源对象的名称 |
| -o=wide | 输出额外信息,对于Pod,将输出Pod所在的Node名 |
| -o=yaml | 以yaml格式显示结果 |
常用的输出格式示例如下:
# 显示 Pod 的更多信息:
kubectl get pod -o wide# 以 yaml 格式显示 Pod 的详细信息:
kubectl get pod -o yaml# 以 JSON 格式显示 Pod 的详细信息:
kubectl get pod -o json# 以自定义列名显示 Pod 的信息:
kubectl get pod -o=custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion
kubectl 常用操作
创建资源对象:
# 根据 yaml配置文件 创建资源对象:
kubectl create -f ***.yaml
查看资源对象:
# 查看资源版本标签:
kubectl api-versions# 查看集群状态:
kubectl get cs# 查看集群节点信息:
kubectl get nodes# 查看所有Pod列表:
kubectl get pods# 查看deployment:
kubectl get deploy# 查看端口映射:
kubectl get svc# 查看指定命名空间的服务:
kubectl get svc -n kubectl-system# 显示运行中的Pod、Service、Deployment以及ReplicaSet的关键信息:
kubectl get all# 查看所有的命名空间:
kubectl get all --all-namespace
描述资源对象:
# 显示Node的详细信息:
kubectl describe nodes # 显示Pod的详细信息:
kubectl describe pods # 显示由RC管理的Pod的信息:
kubectl describe pods
删除资源对象:
# 基于pod.yaml定义的名称删除Pod:
kubectl delete -f pod.yaml# 删除所有Pod:
kubectl delete pods --all# 删除名称为my_pod的Pod:
kubectl delete pod my_pod
执行容器命令:
# 执行Pod的date命令:
kubectl exec date# 指定Pod中某个容器执行date命令:
kubectl exec -c date# 通过bash进入容器:
kubectl exec -it -c /bin/bash
kubectl exec -it container-name /bin/bash
查看容器日志:
# 查看容器输出到stdout的日志:
kubectl logs # 跟踪查看容器的日志,相当于 tail -f 命令的结果:
kubectl logs -f -c
查看集群信息:
# 查看集群状态信息:
kubectl cluster-info
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
