集群资源分布:
主要分为三种
- 名称级别分布
只在此名称级别下生效。例如k8s本身的系统组件是放在它本身的kube-system下的,因此我们在执行kubectl get pod -n default指令时就看不见系统本身的组件。 - 集群级别
不管在什么名称空间下,我在全局查询的过程中都可以看到,也就是说我们在定义的时候不指定集群,给他赋予一个全局访问的权限。 - 元数据型
给我们提供一个指标,通过指标进行操作
k8s中所有的内容都被抽象为资源,资源实例化以后,叫做对象
k8s中有哪些资源
名称空间级别:
- 工作负载型资源(workload):Pod(特点共享网络栈和数据卷)、ReplicaSet(RS是调度器,通过标签的选择,控制pod运行的副本数)、Deployment(通过对rs的创建对运行副本数进行控制)、StatefulSet(主要是为了有状态服务建立的控制器)、DaemonSet(在每个节点都运行一个pod组件)、Job、CronJob(ReplicationController在v1.11版本被废弃)
- 服务发现及负载均衡型资源(ServiceDiscoveryLoadBalance):Service、Ingress、…
- 配置与存储型资源:Volume(存储卷)、CSI(容器存储接口,可以扩展各种各样的第三方存储卷)
- 特殊类型的存储卷:ConfigMap(当配置中心来使用的资源类型)、Secret(保存敏感数据)、DownwardAPI(把外部环境中的信息输出给容器)
集群级资源:
- Namespace、Node、Role、ClusterRole、RoleBinding、ClusterRoleBinding
元数据型资源:
- HPA、PodTemplate、LimitRange
资源清单
当我们在创建一个符合我们预期期望的pod文件时,一般使用yaml格式的晚间来创建,这样的yaml文件被称为资源清单。
简单说明:
是一个可读性高,用来表达数据序列的格式。YAML 的意思其实是:仍是一种标记语言,但为了强调这种语言以数据做为中心,而不是以标记语言为重点。
基本语法:
- 缩进时不允许使用Tab键,只允许使用空格
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
#
标识注释,从这个字符一直到行尾,都会被解释器忽略
YAML 支持的数据结构对象:
- 键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)对象的一组键值对,使用冒号结构表示。
- 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)一度连限次开头的行。
- 纯量(scalars):单个的、不可再分的值对象类型:对象的一组键值对,使用冒号结构表示
当我们使用yaml文件构建pod需要使用的属性如下: