Kubernetes 新概念 “Initializers”解析(上):能让你为集群编写插件的新模型

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: Kubernetes 如今能大展拳脚的原因有二:一是,因为他社区的无限优势;二是,源于 Kubernetes API 的灵活性,以及能轻而易举地在其上编写自定义扩展或者插件。而在本文中,我将深入剖析一个新的概念:Initalizers,它能在实际创建之前修改 Kubernetes 动态资源和可插拔方式。

Kubernetes 如今能大展拳脚的原因有二:一是,因为他社区的无限优势;二是,源于 Kubernetes API 的灵活性,以及能轻而易举地在其上编写自定义扩展或者插件。而在本文中,我将深入剖析一个新的概念:Initalizers,它能在实际创建之前修改 Kubernetes 动态资源和可插拔方式。

Initializers 已经在 Kubernetes 1.7 中作为 Alpha 功能。举个例子来说,我们可以在 Google Container Engine 中使用 Intializers 来扩展 Kubernetes 的基础功能,也可以根据需求实现新的 initializers 设置。


到目前为止,Kubernetes 只有在 plug-in 创建之前用准入控制插件来拦截资源。例如,你可以使用一个准入插件来强制让所有容器镜像来自特定的注册表,并组织其他镜像被部署在 pod 中。有相当多的准入控制器提供的功能,如执行限制、应用创建检查,并为缺少的字段设置默认值。

但准入控制器也存在如下问题:

  1. 他们被编译在 Kubernetes:如果你寻找的目标缺失,你需要 fork Kubernetes,并且写一个准入插件,并自己保持 fork。
  2. 您需要通过将其名称传递给 kube-apiserver 的 –admission-control 标志来启用每个准入插件 。在很多情况下,这意味着重新部署集群。
  3. 某些托管集群的供应商可能不允许自定义 API 服务器标志,因此可能无法启用源代码中可用的所有准入控制器。

于是便提出了动态/外部准入控制器来解决这些问题。目前有两种类型的插件: Initializers 和 web 钩子。Initializers 类似于准入控制器 plug-ins, 你可以在创建资源之前截取它。但它们也与准入控制器 plug-ins 不同, 因为它们不是 Kubernetes 源代码的一部分, 也不是编译而成的。你需要自己写一个控制器。

你能用 Initializers 做什么?

当你在创建 Kubernetes 对象之前截取它们时, 存在着无穷的变数: 你可以以任何方式来变换对象, 或防止对象被创建。

以下是对 Initializers 的一些想法,每个都在你的集群中实施一个特定的策略:

  • 如果该容器开放 80 端口或具有特定的注释, 则向该 pod 注入一个代理 sidecar 容器。
  • 将带有测试证书的卷自动插入测试命名空间中的所有 pod。
  • 如果一个隐藏密令少于 20 个字符(有可能是密码),则阻止其创建。

如果您不打算修改对象并拦截只读对象, web 钩子可能会是一个更快和更精简的选择来获取有关对象的通知。

上面列出的一些功能,例如注入 sidecar 容器或卷,也可以使用 Pod Presets 以牺牲灵活性来进行实现。

下期导读:将为你具体解析 Initializers,并指出其优势和缺陷,同时手把手教你开发你自己的 Initializers。


本文转自中文社区-Kubernetes 新概念 “Initializers”解析(上):能让你为集群编写插件的新模型

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
21天前
|
机器学习/深度学习 自然语言处理 JavaScript
信息论、机器学习的核心概念:熵、KL散度、JS散度和Renyi散度的深度解析及应用
在信息论、机器学习和统计学领域中,KL散度(Kullback-Leibler散度)是量化概率分布差异的关键概念。本文深入探讨了KL散度及其相关概念,包括Jensen-Shannon散度和Renyi散度。KL散度用于衡量两个概率分布之间的差异,而Jensen-Shannon散度则提供了一种对称的度量方式。Renyi散度通过可调参数α,提供了更灵活的散度度量。这些概念不仅在理论研究中至关重要,在实际应用中也广泛用于数据压缩、变分自编码器、强化学习等领域。通过分析电子商务中的数据漂移实例,展示了这些散度指标在捕捉数据分布变化方面的独特优势,为企业提供了数据驱动的决策支持。
40 2
信息论、机器学习的核心概念:熵、KL散度、JS散度和Renyi散度的深度解析及应用
|
2天前
|
消息中间件 存储 负载均衡
Apache Kafka核心概念解析:生产者、消费者与Broker
【10月更文挑战第24天】在数字化转型的大潮中,数据的实时处理能力成为了企业竞争力的重要组成部分。Apache Kafka 作为一款高性能的消息队列系统,在这一领域占据了重要地位。通过使用 Kafka,企业可以构建出高效的数据管道,实现数据的快速传输和处理。今天,我将从个人的角度出发,深入解析 Kafka 的三大核心组件——生产者、消费者与 Broker,希望能够帮助大家建立起对 Kafka 内部机制的基本理解。
17 2
|
14天前
|
存储 NoSQL MongoDB
MongoDB 概念解析
10月更文挑战第12天
12 0
MongoDB 概念解析
|
18天前
|
存储 缓存 监控
深入解析:Elasticsearch集群性能调优策略与最佳实践
【10月更文挑战第8天】Elasticsearch 是一个分布式的、基于 RESTful 风格的搜索和数据分析引擎,它能够快速地存储、搜索和分析大量数据。随着企业对实时数据处理需求的增长,Elasticsearch 被广泛应用于日志分析、全文搜索、安全信息和事件管理(SIEM)等领域。然而,为了确保 Elasticsearch 集群能够高效运行并满足业务需求,需要进行一系列的性能调优工作。
39 3
|
27天前
|
机器学习/深度学习 人工智能 自然语言处理
Transformer图解以及相关的概念解析
前言 transformer是目前NLP甚至是整个深度学习领域不能不提到的框架,同时大部分LLM也是使用其进行训练生成模型,所以transformer几乎是目前每一个机器人开发者或者人工智能开发者不能越过的一个框架。接下来本文将从顶层往下去一步步掀开transformer的面纱。 transformer概述 Transformer模型来自论文Attention Is All You Need。 在论文中最初是为了提高机器翻译的效率,它使用了Self-Attention机制和Position Encoding去替代RNN。后来大家发现Self-Attention的效果很好,并且在其它的地
55 9
|
8天前
|
存储 Kubernetes 监控
深度解析Kubernetes在微服务架构中的应用与优化
【10月更文挑战第18天】深度解析Kubernetes在微服务架构中的应用与优化
31 0
|
14天前
|
供应链 网络协议 数据安全/隐私保护
|
18天前
|
前端开发 JavaScript Shell
深入解析前端构建利器:webpack核心概念与基本功能全览
深入解析前端构建利器:webpack核心概念与基本功能全览—
17 0
|
22天前
|
SQL 分布式计算 大数据
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
33 0
|
22天前
|
SQL 分布式计算 算法
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(二)
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(二)
61 0

热门文章

最新文章

推荐镜像

更多