第 3 章 资源管理

资源管理介绍

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

image-20200406225334627.png

资源管理方式

命令式对象管理

  1. 概述
    1. 直接使用命令操作 kubernetes 资源
  2. 操作对象
    1. 对象

  1. 命令
    1. 格式
      1. kubectl [command] [type] [name] [flags]

  1. 说明
    1. kubectl
      1. 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. 大小写敏感

5. 指定额外的可选参数

  1. 帮助命令
    1. kubectl --help
  2. 举例
[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

命令式对象配置

  1. 概念
    1. 使用命令配合配置文件操作 kubernetes 资源
  2. 操作对象
    1. 文件
  3. 举例
    1. 创建 ns-dev.yaml
apiVersion: v1
kind: Namespace
metadata:
name: dev
  1. 命令
[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

声明式对象配置

  1. 概念
    1. 声明式对象配置类似于命令式对象配置,但是只有一个命令 apply
      1. 如果资源不存在,就创建,相当于 kubectl create
      2. 如果资源已存在,就更新,相当于 kubectl patch
  2. 操作对象
    1. 目录
  3. 举例
[root@master ~]# kubectl apply -f ns-dev.yaml
namespace/dev created

建议

  1. 创建/更新资源
    1. 声明式对象配置
  2. 删除资源
    1. 命令式对象配置
  3. 查询资源
    1. 命令式对象管理
posted @   Wndexx  阅读(3)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示