Kubectl是Kubernetes的命令行配置工具,可与Kubernetes API服务器通信。使用kubectl可以创建,检查,更新和删除Kubernetes对象。我们已经创建了该备忘单,作为在许多常见的Kubernetes组件和资源上执行命令的快速参考。您可以对对象使用完整命令,例如pod,复数形式(pod)或我们在每个部分的标题中的括号中提到的简码变体。它们都会产生相同的结果。您需要使用要管理的资源的特定<名称>跟随大多数命令。名称>
显示有关集群中的主服务器和服务的端点信息
kubectl cluster-info
显示在客户端和服务器上运行的Kubernetes版本
kubectl version
获取集群的配置
kubectl config view
列出可用的API资源
kubectl api-resources
列出可用的API版本
kubectl api-versions
列出所有内容
kubectl get all --all-namespaces
缩写 = ds
列出一个或多个守护程序
kubectl get daemonset
编辑和更新一个或多个守护程序的定义
kubectl edit daemonset <daemonset_name>
删除守护程序
kubectl delete daemonset <daemonset_name>
创建一个新的守护进程
kubectl create daemonset <daemonset_name>
管理后台驻留程序的部署
kubectl rollout daemonset
显示名称空间中守护程序的详细状态
kubectl describe ds <daemonset_name> -n <namespace_name>
缩写 = deploy
列出一个或多个部署
kubectl get deployment
显示一个或多个部署的详细状态
kubectl describe deployment <deployment_name>
编辑和更新服务器上一个或多个部署的定义
kubectl edit deployment <deployment_name>
创建一个新的部署
kubectl create deployment <deployment_name>
删除部署
kubectl delete deployment <deployment_name>
查看部署的部署状态
kubectl rollout status deployment <deployment_name>
缩写 = ev
列出系统中所有资源的最近事件
kubectl get events
仅列出警告
kubectl get events --field-selector type=Warning
列出事件,但排除Pod事件
kubectl get events --field-selector involvedObject.kind!=Pod
拉取具有特定名称的单个节点的事件
kubectl get events --field-selector involvedObject.kind=Node, involvedObject.name=<node_name>
从事件列表中过滤掉正常事件
kubectl get events --field-selector type!=Normal
打印容器的日志
kubectl logs <pod_name>
打印窗格最近一小时的日志
kubectl logs --since=1h <pod_name>
获取最近的20行日志
kubectl logs --tail=20 <pod_name>
从服务获取日志,并可以选择选择哪个容器
kubectl logs -f <service_name> [-c <$container>]
打印Pod的日志并关注新日志
kubectl logs -f <pod_name>
打印容器中容器的日志
kubectl logs -c <container_name> <pod_name>
将Pod的日志输出到名为“ pod.log”的文件中
kubectl logs <pod_name> pod.log
查看以前失败的Pod的日志
kubectl logs --previous <pod_name>
对于日志,我们还建议使用Johan Haleby开发的名为Kubetail的工具。这是一个bash脚本,可让您同时从多个Pod中获取日志。您可以在其Github存储库中了解更多信息。这是一些使用Kubetail的示例命令。
获取以pod_prefix命名的所有Pod的日志
kubetail <pod_prefix>
包括最近5分钟的日志
kubetail <pod_prefix> -s 5m
修改对象的另一种方法是通过清单文件。我们强烈建议使用此方法。这是通过使用yaml文件以及为对象配置的所有必需选项来完成的。我们将yaml文件存储在git存储库中,因此我们可以跟踪更改并简化更改。
通过文件名或标准输入将配置应用于对象。覆盖现有配置。
kubectl apply -f manifest_file.yaml
建立物件
kubectl create -f manifest_file.yaml
在目录的所有清单文件中创建对象
kubectl create -f ./dir
从URL创建对象
kubectl create -f ‘url’
删除物件
kubectl delete -f manifest_file.yaml
缩写 = ns
创建名称空间<名称>名称>
kubectl create namespace <namespace_name>
列出一个或多个名称空间
kubectl get namespace <namespace_name>
显示一个或多个名称空间的详细状态
kubectl describe namespace <namespace_name>
删除名称空间
kubectl delete namespace <namespace_name>
编辑和更新名称空间的定义
kubectl edit namespace <namespace_name>
显示名称空间的资源(CPU /内存/存储)使用情况
kubectl top namespace <namespace_name>
缩写 = no
更新一个或多个节点上的污点
kubectl taint node <node_name>
列出一个或多个节点
kubectl get node
删除一个或多个节点
kubectl delete node <node_name>
显示节点的资源使用情况(CPU /内存/存储)
kubectl top node
每个节点的资源分配
kubectl describe nodes | grep Allocated -A 5
在节点上运行的Pod
kubectl get pods -o wide | grep <node_name>
注释节点
kubectl annotate node <node_name>
将节点标记为不可调度
kubectl cordon node <node_name>
将节点标记为可调度
kubectl uncordon node <node_name>
排空节点以准备维护
kubectl drain node <node_name>
添加或更新一个或多个节点的标签
kubectl label node
缩写 = po
列出一个或多个豆荚
kubectl get pod
删除吊舱
kubectl delete pod <pod_name>
显示窗格的详细状态
kubectl describe pod <pod_name>
创建一个吊舱
kubectl create pod <pod_name>
对容器中的容器执行命令
kubectl exec <pod_name> -c <container_name> <command>
在单个容器的容器上获取交互式外壳
kubectl exec -it <pod_name> /bin/sh
显示Pod的资源使用情况(CPU /内存/存储)
kubectl top pod
添加或更新窗格的注释
kubectl annotate pod <pod_name> <annotation>
添加或更新广告连播的标签
kubectl label pod <pod_name>
说明: 现在推荐使用配置
ReplicaSet
的Deployment
来建立副本管理机制。
缩写 = rc
列出副本控制器
kubectl get rc
按名称空间列出副本控制器
kubectl get rc --namespace=”<namespace_name>”
缩写 = rs
列表副本集
kubectl get replicasets
显示一个或多个副本集的详细状态
kubectl describe replicasets <replicaset_name>
缩放副本集
kubectl scale --replicas=[x]
创建一个秘密
kubectl create secret
列出机密
kubectl get secrets
列出有关机密的详细信息
kubectl describe secrets
删除机密
kubectl delete secret <secret_name>
缩写 = svc
列出一项或多项服务
kubectl get services
显示服务的详细状态
kubectl describe services
将复制控制器,服务,部署或Pod公开为新的Kubernetes服务
kubectl expose deployment [deployment_name]
编辑和更新一项或多项服务的定义
kubectl edit services
缩写 = sa
列出服务帐户
kubectl get serviceaccounts
显示一个或多个服务帐户的详细状态
kubectl describe serviceaccounts
更换服务帐号
kubectl replace serviceaccount
删除服务帐号
kubectl delete serviceaccount <service_account_name>
缩写 = sts
列出StatefulSet
kubectl get statefulset
仅删除StatefulSet(不删除Pod)
kubectl delete statefulset/[stateful_set_name] --cascade=false
在Kubectl中,您可以使用命令指定可选标志。这是一些最常见和有用的。
-o输出格式。例如,如果您想以ps输出格式列出所有Pod以及更多信息。
kubectl get pods -o wide
-n –namespace的简写。例如,如果要列出特定命名空间中的所有Pod,请执行以下命令:
kubectl get pods --namespace=[namespace_name]
kubectl get pods -n=[namespace_name]
-f文件名,目录或用于创建资源的文件的URL。例如,当使用名为newpod.json的文件中的数据创建pod时。
kubectl create -f ./newpod.json
-l要过滤的选择器,支持’=’,’==’和’!=’。