k8s
Kubectl常用命令

Kubectl常用命令

查看pod日志

# 查看当前pod日志
kubectl logs <pod-name> -n <namespace>

# 查看异常重启前日志
kubectl logs -p <pod-name> -n <namespace>

# 查看最后10条日志
kubectl logs --tail=10 -p <pod-name> -n <namespace> 

查看pod详细信息

kubectl describe pod <pod-name> -n <namespace>

yaml格式查看pod文件

kubectl get pod <pod-name> -o yaml

登录pod

# 进入pod的默认容器
kubectl exec -it <pod-name> -- /bin/bash

# 进入pod的指定容器
kubectl exec -it <pod-name> -c <container-name> -- /bin/sh

# 如果容器没有bash,使用sh
kubectl exec -it <pod-name> -- /bin/sh

# 执行单条命令
kubectl exec <pod-name> -- ls -la /app

拷贝pod中文件

# 拷贝单个文件
kubectl cp <namespace>/<pod-name>:/path/to/file ./local_file

# 指定容器拷贝
kubectl cp <namespace>/<pod-name>:/app/logs/app.log ./app.log -c <container-name>

# 拷贝整个目录
kubectl cp <namespace>/<pod-name>:/var/log/ ./pod_logs/

# 简写(默认命名空间)
kubectl cp <pod-name>:/etc/config/conf.yaml ./conf.yaml

# 拷贝文件到pod
kubectl cp ./config.yaml <namespace>/<pod-name>:/etc/app/config.yaml

# 拷贝目录到pod
kubectl cp ./config/ <namespace>/<pod-name>:/etc/app/

# 带权限保留拷贝
kubectl cp --preserve ./script.sh <pod-name>:/tmp/script.sh

修改配置

# 编辑pod(不推荐直接编辑pod)
kubectl edit pod <pod-name>

# 编辑deployment(推荐方式)
kubectl edit deployment <deploy-name>

# 编辑configmap
kubectl edit configmap <cm-name>

# 编辑secret
kubectl edit secret <secret-name>