美文网首页
4:k8s基础概念

4:k8s基础概念

作者: 西西_20f6 | 来源:发表于2020-02-14 18:40 被阅读0次

一、k8s对象
k8s对象:是一种持久化的,用于表示集群状态的实体。
1,对象的定义本身是声明式的,它定义了对象被k8s平台创建后的状态,也就是我们希望这个对象被创建后应该保持什么样的状态,一般使用yml文件描述。
2,k8s使用k8s对象来表示集群的状态,所有创建后的对象的状态集合就是整个集群的当前状态。使用k8s对象可以用来描述很多情况,比如有哪些容器化的应用在运行,容器运行在哪个node上,有哪些可以被应用使用的资源,应用的行为策略是什么样子,比如重启策略,声明策略,容错策略。
3,k8s中使用api/kubectl来管理这些对象。
管理k8s对象的过程其实就是使用k8s和运维k8s的过程。
k8s的controller manager就是通过对象的controller使得各个对象保持在期望状态,因此整个k8s的工作就是让所有对象保持在期望状态。

二、对象模型


image.png

k8s对象的创建就好比一个类被实例化了。其状态变成了动态信息,保存在etcd中,而k8s状态的变化是触发k8s各个组件工作的起点。每当状态变化,k8s就会努力调整,努力使得各个对象始终处于期望状态。
在k8s对象的这些属性和方法中,唯有metadata是大部分对象都有的通用属性。
对象结构包含静态属性,操作方法和动态信息。

三、常用的metadata属性含义:
1,Name和UID
k8s中所有对象都通过name和UID明确标识。
1)在同一类对象中name是唯一的,但不同类型的对象name是可以一样的。比如某个pod叫hello-k8s,另一个deployment也可以同时叫做hello-k8s。不同名字空间中,同样类型的对象实例的名字也是可以相同的。
2)Api中的对象访问路径:
/api/{version}/namespaces/{namespace}/{object-kind}/name
/api/v1/namespaces/default/pods/helo-k8s
3)k8s在集群的整个生命周期内创建的每个对象都具有不同的UUID。

2,namespace(名称空间)
不仅是matadata中的一个属性,本身也是一个Object,可以提供独立的命名空间。
1)可用于将物理集群划分为多个虚拟集群,对象实例的名称在同一个namespace中是唯一的。
2)namespace间完全隔离,因此也常被用来隔离不同的用户(及权限)。
3)k8s中内置了三个名称空间:default,kube-system和kube-public。
default:默认的名称空间
kube-system:k8s平台组件部署的名称空间,比如apiserver,dns插件,网络插件。
kube-public:自动创建的,可供所有用户访问,包括未经过身份验证的用户访问。里面的资源在集群中是公开可见和可读的。
注意,Node和PersistentVolumn不属于任何namespace。

3,label(标签)
所有K8S对象都拥有的元数据属性。用于建立集群对象之间的灵活的松耦合的多维关联关系。
1)一个label就是一个键值对,其中的key,value均由用户自己定义。

2)label可以附着在任何对象上,每个对象也可以有任意个标签。标签可在对象定义时附加上,也可以通过命令动态管理标签。标签不是唯一的,很多对象可能有相同的标签。

3)label可以将有组织目的的结构映射到集群对象上,从而形成一个与现实世界管理结构同步对应松耦合的,多维的对象管理结构。
k8s对象之间松耦合的关联是通过label selector对label的查询和筛选建立的。


image.png

service通过selector pod 的label和pod建立关系。
pod通过nodeSelector node的label和node建立关系。选择自己可以被调度运行的k8s节点。

4,annotations(注解)
通过annotations,可以将任意非标识性的元数据附加到对象上。
这也是他和标签数据的区别,标签是标识性数据,用于标识对象,主要用于筛选对象。annotations不能用于标识或者选择对象。
1)annotations也是以键值对的方式呈现的。
常见的对象annotations信息包括:创建信息,版本信息或镜像信息。
比如时间戳,版本号,镜像哈希值,仓库地址等。
2)工具和库可以检索到并使用这些annotation元数据。
3)将数据作为annotation附着在对象上,有利于创建一些用于部署、管理和做内部检查的共享工具或客户端。

四、k8s对象分类


image.png

1,workload:是k8s集群主要去管理和运行对象
2,discovery&load balance:与服务相关的一些对象
3,config&storage:用于向应用中注入初始化配置数据的。活将数据持久化保存到容器外的
4,cluster:集群类对象,主要定义了集群自身如何配置的数据,通常由集群管理员进行操作。

相关文章

  • 4:k8s基础概念

    一、k8s对象k8s对象:是一种持久化的,用于表示集群状态的实体。1,对象的定义本身是声明式的,它定义了对象被k8...

  • Kubernetes 环境下保证服务高可用的部署实践

    阅读本文需要读者了解 Kubernetes (k8s) 的基础概念,如 pod、 deployment、 serv...

  • k8s系列01-什么是kubernetes?

    本文主要介绍什么是k8s以及k8s的基本架构和相关基础概念。 Kubernetes 一词源于希腊语,意为“舵手”或...

  • k8s——pod 基础&进阶

    Pod 基础 基本概念 Pod 的实质只是一个逻辑概念, k8s 真正处理的还是 Linux 容器的 Namspa...

  • K8S 基础概念

    K8S概念指南 Cluster :集群是指由k8s使用一些列的物理机,虚拟机和其他基础资源来运行你的应用程序. N...

  • k8s基础概念

    Node node作为集群中的工作节点,可以是物理机或虚拟机,node上管理着k8s的最小单元pod。Node上运...

  • K8S 基础概念

    了解什么是容器编排? 容器编排就是有关管理容器生命周期的全部工作,特别是在大型动态环境中。 软件团队使用容器编排来...

  • k8s基础概念

    1.2 kubernetes简介 kubernetes,是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保...

  • 4基础概念

    1. 基本概念:训练集,测试集,特征值,监督学习,非监督学习,半监督学习,分类,回归 2. 概念学习:人类学习概念...

  • kubernetes(k8s)修仙录总纲

    我是一个牛逼的目录 炼气境—第1层:理解K8S一些基础概念 炼气境—第2层: 理解K8S 的组件和架构计 炼气境—...

网友评论

      本文标题:4:k8s基础概念

      本文链接:https://www.haomeiwen.com/subject/uydrfhtx.html