k8s命令集合


Docker 命令集合

1. 系统信息查看命令

命令格式:

docker version
docker info

功能说明:

  • docker version: 查看Docker客户端和服务器的版本信息
  • docker info: 显示Docker系统详细信息,包括容器、镜像数量,存储驱动,网络配置等

使用场景:

  • 检查Docker安装是否成功
  • 查看Docker版本及系统配置
  • 排查Docker相关问题时获取系统信息

2. 镜像管理命令

命令格式:

docker images           # 列出本地镜像
docker pull <镜像名> # 下载镜像
docker search <镜像名> # 搜索镜像
docker rmi <镜像ID或名称> # 删除镜像
docker commit <容器ID> <新镜像名> # 从容器创建新镜像
docker save -o <文件名> <镜像名> # 保存镜像为tar文件
docker load -i <文件名> # 从tar文件加载镜像
docker build -t <镜像名> . # 从Dockerfile构建镜像

功能说明:

  • docker images: 列出本地所有镜像
  • docker pull: 从仓库下载镜像
  • docker search: 在Docker Hub搜索镜像
  • docker rmi: 删除本地镜像
  • docker commit: 从容器创建新镜像
  • docker save/load: 镜像的导入导出
  • docker build: 从Dockerfile构建镜像

使用场景:

  • 下载和管理Docker镜像
  • 构建和分享自定义镜像
  • 镜像的备份和迁移

3. 容器管理命令

命令格式:

docker run [OPTIONS] <镜像名> [命令] # 运行容器
docker ps [-a] # 列出容器
docker start <容器ID或名称> # 启动容器
docker stop <容器ID或名称> # 停止容器
docker restart <容器ID或名称> # 重启容器
docker kill <容器ID或名称> # 强制停止容器
docker rm <容器ID或名称> # 删除容器
docker pause <容器ID> # 暂停容器
docker unpause <容器ID> # 恢复容器

功能说明:

  • docker run: 创建并运行容器
  • docker ps: 列出正在运行的容器,-a显示所有容器
  • docker start/stop/restart: 容器的基本操作
  • docker kill: 立即终止容器
  • docker rm: 删除已停止的容器
  • docker pause/unpause: 暂停/恢复容器

使用场景:

  • 启动、停止和管理容器
  • 部署和运行应用程序
  • 容器生命周期管理

4. 容器交互命令

命令格式:

docker exec [OPTIONS] <容器ID或名称> <命令>
docker attach <容器ID或名称>
docker logs <容器ID或名称>
docker top <容器ID或名称>
docker stats <容器ID或名称> # 查看容器资源使用情况

功能说明:

  • docker exec: 在运行的容器中执行命令
  • docker attach: 连接到正在运行的容器
  • docker logs: 查看容器日志
  • docker top: 显示容器内的进程
  • docker stats: 实时监控容器资源使用

使用场景:

  • 进入容器内部进行调试
  • 查看容器运行状态和日志
  • 监控容器内进程和资源使用

5. 网络和存储命令

命令格式:

docker network ls
docker network create <网络名>
docker network rm <网络名>
docker volume ls
docker volume create <卷名>
docker volume rm <卷名>
docker volume prune # 清理未使用的卷

功能说明:

  • docker network: 管理Docker网络
  • docker volume: 管理Docker数据卷
  • docker volume prune: 清理未使用的卷

使用场景:

  • 创建和管理容器网络
  • 数据持久化存储
  • 容器间通信配置

6. 其他重要运维命令

命令格式:

docker inspect <容器ID或镜像ID> # 查看详细配置信息
docker cp <源> <目标> # 在容器和主机间复制文件
docker tag <源镜像> <目标镜像> # 为镜像打标签
docker system df # 查看Docker磁盘使用情况
docker system prune # 清理未使用的资源

功能说明:

  • docker inspect: 查看对象(容器、镜像、网络等)的详细配置
  • docker cp: 文件在容器和主机间复制
  • docker tag: 为镜像添加标签
  • docker system df: 查看Docker磁盘使用情况
  • docker system prune: 清理未使用的资源

使用场景:

  • 监控容器性能
  • 查看和调试容器、镜像配置
  • 数据备份和迁移
  • 系统资源管理和清理

7. 安全和登录命令

命令格式:

docker login [SERVER]
docker logout [SERVER]
docker events
docker run --rm -it alpine:latest # 临时运行容器

功能说明:

  • docker login: 登录Docker仓库
  • docker logout: 退出Docker仓库
  • docker events: 获取实时事件
  • 在运行命令中使用--rm选项自动删除容器

使用场景:

  • 推送镜像到私有仓库
  • 安全认证
  • 监控Docker活动
  • 临时任务执行

Sealos 命令集合

1. 集群管理命令

命令格式:

sealos run <镜像名> [可选参数] # 运行集群镜像,快速部署应用
sealos apply -f Clusterfile # 使用Clusterfile运行集群镜像
sealos reset # 重置集群中的所有内容
sealos status # 查看Sealos集群的状态
sealos cert # 更新Kubernetes API服务器的证书
sealos gen # 生成具有所有默认设置的Clusterfile

功能说明:

  • sealos run: 轻松运行云原生应用,是部署集群的常用方式
  • sealos apply: 使用Clusterfile在Kubernetes集群内运行集群镜像
  • sealos reset: 完全清理集群,重置到初始状态
  • sealos status: 检查当前集群的状态
  • sealos cert: 更新集群API服务器的证书
  • sealos gen: 生成集群配置文件模板

使用场景:

  • 部署和初始化Kubernetes集群
  • 集群状态检查和维护
  • 证书更新和管理
  • 集群配置文件创建

2. 节点管理命令

命令格式:

sealos add --masters <IP列表> # 添加master节点到集群
sealos add --nodes <IP列表> # 添加node节点到集群
sealos delete --masters <IP列表> # 从集群中删除master节点
sealos delete --nodes <IP列表> # 从集群中删除node节点
sealos exec -m "command" # 在所有master节点上执行命令
sealos exec -n "command" # 在所有node节点上执行命令

功能说明:

  • sealos add: 向集群中添加master或node节点
  • sealos delete: 从集群中删除master或node节点
  • sealos exec: 在特定类型的节点上执行命令

使用场景:

  • 集群水平扩展,增加节点
  • 节点维护或故障后移除节点
  • 在集群节点上执行维护任务

3. 远程操作命令

命令格式:

sealos exec --hosts <IP地址> "command" # 在指定节点上执行命令
sealos scp <本地文件> <节点IP:远程路径> # 将文件复制到指定节点
sealos scp <节点IP:远程文件> <本地路径> # 从指定节点复制文件

功能说明:

  • sealos exec: 在远程节点上执行shell命令或脚本
  • sealos scp: 在本地与节点之间复制文件

使用场景:

  • 在远程节点上执行诊断或管理任务
  • 向节点传输配置文件或脚本
  • 远程收集日志或配置文件

4. 容器和镜像命令

命令格式:

sealos images # 列出本地存储中的镜像
sealos pull <镜像名> # 从指定位置拉取镜像
sealos push <镜像名> <目标地址> # 将镜像推送到指定的目标
sealos rmi <镜像名或ID> # 从本地存储中删除一个或多个镜像
sealos save -o <文件名> <镜像名> # 将镜像保存到存档文件中
sealos load -i <文件名> # 从文件中加载镜像
sealos tag <源镜像> <目标镜像> # 为本地镜像添加一个附加名称
sealos build -t <镜像名> . # 构建自定义集群镜像

功能说明:

  • sealos images/pull/push/rmi/save/load/tag: 镜像的基本操作
  • sealos build: 使用Sealfile或Kubefile构建集群镜像

使用场景:

  • 集群镜像管理
  • 构建和推送自定义集群镜像
  • 镜像的备份和迁移

5. 其他辅助命令

命令格式:

sealos completion <shell> # 为指定的shell生成自动补全脚本
sealos version # 打印版本信息
sealos env # 打印Sealos使用的所有环境信息
sealos login <仓库地址> # 登录到容器仓库
sealos logout # 登出容器仓库
sealos inspect <镜像名> # 检查容器或镜像的配置

功能说明:

  • sealos completion: 配置命令行自动补全功能
  • sealos version/env: 检查版本和环境信息
  • sealos login/logout: 容器仓库认证
  • sealos inspect: 查看镜像或容器的详细配置

使用场景:

  • 提高命令行操作效率
  • 检查Sealos安装和配置
  • 仓库访问认证
  • 镜像详细信息查看

