我的编程空间,编程开发者的网络收藏夹
学习永远不晚

你的Helm安全吗?

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

你的Helm安全吗?

一、背景

Kubernetes是目前最为流行、成为事实标准的容器集群管理平台,为容器化应用提供了部署运行、资源调度、服务发现和动态伸缩等一系列完整功能。在Kubernetes当中,用户通过使用API对象,如Pod、Service、Deployment等,来描述应用的程序规则,而这些资源对象的定义一般需要写入一系列的YAML文件中,然后通过 Kubernetes 命令行工具Kubectl进行部署。由于通常应用程序都涉及到多个Kubernetes API对象,而要描述这些API对象就可能要同时维护多个YAML文件,从而在进行 Kubernetes 软件部署时,通常会面临下述几个问题:

·       如何管理、编辑和更新这些这些分散的 Kubernetes 应用配置文件

·       如何把一套相关的配置文件作为一个应用进行管理

·       如何分发和重用 Kubernetes 的应用配置

Helm (https://helm.sh)的出现就是为了很好地解决上面这些问题,是Kubernetes官方提供的包管理工具,主要是是通过管理被称作Helm Chart的包来描述和管理云服务的。使用 Helm后就不需要再编写复杂的应用部署文件,可以以简单的方式在 Kubernetes 上查找、安装、升级、回滚、卸载应用程序。

在现在常用的Helm V2架构中,有一个称为“Tiller”的服务端组件。Tiller是一个集群内服务器,可与Helm客户端进行交互,并与Kubernetes API服务器连接。但由于Tiller具有root用户访问权限,使得有人可以未经授权访问Kubernetes服务器你,从而构成了很大的风险。

JFrog的专家,也是Helm的联合创始人,Rimas Mocevicius,提供了一种创新的、优雅的方法——Tillerless Helm,来解决这种情况,从而保护用户的Kubernetes集群。

二、Helm V2的应用架构

从Helm v2开始,Helm的架构中有一个名为The Tiller Server的服务器部分,该服务器部分是一个与helm客户端交互并与Kubernetes API服务器连接的集群内服务器。服务器负责以下各项工作:

·       监听来自Helm客户端的传入请求

·       结合Chart和配置以创建发布版本

·       将Chart安装到Kubernetes中,然后跟踪后续版本

·       通过与Kubernetes交互来升级和卸载Chart

简而言之,客户端负责管理Chart,Tiller负责管理发布版本,其架构如下图所示:

你的Helm安全吗?

默认情况下,执行如下命令将Tiller部署安装到Kubernetes集群:

helm init

同时还需要为Tiller创建并部署RBAC授权,使其拥有执行任务的权限。Tiller常用的RBAC授权如下所示:

你的Helm安全吗?

目前这样的架构工作得很好,为用户提供了灵活和方便,但同时也存在一些安全问题。从上面的RBAC文件中可以看出,Tiller被授予了cluster-admin的角色,也就是说,Tiller在用户的Kubernetes集群中具有完全的管理权限,这就具备了有人未经授权而访问和控制集群的风险。

三、Helm V2 中的Tillerless方案

其实,在Helm V2中创建Tillerless的架构也并不困难,能够为Helm的应用提供更高的安全保障。JFrog的专家Rimas给出了优化的解决方案,而本节将通过细节的描述来解释该方案如何运行。

首先,可以将Helm客户端和Tiller都部署在工作站上,或者运行在CI/CD流水线中,而不需要将Tiller安装到Kubernetes集群之中。示例的安装方式如下:

你的Helm安全吗?

在这种安装方式下,Helm的运行架构如下图所示:

你的Helm安全吗?

在这种架构下,Tiller使用和Helm客户端一样的配置(kubeconfig)连接到Kubernetes集群,并按照指定的命名空间(namespace)存储和管理Helm的发行版本信息。用户可以通过这种方式创建许多名称空间,并在Tiller启动时指定应该使用哪个命名空间。用户定义的RBAC规则可以存储在运行指定的名称空间中的密钥/配置映射中,而不再需要为Tiller创建和指定ServiceAccount。而这个架构的另一个好处就是不再限定Kubernetes集群中只能运行一个Tiller实例。

注意,在这种架构下,必须使用如下的命令来初始化Helm客户端,否则Tiller仍然被安装到Kubernetes集群中:

helm init --client-only

四、Helm V2中的Tillerless插件

那么,有没有更加方便的安装方式呢?Rimas为大家提供了一个简单的Helm Tillerless插件,请参见https://github.com/rimusz/helm-tiller。

插件的安装非常方便,如下:

你的Helm安全吗?

该插件提供了四个简单的命令:start,start-ci,stop和run。


4.1 在本地使用Tillerless插件

对于在本地开发或访问远程Kubernetes集群时,请使用helm tiller start命令:

你的Helm安全吗?

该命令将在本地启动Tiller,并利用Tiller默认的设置,在kube-system名称空间存储和管理Helm版本。

也可以通过下述命令指定Tiller使用的命名空间:

你的Helm安全吗?

该命令还会打开一个新bash shell,带有预设的环境变量:

HELM_HOST=localhost:44134

这样,Helm客户端就知道如何连接Tiller了。

现在,就可以开始部署或更新Helm的发布版本了。

当完成了所有工作之后,只需要运行下述命令,就可以关闭Tiller了。

你的Helm安全吗?

接下来,用户也可以重复上面的过程,通过指定新的命名空间来部署和更新其他团队的发布版本。

4.2 在CI/CD流水线中使用Tillerless插件

那如何在CI/CD流水线当中使用该插件呢?有两种方法:

第一种与上面的过程非常相似,只是没有启动带有预设变量的bash shell。

你的Helm安全吗?

然后,Helm客户端将知道连接到Tiller的位置,而无需在CI流水线中进行任何更改。并且在流水线的结尾执行:

你的Helm安全吗?

结束全部工作。

第二种也很容易,就是运行helm tiller run,可以使Tiller在指定命令之前或之后启动/停止:

你的Helm安全吗?

举例来看:

你的Helm安全吗?

附加功能:该插件还能够检查安装的Helm客户端和Tiller的版本,如果不匹配,则下载正确的Tiller版本文件。

五、总结

Helm作为Kubenetes的官方包管理工具,为用户提供了方便、快捷的在Kubernetes集群里部署和管理自己应用程序的方式。然而,Helm V2架构中的Tiller组件,在提供了操作便利的同时,也带来了安全上的隐患。

本文为大家介绍了一种在Helm V2中实现Tillerless的Helm部署和应用的解决方案,在保留了Helm V2灵活性和便利性的同时,也大大提升了应用和管理的安全性。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

你的Helm安全吗?

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

你的Helm安全吗?

一、背景Kubernetes是目前最为流行、成为事实标准的容器集群管理平台,为容器化应用提供了部署运行、资源调度、服务发现和动态伸缩等一系列完整功能。在Kubernetes当中,用户通过使用API对象,如Pod、Service、Deploy
2023-06-04

服务器安全补丁:你的网站安全吗?

服务器安全补丁是保护网站免受恶意软件攻击的重要手段。本文将探讨服务器安全补丁的重要性,以及如何确保自己的网站安全。
服务器安全补丁:你的网站安全吗?
2024-02-27

年底了,你的mysql密码安全吗

前言: 年底了,你的数据库是不是该巡检了?一般巡检都会关心密码安全问题,比如密码复杂度设置,是否有定期修改等。特别是进行等保评测时,评测机构会要求具备密码安全策略。其实 MySQL 系统本身可以设置密码复杂度及自动过期策略的,可能比较少用
2022-05-13

helm安装prometheus的步骤是什么

安装Prometheus可以通过Helm进行部署,以下是使用Helm安装Prometheus的步骤:添加Helm仓库:首先需要添加Prometheus的Helm仓库,可以通过以下命令添加:helm repo add prometheus-c
helm安装prometheus的步骤是什么
2024-03-15

ConcurrentHashMap是如何实现线程安全的你知道吗

这篇文章主要介绍了ConcurrentHashMap是如何实现线程安全的你知道吗,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

HTTPS是安全的吗

这篇文章主要介绍“HTTPS是安全的吗”,在日常操作中,相信很多人在HTTPS是安全的吗问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HTTPS是安全的吗”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!「一
2023-06-19

华为云服务器安全吗可靠吗安全吗

华为云服务器提供了一个可靠和安全的云基础设施平台,因此可以提供高质量的服务和可靠的数据管理。在华为云服务器的使用中,数据存储在公有云平台上,用户的私人数据只能在合法的授权下访问。因此,华为云服务器是一个高度安全的环境,可以为用户提供高质量的安全服务。然而,由于涉及到敏感数据,在使用华为云服务器时需要注意以下几点:遵守华为云的使用协议和政策,不传输敏感信息;使用加密技术进行数据传输和存储
2023-10-26
2023-05-21

阿里云服务器安全吗?帮你安装并解析

随着云计算的发展,越来越多的企业和个人选择使用阿里云服务器。然而,随之而来的是关于阿里云服务器安全性的疑虑。本文将详细介绍阿里云服务器的安全性,并为你提供安装服务。阿里云服务器是阿里云推出的一种云服务,它为用户提供了一种灵活、便捷、安全的计算和存储服务。阿里云服务器的安全性是用户选择使用阿里云服务器的重要因素之一
阿里云服务器安全吗?帮你安装并解析
2023-11-23

租用云服务器安全吗可靠吗安全吗

租用云服务器是一种常见的租赁服务,它可以提供高可靠性和安全性,但也存在一些缺点和风险。首先,租用云服务器时需要确保所有资源都处于受监控的状态,这可能会限制服务的可靠性和性能。如果资源不可用或发生故障,将导致数据丢失、服务停止或其他不利影响。其次,租用云服务器需要使用云平台服务,包括虚拟主机、负载均衡、数据备份和防病毒等服务,这些服务的可靠性和性能可能会受到网络延迟、系统问题、硬件故障等因素的
2023-10-26

github安全吗

随着互联网的不断发展,开源代码托管平台已经成为了开发人员的必备工具。其中,GitHub作为全球最大的开源代码托管平台,其安全问题也备受关注。那么,GitHub是否安全呢?首先,我们需要了解GitHub的基本构成和安全措施。GitHub是由G
2023-10-22

阿里云服务器好用吗安全吗可靠吗安全吗

阿里云是中国领先的云计算和人工智能服务提供商,提供云服务器、云存储、数据库和人工智能等云计算服务,安全性和可靠性方面具有优势,同时提供多种语言版本的支持,方便全球各地的用户使用和访问。阿里云服务器的价格比较便宜,而且具有高速的网络连接和强大的处理能力,非常适合大规模企业使用。但是,阿里云服务器的安全性和可靠性也需要特别注意,因为数据存储在云服务器上,一旦出现问题,会对企业的业务造成巨大的损失和影响。因此,选择...
2023-10-27

PHP中的session安全吗?

如果不做特殊处理,仅是使用PHP中原生的session的话,确实不安全。PHP只是为我们提供了一个session的实现,后续的安全工作需要程序员自己灵活去掌握,所以说PHP编程真的很灵活。做PHP开发这么长时间,还真没有真正关注过安全的问题
PHP中的session安全吗?
2024-02-27

自己买云服务器安全吗可靠吗安全吗

买云服务器时,您应该了解一些重要的信息,以确保您的数据安全。首先,云服务器由多家公司提供,其中可能有一些是由第三方供应商运营的,因此在购买之前,您应该对该公司的情况进行调查。您可以查看该公司的官方网站或通过电话询问该公司的技术支持人员,询问该公司是否是可靠的供应商或可信的运营商。其次,云服务器通常需要通过多种认证和安全措施来保护您的数据。您需要确保您的云服务器符合您的需求和业务需求,以确保您的数据得到保护。...
2023-10-26

微软云服务器在国内吗安全吗可靠吗安全吗

在国内,微软云服务器有许多可用的服务器和数据中心,这些地方都提供了安全的基础设施,为用户提供了高质量的服务。同时,微软云服务器也拥有丰富的产品线,包括了微软云服务器、Azure云计算服务、WindowsServerR2、Office365等。在微软云服务器的安全方面,微软采用了一系列的措施来保护用户的数据和隐私。首先,
2023-10-27

华为云服务器安全吗可靠吗安全吗苹果

华为云服务器安全可靠,但有时仍然可能出现问题。如果您想知道华为云服务器是否可靠,您需要了解一些关于它的安全方面的信息。以下是华为云服务器的一些基本安全功能:防DDoS攻击:华为云服务器支持多种攻击防御方式,例如流量清洗和防火墙。安全身份验证:华为云服务器提供基于身份和凭据的访问控制。数据加密和备份:华为云服务器提供高强度的数据加密和备份,以保护您的数据不会丢失。安全审计:华为云服务器
2023-10-26

阿里云服务器用途大吗安全吗可靠吗安全吗?

阿里云服务器是一款云服务器产品,它具有以下几个特点:高可用性:阿里云服务器支持多用户、多节点部署,支持容灾和备份,可以提供高可用性和可靠性,避免单点故障和数据丢失。高性能:阿里云服务器采用多核异构架设计,能够提供强大的计算能力和性能,满足大规模分布式应用和高并发访问的需求。安全性:阿里云服务器提供多种安全技术,包括数据加密、身份验证等,确保用户的数据安全和隐私。方便易用:阿里云服务器采
2023-10-26

阿里云服务器在国外吗安全吗可靠吗安全吗

首先,从阿里云服务器的硬件设施方面来看,其具有较高的安全性能。阿里云服务器采用了多重安全防护措施,包括数据加密、防火墙、入侵检测、漏洞扫描等。同时,阿里云服务器还采用了多重备份措施,确保用户数据的安全。此外,阿里云还采用了SSL协议加密用户数据,确保用户的通信安全。其次,从阿里云服务器的安全措施方面来看,其采用了多重安
阿里云服务器在国外吗安全吗可靠吗安全吗
2023-10-28

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录