资源管理介绍
- kubernetes 中,所有的内容都抽象为资源
- 用户需要通过操作资源来管理 kubernetes

资源管理方式
命令式对象管理
- 概述
- 直接使用命令操作 kubernetes 资源
- 操作对象
- 对象
- 命令
- 格式
- kubectl [command] [type] [name] [flags]
- 说明
- kubectl
- kubernetes 集群的命令行工具
| 2. command |
| 1. 指定要对资源执行的操作 |
| 1. create |
| 2. get |
| 3. delete |
| 4. ... |
| 3. type |
| 1. 指定资源类型 |
| 1. pod |
| 2. deployment |
| 3. service |
| 4. ... |
| 4. name |
| 1. 指定资源的名称 |
| 1. 大小写敏感 |
- 帮助命令
- kubectl --help
- 举例
| [root@master ~]# kubectl create ns dev |
| namespace/dev created |
| [root@master ~]# kubectl get ns dev |
| NAME STATUS AGE |
| dev Active 11s |
| [root@master ~]# kubectl get ns dev -o wide |
| NAME STATUS AGE |
| dev Active 23s |
| [root@master ~]# kubectl get ns dev -o json |
| { |
| "apiVersion": "v1", |
| "kind": "Namespace", |
| "metadata": { |
| "creationTimestamp": "2024-03-12T01:42:38Z", |
| "name": "dev", |
| "resourceVersion": "92985", |
| "selfLink": "/api/v1/namespaces/dev", |
| "uid": "78f2aad8-5584-4302-ba35-8b989a386124" |
| }, |
| "spec": { |
| "finalizers": [ |
| "kubernetes" |
| ] |
| }, |
| "status": { |
| "phase": "Active" |
| } |
| } |
| [root@master ~]# kubectl get ns dev -o yaml |
| apiVersion: v1 |
| kind: Namespace |
| metadata: |
| creationTimestamp: "2024-03-12T01:42:38Z" |
| name: dev |
| resourceVersion: "92985" |
| selfLink: /api/v1/namespaces/dev |
| uid: 78f2aad8-5584-4302-ba35-8b989a386124 |
| spec: |
| finalizers: |
| - kubernetes |
| status: |
| phase: Active |
| [root@master ~]# kubectl delete ns dev |
| namespace "dev" deleted |
命令式对象配置
- 概念
- 使用命令配合配置文件操作 kubernetes 资源
- 操作对象
- 文件
- 举例
- 创建 ns-dev.yaml
| apiVersion: v1 |
| kind: Namespace |
| metadata: |
| name: dev |
- 命令
| [root@master ~]# kubectl create -f ns-dev.yaml |
| namespace/dev created |
| [root@master ~]# kubectl get -f ns-dev.yaml |
| NAME STATUS AGE |
| dev Active 11s |
| [root@master ~]# kubectl get -f ns-dev.yaml -o wide |
| NAME STATUS AGE |
| dev Active 23s |
| [root@master ~]# kubectl get -f ns-dev.yaml -o yaml |
| apiVersion: v1 |
| kind: Namespace |
| metadata: |
| creationTimestamp: "2024-03-12T02:02:23Z" |
| name: dev |
| resourceVersion: "95855" |
| selfLink: /api/v1/namespaces/dev |
| uid: 2df865c9-63f9-49a9-b12a-eab86b0a2c1f |
| spec: |
| finalizers: |
| - kubernetes |
| status: |
| phase: Active |
| [root@master ~]# kubectl get -f ns-dev.yaml -o json |
| { |
| "apiVersion": "v1", |
| "kind": "Namespace", |
| "metadata": { |
| "creationTimestamp": "2024-03-12T02:02:23Z", |
| "name": "dev", |
| "resourceVersion": "95855", |
| "selfLink": "/api/v1/namespaces/dev", |
| "uid": "2df865c9-63f9-49a9-b12a-eab86b0a2c1f" |
| }, |
| "spec": { |
| "finalizers": [ |
| "kubernetes" |
| ] |
| }, |
| "status": { |
| "phase": "Active" |
| } |
| } |
| [root@master ~]# |
| [root@master ~]# |
| [root@master ~]# kubectl delete -f ns-dev.yaml |
| namespace "dev" deleted |
声明式对象配置
- 概念
- 声明式对象配置类似于命令式对象配置,但是只有一个命令 apply
- 如果资源不存在,就创建,相当于 kubectl create
- 如果资源已存在,就更新,相当于 kubectl patch
- 操作对象
- 目录
- 举例
| [root@master ~]# kubectl apply -f ns-dev.yaml |
| namespace/dev created |
建议
- 创建/更新资源
- 声明式对象配置
- 删除资源
- 命令式对象配置
- 查询资源
- 命令式对象管理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构