Kubectl 命令集合

1. 基础语法

kubectl [command] [TYPE] [NAME] [flags]
  • command:指定要对一个或多个资源执行的操作,如create、get、describe和delete
  • TYPE:指定资源类型,不区分大小写,可以为单数、复数或缩写形式
  • NAME:指定资源的名称,区分大小写,若省略则显示所有资源
  • flags:指定可选参数,如-s或–server参数指定Kubernetes API服务器的地址和端口

2. 资源查看与查询命令

命令格式:

kubectl get pods -A                    # 列出所有命名空间中的Pod
kubectl get nodes # 获取所有节点信息
kubectl get deployments -n namespace # 获取指定命名空间下的部署信息
kubectl get services # 获取服务信息
kubectl get pv,pvc # 获取持久卷和持久卷申领信息
kubectl get all -n namespace # 获取指定命名空间下所有资源
kubectl get pods --watch # 实时监控Pod状态变化
kubectl get events # 查看集群事件

功能说明:

  • kubectl get: 获取资源对象的基本信息
  • 支持各种资源类型(pods, services, deployments等)

使用场景:

  • 检查集群整体运行状况
  • 查看节点健康状态
  • 检查应用部署状态
  • 查看服务暴露情况

3. 资源创建与管理命令

命令格式:

kubectl create -f resource.yaml                    # 从配置文件创建资源
kubectl apply -f resource.yaml # 应用资源配置(创建或更新)
kubectl apply -f <directory> # 应用目录下所有配置文件
kubectl delete pod pod_name # 删除指定Pod
kubectl delete -f resource.yaml # 从配置文件删除资源
kubectl scale deployment deployment_name --replicas=N # 扩缩容部署副本数
kubectl expose deployment deployment_name --port=port # 暴露服务
kubectl label pods pod_name key=value # 为Pod添加标签
kubectl annotate pods pod_name key=value # 为Pod添加注解

功能说明:

  • kubectl create/apply: 创建或更新资源对象
  • kubectl delete: 删除资源对象
  • kubectl scale: 调整应用副本数量
  • kubectl expose: 创建Service关联Deployment

使用场景:

  • 从配置文件创建资源
  • 生产环境推荐使用apply进行更新
  • 动态调整应用负载能力
  • 删除异常或不需要的资源

4. 资源描述与调试命令

命令格式:

kubectl describe pod pod_name                       # 显示Pod详细信息和事件
kubectl describe node node_name # 显示节点详细信息
kubectl describe deployment deployment_name # 显示部署详细信息
kubectl logs pod_name # 查看Pod日志
kubectl logs pod_name -f # 实时查看Pod日志流
kubectl logs pod_name --tail=100 # 查看Pod最后100行日志
kubectl exec -it pod_name -- bash # 进入Pod执行交互命令
kubectl exec -it pod_name -- sh # 进入Pod执行sh命令
kubectl port-forward pod_name local_port:pod_port # 端口转发到本地
kubectl cp /path/to/file <pod>:/path/to/file # 在Pod和本地间复制文件
kubectl top nodes # 显示节点资源使用情况
kubectl top pods -n namespace # 显示Pod资源使用情况

功能说明:

  • kubectl describe: 显示资源的详细配置和状态信息
  • kubectl logs: 查看容器日志
  • kubectl exec: 在Pod中执行命令
  • kubectl port-forward: 端口转发用于调试
  • kubectl top: 显示资源使用情况

使用场景:

  • 排查Pod启动失败问题
  • 查看应用运行状态和资源使用
  • 调试容器内部环境
  • 实时监控应用输出
  • 本地调试集群内服务

5. 配置与更新命令

命令格式:

kubectl set image deployment/deployment_name container_name=image:newtag  # 更新部署的镜像
kubectl patch deployment deployment_name -p '{"spec":{"replicas":3}}' # 部分更新资源
kubectl rollout history deployment deployment_name # 查看部署历史
kubectl rollout undo deployment deployment_name # 回滚到上一个版本
kubectl rollout undo deployment deployment_name --to-revision=N # 回滚到指定版本
kubectl rollout status deployment deployment_name # 查看滚动更新状态
kubectl set env deployment/deployment_name ENV_NAME=ENV_VALUE # 设置环境变量
kubectl set resources deployment/deployment_name --limits=cpu=200m # 设置资源限制
kubectl patch pod pod_name -p '{"spec":{"activeDeadlineSeconds":100}}' # 部分更新Pod

