Kubernetes (k8s) 命令大全

Kubernetes (k8s) 命令大全

以下是 Kubernetes 常用命令分类整理,涵盖集群管理、Pod、Deployment、Service、ConfigMap、Secret 等核心资源操作。


一、基础命令

1. 查看集群信息

kubectl cluster-info                  # 查看集群信息
kubectl get nodes                     # 查看所有节点
kubectl describe node <节点名>        # 查看节点详情

2. 查看资源

kubectl get pods                      # 查看所有 Pod
kubectl get pods -o wide              # 查看 Pod 详细信息(包括 IP 和节点)
kubectl get deployments               # 查看所有 Deployment
kubectl get services                  # 查看所有 Service
kubectl get configmaps                # 查看所有 ConfigMap
kubectl get secrets                   # 查看所有 Secret
kubectl get all                       # 查看所有核心资源(Pod、Deployment、Service 等)

3. 查看资源详情

kubectl describe pod <Pod名>          # 查看 Pod 详情
kubectl describe deployment <Deployment名>  # 查看 Deployment 详情
kubectl logs <Pod名>                  # 查看 Pod 日志
kubectl logs -f <Pod名>               # 实时查看 Pod 日志(类似 tail -f)

4. 删除资源

kubectl delete pod <Pod名>            # 删除 Pod
kubectl delete deployment <Deployment名>  # 删除 Deployment
kubectl delete service <Service名>    # 删除 Service
kubectl delete configmap <ConfigMap名>    # 删除 ConfigMap
kubectl delete secret <Secret名>      # 删除 Secret

二、Pod 相关命令

1. 创建 Pod

kubectl run <Pod名> --image=<镜像名> --port=<端口>  # 创建单个 Pod(不推荐生产使用)

⚠️ 注意:直接创建 Pod 在生产环境中不推荐,应使用 Deployment 管理 Pod。

2. 查看 Pod 状态

kubectl get pods                      # 查看所有 Pod
kubectl get pods -w                   # 实时监控 Pod 状态变化
kubectl get pods --all-namespaces     # 查看所有命名空间的 Pod

3. 进入 Pod

kubectl exec -it <Pod名> -- /bin/sh   # 进入 Pod 的 Shell(Alpine 镜像用 `/bin/sh`,Ubuntu 用 `/bin/bash`)
kubectl exec <Pod名> -- ls /          # 在 Pod 内执行命令(如 `ls`)

4. 删除 Pod

kubectl delete pod <Pod名>            # 删除单个 Pod
kubectl delete pod <Pod名> --grace-period=0 --force  # 强制删除卡住的 Pod

三、Deployment 相关命令

1. 创建 Deployment

kubectl create deployment <Deployment名> --image=<镜像名> --replicas=<副本数>

示例:

kubectl create deployment nginx --image=nginx --replicas=3

2. 查看 Deployment

kubectl get deployments                 # 查看所有 Deployment
kubectl describe deployment <Deployment名>  # 查看 Deployment 详情

3. 更新 Deployment(滚动更新)

kubectl set image deployment/<Deployment名> <容器名>=<新镜像名>  # 更新镜像

示例:

kubectl set image deployment/nginx nginx=nginx:1.25

4. 回滚 Deployment

kubectl rollout status deployment/<Deployment名>      # 查看滚动更新状态
kubectl rollout undo deployment/<Deployment名>        # 回滚到上一个版本
kubectl rollout undo deployment/<Deployment名> --to-revision=<版本号>  # 回滚到指定版本

5. 扩缩容 Deployment

kubectl scale deployment/<Deployment名> --replicas=<副本数>  # 手动扩缩容

示例:

kubectl scale deployment/nginx --replicas=5

四、Service 相关命令

1. 创建 Service

kubectl expose deployment <Deployment名> --type=<类型> --port=<端口> --target-port=<目标端口>

示例(创建 ClusterIP 类型 Service):

kubectl expose deployment nginx --type=ClusterIP --port=80 --target-port=80

示例(创建 NodePort 类型 Service,用于外部访问):

kubectl expose deployment nginx --type=NodePort --port=80 --target-port=80

2. 查看 Service

kubectl get services                  # 查看所有 Service
kubectl describe service <Service名>  # 查看 Service 详情

3. 删除 Service

kubectl delete service <Service名>    # 删除 Service

五、ConfigMap 和 Secret

1. 创建 ConfigMap

kubectl create configmap <ConfigMap名> --from-literal=<>=<>  # 从键值对创建
kubectl create configmap <ConfigMap名> --from-file=<文件路径>     # 从文件创建

示例:

kubectl create configmap my-config --from-literal=app.name=myapp

2. 查看 ConfigMap

kubectl get configmaps                # 查看所有 ConfigMap
kubectl describe configmap <ConfigMap名>  # 查看 ConfigMap 详情

3. 删除 ConfigMap

kubectl delete configmap <ConfigMap名>    # 删除 ConfigMap

4. 创建 Secret

kubectl create secret generic <Secret名> --from-literal=<>=<>  # 从键值对创建
kubectl create secret generic <Secret名> --from-file=<文件路径>     # 从文件创建

示例:

kubectl create secret generic db-secret --from-literal=username=admin --from-literal=password=123456

5. 查看 Secret

kubectl get secrets                   # 查看所有 Secret
kubectl describe secret <Secret名>    # 查看 Secret 详情
kubectl get secret <Secret名> -o yaml   # 以 YAML 格式查看 Secret(内容会加密显示)

6. 删除 Secret

kubectl delete secret <Secret名>      # 删除 Secret

六、Namespace 相关命令

1. 查看 Namespace

kubectl get namespaces                # 查看所有 Namespace

2. 创建 Namespace

kubectl create namespace <Namespace名>  # 创建 Namespace

3. 删除 Namespace

kubectl delete namespace <Namespace名>  # 删除 Namespace(会删除该 Namespace 下的所有资源)

4. 在指定 Namespace 中操作

kubectl get pods -n <Namespace名>     # 查看指定 Namespace 的 Pod
kubectl apply -f <文件名> -n <Namespace名>  # 在指定 Namespace 中应用配置

七、其他常用命令

1. 应用 YAML 文件

kubectl apply -f <文件名>.yaml        # 应用 YAML 文件(创建或更新资源)
kubectl delete -f <文件名>.yaml       # 删除 YAML 文件定义的资源

2. 查看事件

kubectl get events --sort-by='.metadata.creationTimestamp'  # 查看集群事件

3. 清理资源

kubectl delete all --all              # 删除当前 Namespace 下的所有资源(慎用!)
kubectl delete all --all -n <Namespace名>  # 删除指定 Namespace 下的所有资源

4. 查看节点资源使用情况

kubectl top nodes                     # 查看节点 CPU 和内存使用情况
kubectl top pods                      # 查看 Pod CPU 和内存使用情况

⚠️ 注意:需要安装 metrics-server 才能使用 kubectl top 命令。


八、总结

类别常用命令
基础操作kubectl get, kubectl describe, kubectl logs, kubectl delete
Pod 管理kubectl run, kubectl exec, kubectl delete pod
Deploymentkubectl create deployment, kubectl set image, kubectl scale
Servicekubectl expose, kubectl get services
ConfigMapkubectl create configmap, kubectl get configmaps
Secretkubectl create secret, kubectl get secret
Namespacekubectl get namespaces, kubectl create namespace, kubectl delete ns
YAML 操作kubectl apply -f, kubectl delete -f

适用场景

  • 开发测试:快速创建和管理 Pod、Deployment、Service。
  • 生产环境:使用 Deployment 管理 Pod,配置 ConfigMap/Secret 管理配置和敏感信息。
  • 集群管理:查看节点状态、清理资源、应用 YAML 文件。

注意事项

  • 生产环境避免直接操作 Pod,应使用 Deployment 管理。
  • 敏感信息(如密码)应使用 Secret 而非 ConfigMap。
  • 使用 kubectl apply 而非 kubectl create,以便支持更新操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值