29

kubernetes学习笔记五(资源清单)

 3 years ago
source link: https://www.ishells.cn/archives/kubernetes-study-5-resource-inventory
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

1、k8s中的集群资源分类:

名称空间级别

比如:使用 kubeadm 工具安装k8s默认会将系统组件放在kube-system名称空间下,

# 当你使用命令
# kubectl get pod

是获取不到关于系统的pod的信息,原因是命令 kubectl get pod 默认是通过 -n default 选项指定了默认名称空间,但是k8s系统组件的pod是被放在 kube-system 名称空间下,所以通过默认名称空间肯定是获取不到系统pod的信息的

集群级别 :role

集群级别意味着,无论在什么名称空间下定义的资源,在整个集群下都是可见的。

元数据类型级别

元数据类别会给我们提供一个指标,通过指标进行操作。其实它可以归属于名称空间级别、集群级别,但是它有自身比较突出的特点,所以把它单独拿出来定义。

比如之前提到过的 HPA ( 根据CPU资源当前利用率进行平滑扩展,典型的元数据型 )

2、k8s 集群中的资源

k8s集群中所有的内容都被抽象成为资源,资源被实例化后则被叫做对象。实例化的含义其实就是被运行了、被执行了、被调用了。

名称空间级别

工作负载型资源

Pod(k8s创建部署的最小单位,是一组容器的集合)、ReplicaSet(控制器,管理pod的创建,通过标签来控制pod的副本数)、Deployment(控制器,通过控制RS的创建来控制pod的创建)、StatefulSet(为了有状态服务特意创建的管理器)、DaemonSet(控制器,为了让所有的(或者特定的)Node节点上运行同一个Pod的副本)、Job、CronJob、( RC在v1.11版本被RS代替 )

服务发现及负载均衡型资源

Sevice、Ingress( 这两者都是为了把k8s资源给暴露出去 )

配置与存储型资源

Volume(卷存储,为了pod的持久化存储)、CSI(Container Storage Interface,符合 CSI 规定的第三方存储资源就可以被容器所调用)

特殊类型的存储卷

ConfigMap(使用它来存储一些配置文件,以达到热更新的状态)、Secret(用来存储密码、密钥等一些敏感的数据)、DownwardAPI(类似CSI,把外部环境的信息输出给容器)

集群级资源

Namespace、Node、Role、ClusterRole、RoleBinding、ClusterRoleBinding

(暂时还未学到,后面学到再来补充)

元数据型资源

HPA、PodTemplate(pod模板)、LimitRange(资源限制)

根据一些指标来进行相关的操作

3、资源清单

在k8s中,一般使用 yaml 格式的文件来 创建符合预期期望 的pod,这样的 yaml 文件一般被称为 资源清单

yaml语法:

yERbiir.jpg!mobile

QfeURv.png!mobile

qMVJjyR.png!mobile

4、常用字段解释

7r6JFjq.png!mobile

① 为什么要写版本呢?

因为在k8s中,API Server提供集群管理的是Restful API 接口(包括认证授权、数据校验以及集群状态变更),而Restful风格的一般是通过get、push、put等操作对一个URL进行上传、下载等等,而这个URL后边携带有以下两个值:

url/组/版本

这也就意味着如果我们要调度对应的资源的时候,必须要指明对应向哪个组下的哪个版本调度对象(每一种类型的资源组、版本下是不一样的)

5、容器生命周期


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK