Kubernets
简介
kubeadm-单节点-ubuntu
kubeadm-高可用集群-ubuntu
资源管理
Namespace
Pod
Pod控制器
Pod生命周期
Pod调度
Label
Service
数据存储
安全认证
DashBoard
kubeadm-单节点-centos
kubeadm-高可用集群-centos
本文档使用 MrDoc 发布
-
+
首页
资源管理
# 资源管理介绍 - Kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理Kubernetes。 - Kubernetes的本质就是一个集群系统,用户可以在集群中部署各种服务。 - Kubernetes所谓的部署服务,其实就是在Kubernetes集群中运行一个个的容器,将指定的程序跑在容器中。 - Kubernetes的最小管理单元是Pod而不是容器,所以只能将容器放在Pod中。 - Kubernetes一般也不会直接管理Pod,而是通过Pod控制器来管理Pod的。 - Pod提供服务之后,就需要考虑如何访问Pod中的服务,Kubernetes提供了Service资源实现这个功能。 - Pod中程序的数据需要持久化,Kubernetes还提供了各种存储系统。 ![](/media/202406/2024-06-16_015621_9256990.3910388614538236.webp) ## YAML - YAML是一个类似于XML、JSON的标记性语言。 - 它强调的是以“数据”为中心,并不是以标记语言为重点。 - 因而YAML本身的定义比较简单,号称是“一种人性化的数据格式语言”。 **YAML的语法比较简单,主要有下面的几个:** - 大小写敏感。 - 使用缩进表示层级关系。 - 缩进不允许使用tab,只允许空格(低版本限制)。 - 缩进的空格数不重要,只要相同层级的元素左对齐即可。 - ‘#’表示注释。 **YAML类型** - 常量:单个的、不能再分的值。 - 对象:键值对的集合,又称为映射/哈希/字典。 - 数组:一组按次序排列的值,又称为序列/列表。 ### 常量 - 常量是指的是一个简单的值,字符串、布尔值、整数、浮点数、NUll、时间、日期 布尔类型 ```asp c1: true ``` 整型 ```asp c2: 123456 ``` 浮点类型 ```asp c3: 3.14 ``` null类型,使用~表示null ```asp c4: ~ ``` 日期类型,日期类型必须使用ISO 8601格式,即yyyy-MM-dd ```asp c5: 2019-11-11 ``` 时间类型,使用ISO 8601格式,时间和日期之间使用T连接,最后使用+代表时区 ```asp c6: 2019-11-11T15:02:31+08.00 ``` 字符串类型,直接写值如果字符串中间有特殊符号,必须使用双引号或单引号包裹 ```asp c7: haha ``` 字符串类型,过多的情况可以折成多行,每一行都会转换成一个空格 ```asp c8: line1 line2 ``` ### 对象 形式一(推荐): ```asp xudaxian: name: done age: 18 ``` 形式二(了解): ```asp xuxian: { name: done, age: 18 } ``` ### 数组 形式一(推荐): ```asp address: - 上海 - 北京 ``` 形式二(了解): ```asp address: [上海,北京] ``` # 资源管理方式 | 类型 | 操作 | 适用场景 | 优点 | 缺点 | | --- | --- | --- | --- |--- | | 命令式对象管理 | 对象 | 测试 | 简单 |只能操作活动对象,无法审计,跟踪 | | 命令式对象配置 | 文件 | 开发 | 可以审计、跟踪 | 项目大时,配置文件多,操作复杂 | | 声明式对象配置 | 目录 | 开发 | 开发 支持目录操作 | 意外情况下难调试 | ## 命令式对象管理 - kubectl是kubernetes集群的命令行工具。 - 通过它能够对集群本身进行管理,并能够在集群上进行容器化应用的安装和部署。 ```asp kubectl [command] [type] [name] [flags] ``` - kubectl是kubernetes集群的命令行工具,通过它能够对集群本身进行管理,并能够在集群上进行容器化应用的安装和部署。 - command:指定要对资源执行的操作,比如create、get、delete。 - type:指定资源的类型,比如deployment、pod、service。 - name:指定资源的名称,名称大小写敏感。 - flags:指定额外的可选参数。 查看kubectl版本 ```asp kubectl version ``` 查看集群信息 ```asp kubectl cluster-info ``` 查看默认区域的所有pod ```asp kubectl get pods ``` 查看集群所有可用的 API 资源及其相关信息 ```asp kubectl api-resources ``` ## 命令式对象配置 - 通过命令配置和配置文件去操作kubernetes的资源。 创建yaml ```asp cat <<EOF> pod-nginx.yaml apiVersion: v1 kind: Namespace metadata: name: dev --- apiVersion: v1 kind: Pod metadata: name: pod-nginx namespace: dev spec: containers: - name: nginx-containers image: nginx:1.17.1 EOF ``` 创建资源 ```asp kubectl create -f pod-nginx.yaml ``` 查看资源 ```asp kubectl get -f pod-nginx.yaml ``` 删除资源 ```asp kubectl delete -f pod-nginx.yaml ``` ## 声明式对象配置 - 通过apply命令和配置文件去操作kubernetes的资源。 - 声明式对象配置和命令式对象配置类似,只不过它只有一个apply命令。 - apply相当于create和patch。 创建资源 ```asp kubectl apply -f pod-nginx.yaml ``` 查看资源 ```asp kubectl get -f pod-nginx.yaml ``` 删除资源 ```asp kubectl delete -f pod-nginx.yaml ``` ## yaml文件快速生成 使用kubectl create命令生成yaml文件,此方式适用于没有真正部署资源 ```asp kubectl create deployment nginx --image=nginx:1.17.1 --dry-run=true -n dev -o yaml > test.yaml ```
done
2024年6月24日 12:44
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码