kubectl作为客户端CLI工具,可以让用户通过命令行的方式对K8S集群进行操作。K8S排查问题时会经常用到kubectl命令,下面列出常用的 kubectl 命令。

kubectl常用命令

get获取列出一个或多个资源的信息。(资源分为pod、instance、service等很多种)
describe输出指定的一个/多个资源的详细信息。(一般describe状态有问题节点,如Pending等)
logs输出pod中一个容器的日志。(如果pod只包含一个容器则可以省略容器名)
create/apply指定Yaml或Json,创建资源。(通过文件或者控制台输入)
edit

编辑服务器上定义的资源。(文件默认输出格式为YAML。要以JSON格式编辑,请指定“-o json”选项。)

rolling-update执行指定ReplicationController的滚动更新。(不中断业务的更新方式)
delete删除一个资源(可以是pod、instance等)

# 查看所有 pod 列表,  -n 后跟 namespace, 查看指定的命名空间
kubectl get pod
kubectl get pod -n kube  
# 查看 RC 和 service 列表, -o wide 查看详细信息
kubectl get rc,svc
kubectl get pod,svc -o wide  
kubectl get pod <pod-name> -o yaml
# 查看 endpoint 列表
kubectl get endpoints


# 显示 Node 的详细信息
kubectl describe node 192.168.0.212
# 显示 Pod 的详细信息, 特别是查看 pod 无法创建的时候的日志
kubectl describe pod <pod-name>
eg:
kubectl describe pod redis-master-tqds9


# 根据 yaml 创建资源, apply 可以重复执行,create 不行
kubectl create -f pod.yaml
kubectl apply -f pod.yaml


# 基于 pod.yaml 定义的名称删除 pod 
kubectl delete -f pod.yaml 
# 删除所有包含某个 label 的pod 和 service
kubectl delete pod,svc -l name=<label-name>
# 删除所有 Pod
kubectl delete pod --all


# 执行 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
eg:
kubectl exec -it redis-master-cln81 -- bash


# 查看容器的日志
kubectl logs <pod-name>
kubectl logs -f <pod-name> # 实时查看日志


 

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