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 pod1kubectl get pods pod1kubectl 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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部