Kubernetes——命令指南

目录

前言

1.检查集群状态

2.使用Pod

3.使用部署

4.使用服务

5.使用 ConMap 和 Secret

6.调试与故障排除

7.清理

8.使用命名空间

9.管理持久卷

10.处理节点

11.资源配额和限制范围

12.访问API对象

13.总结


前言

kubectl 是针对Kubernetes集群运行命令的命令行界面,对于任何使用 Kubernetes 的软件工程师来说都是一个重要的工具。它提供了大量的命令,每个命令都有自己的一组选项,使其成为管理 Kubernetes 环境和排除故障的强大工具。本文旨在阐明 kubectl 软件工程师在日常操作中使用的一些最有用的命令。

1.检查集群状态

  • kubectl cluster-info:提供有关集群及其主要服务的基本信息
  • kubectl get nodes:可用于托管应用程序的所有节点

2.使用Pod

Pod 是 Kubernetes 中最小的可部署单元。

  • kubectl get pods:列出默认命名空间中的所有Pod
  • kubectl describe pod [pod-name]:获取有关特定Pod的详细信息,包括事件和状态
  • kubectl logs [pod-name]:显示指定Pod的日志,有助于调试
  • kubectl exec -it [pod-name] -- /bin/bash:在指定Pod内打开一个交互式Shell,对于调试和检查很有用

3.使用部署

部署是管理 Pod 的更高级别概念。

  • kubectl get deployments:列出默认命名空间中的所有部署
  • kubectl describe deployment [deployment-name]:提供有关特定部署的详细信息
  • kubectl scale deployment [deployment-name] --replicas=[number-of-replicas]:通过增加或减少副本数量来帮助扩展部署
  • kubectl rollout status deployment [deployment-name]:显示部署部署的状态。

4.使用服务

服务是公开在一组 Pod 上运行的应用程序的抽象方式。

  • kubectl get services:列出默认命名空间中的所有服务
  • kubectl describe service [service-name]:提供有关特定服务的详细信息
  • kubectl expose deployment [deployment-name] --type=NodePort --name=[service-name]:将部署公开为服务,使其可以在集群内或从 Internet 进行访问

5.使用 ConMap 和 Secret

ConfigMap和Secrets是 Kubernetes 对象,可让用户将应用程序的配置与代码分开。

  • kubectl get configmaps:列出默认命名空间中的所有 ConfigMap
  • kubectl get secrets:列出默认命名空间中的所有机密
  • kubectl create configmap [configmap-name] --from-file=[path-to-file]:从文件创建一个新的 ConfigMap
  • kubectl create secret generic [secret-name] --from-literal=key=value:创建一个新的秘密

6.调试与故障排除

Kubernetes 提供了多个命令来帮助查找和纠正问题

  • kubectl top node:显示每个节点的CPU和内存使用情况,这对于识别负载较高的节点很有用
  • kubectl top pod:显示每个 Pod 的 CPU 和内存使用情况,这对于识别使用大量资源的 Pod 很有用
  • kubectl get events --sort-by=.metadata.creationTimestamp:列出默认命名空间中的所有事件,按创建时间排序。这有助于识别集群中最近可能发生的问题

7.清理

Kubernetes 提供了清理资源的命令

  • kubectl delete pod [pod-name]:删除指定的Pod
  • kubectl delete deployment [deployment-name]:删除指定的部署
  • kubectl delete service [service-name]:删除指定的服务
  • kubectl delete all --all:删除默认命名空间中的所有资源

kubectl delete all --all                    [WARNING]切勿随意使用

8.使用命名空间

命名空间用于许多用户分布在多个团队的环境中。

  • kubectl get namespaces:列出集群中的所有命名空间
  • kubectl create namespace [namespace-name]:创建一个新的命名空间
  • kubectl config set-context --current --namespace=[namespace-name]:更改当前上下文的命名空间

9.管理持久卷

持久卷为 Pod 提供存储数据的方法。

  • kubectl get pv:列出所有持久卷
  • kubectl describe pv [volume-name]:提供有关特定卷的详细信息
  • kubectl get pvc:列出所有持久卷声明,这是用户对存储的请求

10.处理节点

节点是 Kubernetes 中的工作机器,是系统的重要组成部分。

  • kubectl cordon [node-name]:将节点标记为不可调度,阻止新的Pod在该节点上调度
  • kubectl uncordon [node-name]:删除节点上的不可调度标记,允许新的pod在该节点上调度
  • kubectl drain [node-name]:排空节点以准备维护

11.资源配额和限制范围

这些命令对于管理计算资源的消耗非常有用

  • kubectl get quota:列出当前命名空间下所有资源配额
  • kubectl describe limitrange [limit-range-name]:提供有关特定限制范围的详细信息

12.访问API对象

这些命令允许您访问原始 API 对象

  • kubectl api-resources:列出服务器上所有可用的API资源
  • kubectl explain [resource]:提供资源的文档

13.总结

命令 含义 命令分类
kubectl cluster-info 提供有关集群及其主要服务的基本信息 检查集群状态
kubectl get nodes 可用于托管应用程序的所有节点
kubectl get pods 列出默认命名空间中的所有Pod 使用Pod
kubectl describe pod [pod-name] 获取有关特定Pod的详细信息,包括事件和状态
kubectl logs [pod-name] 显示指定Pod的日志,有助于调试
kubectl exec -it [pod-name] -- /bin/bash 在指定Pod内打开一个交互式Shell,对于调试和检查很有用
kubectl get deployments 列出默认命名空间中的所有部署 使用部署
kubectl describe deployment [deployment-name] 提供有关特定部署的详细信息
kubectl scale deployment [deployment-name] --replicas=[number-of-replicas] 通过增加或减少副本数量来帮助扩展部署
kubectl rollout status deployment [deployment-name] 显示部署部署的状态
kubectl get services 列出默认命名空间中的所有服务 使用服务
kubectl describe service [service-name] 提供有关特定服务的详细信息
kubectl expose deployment [deployment-name] --type=NodePort --name=[service-name] 将部署公开为服务,使其可以在集群内或从 Internet 进行访问
kubectl get configmaps 列出默认命名空间中的所有 ConfigMap 使用 ConMap 和 Secret
kubectl get secrets 列出默认命名空间中的所有机密
kubectl create configmap [configmap-name] --from-file=[path-to-file] 从文件创建一个新的 ConfigMap
kubectl create secret generic [secret-name] --from-literal=key=value 创建一个新的秘密
kubectl top node 显示每个节点的CPU和内存使用情况,这对于识别负载较高的节点很有用 调试与故障排除
kubectl top pod 显示每个 Pod 的 CPU 和内存使用情况,这对于识别使用大量资源的 Pod 很有用
kubectl get events --sort-by=.metadata.creationTimestamp 列出默认命名空间中的所有事件,按创建时间排序。这有助于识别集群中最近可能发生的问题
kubectl delete pod [pod-name] 删除指定的Pod 清理
kubectl delete deployment [deployment-name] 删除指定的部署
kubectl delete service [service-name] 删除指定的服务
kubectl delete all --all 删除默认命名空间中的所有资源
kubectl get namespaces 列出集群中的所有命名空间 使用命名空间
kubectl create namespace [namespace-name] 创建一个新的命名空间
kubectl config set-context --current --namespace=[namespace-name] 更改当前上下文的命名空间
kubectl get pv 列出所有持久卷 管理持久卷
kubectl describe pv [volume-name] 提供有关特定卷的详细信息
kubectl get pvc 列出所有持久卷声明,这是用户对存储的请求
kubectl cordon [node-name] 将节点标记为不可调度,阻止新的Pod在该节点上调度 处理节点
kubectl uncordon [node-name] 删除节点上的不可调度标记,允许新的pod在该节点上调度
kubectl drain [node-name] 排空节点以准备维护
kubectl get quota 列出当前命名空间下所有资源配额 资源配额和限制范围
kubectl describe limitrange [limit-range-name] 提供有关特定限制范围的详细信息
kubectl api-resources 列出服务器上所有可用的API资源 访问API对象
kubectl explain [resource] 提供资源的文档

相关推荐

  1. Kubernetes——命令指南

    2024-05-14 17:24:03       8 阅读
  2. Kubernetes 常用命令

    2024-05-14 17:24:03       34 阅读
  3. Kubernetes 命令大全

    2024-05-14 17:24:03       13 阅读
  4. Kubernetes命令备忘单

    2024-05-14 17:24:03       28 阅读
  5. kubernetes常用命令整理

    2024-05-14 17:24:03       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-14 17:24:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-14 17:24:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-14 17:24:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-14 17:24:03       18 阅读

热门阅读

  1. C#如何通过反射获取外部dll的函数

    2024-05-14 17:24:03       11 阅读
  2. 力扣阶段练习(1).消失的数字

    2024-05-14 17:24:03       13 阅读
  3. 通过vue2来类比学习vue3

    2024-05-14 17:24:03       11 阅读
  4. Python 自动化脚本系列:第4集

    2024-05-14 17:24:03       10 阅读
  5. DOTCPP题目 2782: 整数大小比较

    2024-05-14 17:24:03       10 阅读
  6. vue2响应式和vue3响应式

    2024-05-14 17:24:03       10 阅读
  7. [Python]锁

    2024-05-14 17:24:03       11 阅读
  8. spring boot 线程池的应用

    2024-05-14 17:24:03       14 阅读
  9. 基因专利的得与失

    2024-05-14 17:24:03       9 阅读
  10. Edge的使用心得与深度探索

    2024-05-14 17:24:03       13 阅读