功能说明:

  • kubectl set image: 更新部署的镜像
  • kubectl patch: 部分更新资源配置
  • kubectl rollout: 管理部署的滚动更新和回滚
  • kubectl set env/resources: 设置环境变量和资源限制

使用场景:

  • 灰度发布新版本
  • 回滚故障更新
  • 监控更新进度
  • 修改资源配置

6. 节点与集群管理命令

命令格式:

kubectl cordon node_name                    # 标记节点不可调度
kubectl uncordon node_name # 标记节点可调度
kubectl drain node_name # 安全排空节点
kubectl taint nodes node_name key=value:NoSchedule # 给节点添加污点
kubectl cluster-info # 显示主控节点和服务信息
kubectl config view # 查看kubeconfig配置
kubectl config get-contexts # 列出kubeconfig中的上下文
kubectl config use-context context-name # 切换当前上下文
kubectl version # 显示客户端和服务端版本

功能说明:

  • kubectl cordon/uncordon: 标记节点可调度或不可调度
  • kubectl drain: 安全驱逐节点上的Pod
  • kubectl taint: 给节点添加污点
  • kubectl cluster-info/config: 查看集群和配置信息

使用场景:

  • 维护前排空节点
  • 恢复节点调度
  • 节点维护前安全驱逐Pod
  • 集群配置管理

7. 配置管理与网络命令

命令格式:

kubectl create configmap name --from-file=file         # 创建ConfigMap
kubectl create configmap name --from-literal=key=val # 创建键值对ConfigMap
kubectl create secret generic name --from-literal=key=val # 创建Secret
kubectl create secret generic name --from-file=file # 从文件创建Secret
kubectl get configmaps -n namespace # 获取ConfigMap
kubectl get secrets -n namespace # 获取Secret
kubectl get ingress # 获取入口资源
kubectl get networkpolicy # 获取网络策略
kubectl create -f service-account.yaml # 创建服务账户
kubectl get serviceaccount -n namespace # 获取服务账户

功能说明:

  • kubectl create configmap/secret: 创建配置和密钥
  • kubectl get ingress/networkpolicy: 获取网络相关资源
  • kubectl create/get serviceaccount: 管理服务账户

使用场景:

  • 管理配置文件和敏感信息
  • 控制应用网络访问
  • 权限管理

8. 调试和排错命令

命令格式:

kubectl debug node/node_name -it --image=busybox    # 调试节点
kubectl debug pod_name -it --image=busybox # 调试Pod
kubectl get componentstatuses # 查看集群组件状态
kubectl get pods --field-selector status.phase!=Running # 查找非运行状态Pod
kubectl get pods --field-selector spec.nodeName=<node-name> # 查找节点上Pod
kubectl events --for pod/pod_name # 查看Pod事件

功能说明:

  • kubectl debug: 创建调试Pod用于排错
  • kubectl get componentstatuses: 检查集群组件状态
  • 字段选择器: 通过字段筛选资源

使用场景:

  • 调试集群节点和Pod
  • 排查集群组件问题
  • 查找特定状态的资源

结论

本文档全面总结了Docker、Sealos和Kubectl三个重要工具的运维命令,涵盖了从基础操作到高级管理的各个方面。这些命令是云原生运维工程师必须掌握的核心技能,熟练使用这些命令可以有效提高日常运维效率,保障应用的稳定运行。

常用运维流程示例

1. 应用部署流程

  1. 使用Docker构建应用镜像
  2. 使用Sealos部署Kubernetes集群
  3. 使用Kubectl部署应用到集群

2. 问题排查流程

  1. 使用kubectl get pods检查Pod状态
  2. 使用kubectl describe pod查看详情
  3. 使用kubectl logs查看日志
  4. 使用kubectl exec进入Pod调试

3. 集群维护流程

  1. 使用kubectl cordon标记节点不可调度
  2. 使用kubectl drain安全排空节点
  3. 维护完成后使用kubectl uncordon恢复节点调度
  4. 使用sealos exec在节点上执行维护命令

掌握这些命令和流程,可以有效提升Kubernetes集群和应用的管理效率。


文章作者: huhuhuhr
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 huhuhuhr !
  目录