kubectl 常用命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kubectl 常用命令相关的知识,希望对你有一定的参考价值。
参考技术A # 查看所有 pod 列表, -n 后跟 namespace, 查看指定的命名空间kubectl get pod
kubectl get pod -n kube
kubectl get pod -o wide
# 查看 RC 和 service 列表, -o wide 查看详细信息
kubectl get rc,svc
kubectl get pod,svc -o wide
kubectl get pod <pod-name> -o yaml
# 显示 Node 的详细信息
kubectl describe node <node-ip>
# 显示 Pod 的详细信息, 特别是查看 pod 无法创建的时候的日志
kubectl describe pod <pod-name>
# 根据 yaml 创建资源, apply 可以重复执行,create 不行
kubectl create -f pod.yaml
kubectl apply -f pod.yaml
# 基于 xxx.yaml 定义的名称删除 pod
kubectl delete -f pod.yaml
# 删除所有包含某个 label 的pod 和 service
kubectl delete pod,svc -l name=<label-name>
# 删除所有 Pod
kubectl delete pod --all
# 查看 endpoint 列表
kubectl get endpoints
# 执行 pod 的 date 命令
kubectl exec <pod-name> -- date
kubectl exec <pod-name> -- bash
kubectl exec <pod-name> -- ping 10.24.51.9
# 通过bash获得 pod 中某个容器的TTY,相当于登录容器
kubectl exec -it <pod-name> -c <container-name> -- bash
# 查看容器的日志
kubectl logs <pod-name>
kubectl logs -f <pod-name> # 实时查看日志
kubectl log <pod-name> -c <container_name> # 若 pod 只有一个容器,可以不加 -c
Kubectl 常用命令大全
参考技术Acreate 命令 :根据文件或者输入来创建资源
delete 命令 :删除资源
get 命令 :获得资源信息
run 命令 :在集群中创建并运行一个或多个容器镜像。
更详细用法参见 : http://docs.kubernetes.org.cn/468.html
expose 命令 :创建一个service服务,并且暴露端口让外部可以访问
更多expose详细用法参见 : http://docs.kubernetes.org.cn/475.html
set 命令 :配置应用的一些特定资源,也可以修改应用已有的资源
set 命令详情参见 : http://docs.kubernetes.org.cn/669.html
这个命令用于设置资源的一些范围限制。
资源对象中的 Pod 可以指定计算资源需求(CPU-单位m、内存-单位Mi),即使用的最小资源请求(Requests),限制(Limits)的最大资源需求,Pod将保证使用在设置的资源数量范围。
对于每个Pod资源,如果指定了 Limits (限制)值,并省略了 Requests (请求),则 Requests 默认为 Limits 的值。
可用资源对象包括(支持大小写) : replicationcontroller 、 deployment 、 daemonset 、 job 、 replicaset 。
例如 :
设置资源的 selector (选择器)。如果在调用"set selector"命令之前已经存在选择器,则新创建的选择器将覆盖原来的选择器。
selector 必须以字母或数字开头,最多包含63个字符,可使用:字母、数字、连字符" - " 、点"."和下划线" _ "。如果指定了--resource-version,则更新将使用此资源版本,否则将使用现有的资源版本。
注意 :目前 selector 命令只能用于 Service 对象。
用于更新现有资源的容器镜像。
可用资源对象包括: pod (po) 、 replicationcontroller (rc) 、 deployment (deploy) 、 daemonset (ds) 、 job 、 replicaset (rs) 。
explain 命令 :用于显示资源文档信息
edit 命令 : 用于编辑资源信息
label命令 : 用于更新(增加、修改或删除)资源上的 label(标签)
例 :
annotate命令 :更新一个或多个资源的Annotations信息。也就是注解信息,可以方便的查看做了哪些操作。
例子 :
completion命令 :用于设置 kubectl 命令自动补全
BASH
ZSH
rollout 命令 : 用于对资源进行管理
可用资源包括: deployments , daemonsets 。
子命令 :
rolling-update命令 : 执行指定ReplicationController的滚动更新。
该命令创建了一个新的 RC , 然后一次更新一个 pod 方式逐步使用新的 PodTemplate ,最终实现 Pod 滚动更新, new-controller.json 需要与之前 RC 在相同的 namespace 下。
scale命令 :扩容或缩容 Deployment 、 ReplicaSet 、 Replication Controller 或 Job 中 Pod 数量
scale 也可以指定多个前提条件,如:当前副本数量或 --resource-version ,进行伸缩比例设置前,系统会先验证前提条件是否成立。这个就是弹性伸缩策略。
autoscale命令 :这个比 scale 更加强大,也是弹性伸缩策略 ,它是根据流量的多少来自动进行扩展或者缩容。
指定 Deployment 、 ReplicaSet 或 ReplicationController ,并创建已经定义好资源的自动伸缩器。使用自动伸缩器可以根据需要自动增加或减少系统中部署的pod数量。
certificate命令 :用于证书资源管理,授权等
cluster-info 命令 :显示集群信息
top 命令 :用于查看资源的cpu,内存磁盘等资源的使用率
cordon命令 :用于标记某个节点不可调度
uncordon命令 :用于标签节点可以调度
drain命令 : 用于在维护期间排除节点。
taint命令 :用于给某个 Node 节点设置污点
describe命令 :显示特定资源的详细信息
logs命令 :用于在一个pod中打印一个容器的日志,如果pod中只有一个容器,可以省略容器名
参数选项 :
exec命令 :进入容器进行交互,在容器中执行命令
命令选项 :
attach命令 :连接到一个正在运行的容器。
参数选项 :
cp命令 :拷贝文件或者目录到pod容器中
用于 pod 和外部的文件交换,类似于 docker 的 cp ,就是将容器中的内容和外部的内容进行交换。
api-servions命令 :打印受支持的 api 版本信息
help命令 :用于查看命令帮助
config 命令 : 用于修改 kubeconfig 配置文件(用于访问api,例如配置认证信息)
设置 kubectl 与哪个 Kubernetes 集群进行通信并修改配置信息。查看 使用 kubeconfig 跨集群授权访问 文档获取详情配置文件信息。
version 命令 :打印客户端和服务端版本信息
plugin 命令 :运行一个命令行插件
apply命令 :通过文件名或者标准输入对资源应用配置
通过文件名或控制台输入,对资源进行配置。 如果资源不存在,将会新建一个。可以使用 JSON 或者 YAML 格式。
参数选项 :
patch命令 :使用补丁修改,更新资源的字段,也就是修改资源的部分内容
replace命令 : 通过文件或者标准输入替换原有资源
convert命令 :不同的版本之间转换配置文件
要以特定格式将详细信息输出到终端窗口,可以将 -o 或 --output 参数添加到支持的 kubectl 命令。
Kubectl 日志输出详细程度是通过 -v 或者 --v 来控制的,参数后跟了一个数字表示日志的级别。 Kubernetes 通用的日志习惯和相关的日志级别在 这里 有相应的描述。
以上是 kubectl 一些基本命令操作,需要时方便查阅。
以上是关于kubectl 常用命令的主要内容,如果未能解决你的问题,请参考以下文章