摘要:
认证用于身份鉴别,而授权则实现权限分派。k8s以插件化的方式实现了这两种功能,且分别存在多种可用的插件。另外,它还支持准入控制机制,用于补充授权机制以实现更精细的访问控制功能。 一、访问控制概述 apiserver作为k8s集群系统的网关,是访问及管理资源对象的唯一入口,余下所有需要访问集群资源的组 阅读全文
摘要:
一、StatefulSet概述 应用程序存在有状态和无状态两种类别,因为无状态类应用的pod资源可按需增加、减少或重构,而不会对由其提供的服务产生除了并发相应能力之外的其他严重影响。pod资源的常用控制器中,deployment、replicaset和daemonset等常用于管理无状态应用。但实际 阅读全文
摘要:
Secret资源的功能类似于ConfigMap,但它专用于存放敏感数据,如密码、数字证书、私钥、令牌和ssh key等。 一、概述 Secret对象存储数据以键值方式存储数据,再pod资源中通过环境变量或存储卷进行数据访问。Secret对象仅会被分发至调用了此对象的pod资源所在的工作节点,且只能由 阅读全文
摘要:
ConfigMap对象用于为容器中的应用提供配置数据以定制程序的行为,不过敏感的配置信息,例如密钥、证书等通常由Secret对象来进行配置。他们将相应的配置信息保存于对象中,而后在pod资源上以存储卷的形式将其挂载并获取相关的配置,以实现配置与镜像文件的解耦。ConfigMap对象将配置数据以键值对 阅读全文
摘要:
pod本身具有生命周期,故其内部运行的容器及其相关数据自身均无法持久存在。docker支持配置容器使用存储卷将数据持久存储于容器自身文件系统之外的存储空间中,它们可以是节点文件系统或网络文件系统之上的存储空间。相应地,k8s也支持类似地存储卷功能,不过,其存储卷是与pod资源绑定而非容器。简单来说, 阅读全文
摘要:
k8s提供了两种内建的云端负载均衡机制用于发布公共应用,一种是工作于传输层的service资源,它实现的是TCP负载均衡器,另一种是Ingress资源,它实现的是HTTP(S)负载均衡器。 1)TCP负载均衡器 无论是iptables还是ipvs模型的service资源都配置于Linux内核中的ne 阅读全文
摘要:
一、service资源及其实现模型 通过规则定义出由多个pod对象组合而成的逻辑集合,以及访问这组pod的策略。service关联pod资源的规则要借助于标签选择器来完成 1、service资源概述 由deploy等控制器管理的pod对象中断后会由新建的资源对象所取代,而扩缩容后的应用则会带来pod 阅读全文
摘要:
CronJob用于管理job控制器资源的运行时间,job控制器定义的作业任务在其控制器资源创建之后便会立即执行,但cronjob可以以类似于linux操作系统的周期性任务作业计划的方式控制其运行时间点及重复运行的方式 cronjob对象支持使用的时间格式类似于crontab,略有不同的是,cronj 阅读全文
摘要:
Job控制器用于调配pod对象运行一次性任务,容器中的进程在正常运行结束后不会对其进行重启,而是将pod对象置于completed状态。若容器中的进程因错误而终止,则需要依据配置确定重启与否,未运行完成的pod对象因其所在的节点故障而意外终止后会被重新调度。 实践中,有的作业任务可能需要运行不止一次 阅读全文
摘要:
DaemonSet用于再集群中的全部节点上同时运行一份指定的pod资源副本,后续新加入的工作节点也会自动创建一个相关的pod对象,当从集群中移除节点时,此类pod对象也将被自动回收而无须重建。也可以使用节点选择器及节点标签指定仅在部分具有特定特征的节点上运行指定的pod对象。通常运行那些执行系统级操 阅读全文
摘要:
简写为deploy,是k8s控制器的另一种实现,它构建于ReplicaSet之上,可为pod和rs资源提供声明式更新。 deploy控制器资源的大部分功能均可通过调用rs来实现,同时,还增添了部分特性: 事件和状态查看:必要时可以查看deploy对象升级的详细进度和状态 回滚:升级操作完成后发现问题 阅读全文
摘要:
一、ReplicaSet概述 简称RS,是pod控制器类型的一种实现,用于确保由其管控的pod对象副本数在任一时刻都能精确满足期望的数量。ReplicaSet控制器资源启动后会查找集群中匹配其标签选择器的pod资源对象,当前活动对象的数量与其期望的数量不吻合时,多则删除,少则通过pod模板创建以补足 阅读全文
摘要:
自主式pod对象由调度器绑定至目标工作节点后即由相应节点上的kubelet负责监控其容器的存活性,容器主进程崩溃后,kubelet能够自动重启相应的容器。不过,kubelet对非主进程崩溃类的容器错误却无感知,这依赖于用户为pod资源对象自定义的存活性探测机制,以便kubelet能够探知到此类故障。 阅读全文
摘要:
在k8s上,可由容器或pod请求或消费的计算资源时指cpu和内存,这也是目前仅有的受支持的两种类型。相比较来说,cpu属于可压缩资源,即资源额度可按需收缩,而内存则是不可压缩型资源,对其执行收缩操作可能会导致某种程度的问题。 目前来说,资源隔离尚且属于容器级别,cpu和内存资源的配置需要在pod中的 阅读全文
摘要:
一、pod存活性探测 pod spec为容器列表中的相应容器定义其专用的探针即可启用存活性探测,目前,k8s的容器支持存活性探测的方法包含:ExecAction、TCPSocketActon和HTTPGetAction。 1、设置exec探针 exec类型的探针通过在目标容器中执行由用户自定义的命令 阅读全文
摘要:
pod对象自从创建开始至终止退出的时间范围称为生命周期,在这段时间中,pod会处于多种不同的状态,并执行一些操作;其中,创建主容器为必须的操作,其他可选的操作还包括运行初始化容器(init container)、容器启动后钩子(start hook)、容器的存活性探测(liveness probe) 阅读全文
摘要:
一、标签与标签选择器 1、标签是k8s极具特色的功能之一,它能够附加于k8s的任何资源对象之上。简单来说,标签就是键值类型的数据,它们可于资源创建时直接指定,也可随时按需添加于活动对象中,而后即可由标签选择器进行匹配度检查从而完成资源挑选。一个对象可拥有不止一个标签,同一个标签也可被添加至多个资源之 阅读全文
摘要:
一、容器于pod资源对象 现代的容器技术被设计用来运行单个进程时,该进程在容器中pid名称空间中的进程号为1,可直接接收并处理信号,于是,在此进程终止时,容器即终止退出。若要在一个容器中运行多个进程,则需要为这些进程提供一个类似于linux操作系统init进程的管控类进程,以树状结构完成多进程的生命 阅读全文
摘要:
pod是k8s api中的核心资源类型,它可以定义在json或yaml格式的资源清单中,由资源管理命令进行陈述式或声明式管理。创建时,用户可通过create或apply命令将请求提交到apiserver,并将其保存至集群状态存储系统etcd中,而后由调度器将其调度至最佳目标节点,并被相应节点的kub 阅读全文
摘要:
namespace是k8s集群级别的资源,用于将集群分隔为多个隔离的逻辑分区以配置给不同的用户、租户、环境或项目使用,例如,可以为development、qa、和production应用环境分别创建各自的名称空间。 k8s的绝大多数资源都隶属于名称空间级别(另一个是全局级别或集群级别),namesp 阅读全文