Module 02 · Kubernetes Basics
Using Kubectl使用 Kubectl 详解
学习目标
观看完本视频后,你将能够:
- ✅ 定义 Kubectl 及其命令结构
- ✅ 列出三种命令类型及其特点和优势
- ✅ 列出常用的 Kubectl 命令并结合实例说明
一、什么是 Kubectl?
Kubectl 是 Kubernetes 命令行接口(CLI),用于与 Kubernetes 集群进行交互。
- Kubectl 帮助用户:
- 部署应用程序
- 检查和管理集群资源
- 查看日志等
它是 Kubernetes 中的一个核心工具,用于管理和操作运行中的集群负载。
二、Kubectl 命令结构
Kubectl 命令遵循以下结构:
kubectl <command> <type> <name> <flags>
| 部分 | 说明 |
|---|---|
| command | 要执行的操作,如 create、get、apply、delete 等 |
| type | 资源类型,例如 pod、deployment、replicaset |
| name | 资源名称(如果适用) |
| flags | 特殊选项或修改器,覆盖默认值 |
三、命令类型
1命令型命令(Imperative Commands)
- 功能:直接创建、更新和删除现有对象。
- 优点:简单易学,适合开发和测试环境。
- 缺点:
- 没有审计跟踪,难以跟踪变更。
- 不能与更改审查过程集成。
- 仅适用于小范围的临时任务。
示例:
kubectl run nginx --image=nginx:latest
此命令会直接创建一个名为 nginx 的 Pod。

2命令型对象配置(Imperative Object Configuration)
- 功能:通过文件定义对象,执行操作。
- 优点:可以使用 YAML 或 JSON 文件,适用于多环境配置。
- 缺点:必须确保所有操作已合并到配置文件中,无法自动同步更新。
示例:
kubectl create -f nginx.yaml
此命令会基于 nginx.yaml 文件中定义的配置创建资源。

3声明型对象配置(Declarative Object Configuration)
- 功能:用户无需指定操作,Kubernetes 自动决定并执行必要的操作。
- 优点:自动化程度高,适用于生产环境,提供一致性。
- 缺点:用户无法手动控制每个操作。
示例:
kubectl apply -f deployment.yaml
Kubernetes 会自动根据 deployment.yaml 文件中的定义更新或创建资源。



四、常用 Kubectl 命令

获取资源(Get Commands)
- 功能:列出或查看资源。
- 示例:
- 列出当前命名空间的服务:
kubectl get svc - 查看所有命名空间中的 Pods:
kubectl get pods --all-namespaces
- 列出当前命名空间的服务:
应用配置(Apply Commands)
- 功能:通过 YAML 或 JSON 文件创建或更新资源。
- 示例:
- 创建部署:
kubectl apply -f nginx-deployment.yaml - 从 URL 创建资源:
kubectl apply -f https://example.com/deployment.yaml
- 创建部署:
扩展副本数(Scale Commands)
- 功能:缩放副本集或部署的副本数。
- 示例:
- 扩展
foo副本集至 3 个副本:kubectl scale replicaset foo --replicas=3 - 扩展
nginx部署至 3 个副本:kubectl scale deployment nginx --replicas=3
- 扩展
删除资源(Delete Commands)
- 功能:删除资源。
- 示例:
- 删除 Pod:
kubectl delete pod nginx - 删除一个命名空间中的所有 Pods:
kubectl delete pods --all -n mynamespace
- 删除 Pod:
自动缩放(Autoscale Command)
- 功能:为指定的资源应用自动扩缩容。
- 示例:
- 为
nginx部署设置自动扩容:kubectl autoscale deployment nginx --min=2 --max=10 --cpu-percent=80
- 为
五、总结
| 命令类型 | 描述 | 优缺点 |
|---|---|---|
| 命令型命令 | 直接创建、更新、删除对象 | 简单易学,适合开发测试,但缺乏灵活性和审计 |
| 命令型对象配置 | 通过文件创建或更新对象 | 支持多环境,提供模板,但不支持自动同步更新 |
| 声明型对象配置 | 自动化配置管理,Kubernetes 处理操作 | 适用于生产环境,自动化高,但用户无法控制每个操作 |
六、课程回顾
- Kubectl 是与 Kubernetes 集群交互的命令行工具。
- 命令结构 为:
kubectl <command> <type> <name> <flags>。 - 命令类型:
- 命令型命令:简单直接,适合临时任务。
- 命令型对象配置:使用模板,适合多环境部署。
- 声明型对象配置:自动管理对象状态,适合生产环境。
- 常用命令包括 get、apply、scale、delete 等,用于资源管理和自动扩缩容。
✨ 总结: 使用 Kubectl 可以高效地管理 Kubernetes 集群,选择合适的命令类型可以根据需求优化工作流程。