首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Helm Chart 开发 :7个常用的Helm 函数

    除了从Sprig库借用的一些功能之外,它们都还使用Go模板语言。这意味着您可以使用Go模板函数 + Sprig 的模板函数来制作最强大的模板。 在一篇文章中几乎不可能讨论 Helm可用的每一个功能。...我们使用括号来确保将整个内容作为第一个参数.Values.replicaCount | int传递给函数gt。 传递给该gt函数的第二个参数是10。...原因是Go将values.yaml文件中的值转换为它可以使用的数据结构。我们的config数据被转换成一个Map,其中包含一个包含Map的列表。这就是 Go 理解 YAML 并使用它的方式。...至少我们有有效的 YAML,而不是Go映射和列表。但等一下。这并不完全有效,是吗?从values文件中获取的内容与键config.yaml具有相同的缩进级别。...我们将templates/configmap.yaml最后一次修改为如下所示: apiVersion: v1 kind: ConfigMap metadata: name: my-configmap

    82350

    helm charts 模板编程

    如果与调用 API 服务器交互时返回任何错误(例如由于缺少访问资源的权限),则 helm 的模板处理将失败。 控制流程:判断、循环 模板函数和管道是通过转换信息并将其插入到YAML文件中的强大方法。...我们可以通过使用在模板标识{{后面添加破折号和空格{{-来表示将空白左移,而在}}前面添加一个空格和破折号-}}表示应该删除右边的空格,另外需要注意的是换行符也是空格!...,这是因为当前的作用域就在当前循环内,这个.从列表的第一个元素一直遍历到最后一个元素,然后在遍历过程中使用了title和quote这两个函数,前面这个函数是将字符串首字母变成大写,后面就是加上双引号变成字符串...: "K8s" - 1: "Python" - 2: "Search" - 3: "Golang" 我们可以看到 courselist 下面将索引和对应的值都打印出来了,实际上具有键和值的数据结构我们都可以使用...在使用命名模板的时候有一个需要特别注意的是:模板名称是全局的,如果我们声明了两个相同名称的模板,最后加载的一个模板会覆盖掉另外的模板,由于子 chart 中的模板也是和顶层的模板一起编译的,所以在命名的时候一定要注意

    6.9K40

    kustomize 颤抖吧helm!

    不一样的场景: 这样我们用下面的 configmap 去更新 base 中的,这里相当于增加了俩字段。...再 build 一下观察 configmap 变化: production 同理不再赘述了, 然后就可以部署到 k8s 集群中: $ kustomize build $OVERLAYS/staging...注入 k8s 运行时数据 kustomize 有个很强大的特性就是允许注入 k8s 运行时的一些数据,举个栗子: 假设部署个 php 要去连 mysql,但是只知道 mysql 的 Service name...,并不知道端口号是啥,那么 kustomize 就可以帮你解决这个问题: 这里给个获取 metadata.name 的例子,其它运行时数据一个理 php 的 yaml 文件可以这样写: 然后配置下 kusztomize...json patch 同样可以通过指定 json patch 对 yaml 进行修改, yaml 和 json 格式都支持: 还可以把一个 patch 打到多个对象上,比如我们给所有 Deployment

    1.6K30

    Kubernetes 的配置文件处理

    然后 Kubernetes 能够将 ConfigMap 的内容注入到应用的容器中。...如果注入的内容比较简单,可以以环境变量的方式注入;如果注入的参数较多,可以将 ConfigMap 的内容变成文件,在应用运行时由 Kubernetes 注入到容器中文件系统中,应用可以按照读普通文件的方式读取...构建时会使用指定版本的代码,获取和打包 依赖项,编译成二进制文件和资源文件。 发布( Release )阶段 会将构建的结果和当前部署所需配置相结合,并能够立刻在运行环境中投入使用。...而且开发团队的领导也能从整体上分析问题,尝试从框架上做一些统一的调整,所以在 Kubernetes 层面,我们只需要做一些常规的配置即可。...从可执行 Jar 包的 ClassPath 读取配置 可执行 Jar 包不能指定 ClassPath,所以我们想到的一个办法就是将配置文件动态的保存到 Jar 包里。

    22410

    让云原生应用的交付变得更简单 | KubeVela v1.0 正式发布

    在实践中,如没有一个统一的标准,全面使用 Kubernetes 一段时间后,集群将变的十分复杂且难以维护,并且随着人员变动或核心成员的离开,集群很可能会陷入无人敢动,无法维护的境地。...同时在 1.0 版本,所有的抽象定义都会自动生成 Open-API-v3 架构 JSON 格式的表单数据,方便前端进行集成。...-json-schema 的值就是 JSON 格式的参数,可以非常方便生成一个前端表单供平台和应用团队使用,效果如下: 查看 ConfigMap 内容: $ kubectl get configmaps...对于平台团队,KubeVela 是一个可以任意扩展的云原生平台内核,平台工程师可以轻松的将 Kubernetes 生态中的能力,通过 KubeVela 以类似插件的形式注入到 Kubernetes 集群中...KubeVela 社区是一个非常开放的社区,目前还有大量的新功能在规划和实现中,欢迎大家的贡献、使用和反馈。

    96520

    kustomize 颤抖吧helm!

    安装 kustomize已经集成在高版本(1.14+)的kubectl里了,可以使用 kubectl apply -k [目录] 来执行 安装太低级不说了,装不上的智商估计就不用往下继续看了。。。...configmap去更新base中的,这里相当于增加了俩字段。...注入k8s运行时数据 kustomize有个很强大的特性就是允许注入k8s运行时的一些数据,举个栗子: 假设部署个php要去连mysql,但是只知道mysql的Servicename 并不知道端口号是啥...,那么kubemize就可以帮你解决这个问题: 这里给个获取metadata.name的例子,其它运行时数据一个理 php的yaml文件可以这样写: apiVersion: apps/v1beta2 kind...patch 同样可以通过指定json patch对yaml进行修改, yaml和json格式都支持: cat $DEMO_HOME/ingress_patch.yaml - op: replace

    2.4K20

    GitOps 场景下 Kubernetes secrets 加密处理的几种方式

    sops 是一个加密文件的编辑器,支持 YAML、JSON、ENV、INI 和二进制格式,并使用 AWS KMS、GCP KMS、Azure Key Vault 和 PGP 进行加密。...Kamus 提供两种方式来对 Kubernetes secrets 进行加密,即 •使用 init container:将 secrets 加密后存储为 Kubernetes configmap,然后在应用程序的部署中添加一个...init container,通过 init container 将 configmap 中的加密数据解密至指定文件,应用程序再从此文件读取解密后的 secret 信息。...以 volume 的方式挂在到 pod 中,随后使用 init container 来解密数据,且将数据存放在一个 config.json 文件中: apiVersion: v1 kind: Pod...已经被解密到了 config.json文件中,应用程序只需要读取此文件即可获得 secret 的相关数据。

    2.3K10

    部署Chart应用并使用.net core读取Kubernetes中的configMap

    直接使用nuget搜索KubeClient即可找到。 KubeClient支持依赖注入。...KubeApiClient获取一个configClient,然后configClient.List()获取k8s中的所有configMap,labelSelector和kubeNamespace都是默认可空参数...asp.net core中加载configMap 使用nuget安装 KubeClient 和 KubeClient.Extensions.Configuration 在Startup.cs中的构造函数添加下面代码即可...configMap的原因 现在asp.net core一般是使用appsettings.json文件来读取项目的配置信息,这样做非常简单易容,但是在生产环境特别是微服务上面我们往往需要一个配置中心来管理应用配置...k8s中存储配置信息的不只configMap,一些敏感信息,我们可以使用Secret,Secret以密文的方式存储数据,避免了直接在配置文件中保存敏感信息。

    25220

    在 Kubernetes 中使用 Helm Hooks 迁移数据库

    使用 init 容器 Init 容器[1]是指在你的 Pod 中的常规容器启动之前将运行完成的容器。这对于在你的应用程序启动之前执行任何需要的设置都是非常有用的(例如下载一些配置文件)。...使用 init 容器来运行数据库迁移似乎是一个更好的方式,但我们将面临与在应用程序中启动的方式相同的问题。 如果同时创建多个 Pods,则可能会同时运行多个 init 容器。...这意味着我们的 Job 将无法挂载 Chart 创建的ConfigMap 资源。...部署策略和回滚 默认情况下,Kubernetes Deployment 默认更新策略是滚动更新。这意味着在部署过程中,将有 Pod 同时运行应用程序的上一个和新版本。...最后,如果你必须回滚到一个更老的版本,你需要确保当前的数据库结构与你计划回滚到的版本向后兼容。

    1.3K31

    Captain 0.9.0版本发布:新增ChartRepo,更为便捷和原生!

    和原先使用的ConfigMap方式相比,ChartRepo更为便捷和原生,并且具有更高的可定制性。...Captain是Helm官方社区发布的Helm v3 proposal的第一个Controller实现示例,帮助用户简化Helm资源描述,更便捷、高效地实现K8s应用的管理和控制,推进Helm项目向原生...在 helm 3的当前代码中,仍然是从同样位置的配置文件读取 repo 信息,Captain 使用外挂的 ConfigMap 来记录 repositories.yaml 里的内容。...这种做法尽管操作简便,但是弊端也比较突出: 如 helm cli 一样,将用户名和密码直接暴露了出来; 在 ConfigMap中 编辑 yaml 格式的 repo 信息并不方便; 修改 repo 信息需要重启...关于开源项目Captain Captain是Helm官方社区发布的Helm v3 proposal的第一个Controller实现示例,推进Helm项目向原生 K8s迈进的步伐。

    89830

    GitlabCI与Kubernetes实践·部署GitLab-Runner

    可以从Admin Area>Overview>Runner处获取Runner的Token.修改完成之后,通过helm进行打包,然后安装到k8s环境 ☸️ ACK?...gitlab-runner.configmap.yaml来为Gitlab Runner提供需要的环境变量以及一些资源约束信息: 在向 ConfigMap 添加新的环境变量,需要删除已有的GitLab...因为我们是使用 envFrom来注入上面的这些环境变量而不是直接使用env的(envFrom 通过将环境变量放置到ConfigMaps或Secrets来帮助减小清单文件。...在正常停止 Pod 的时候,Runner 将会运行unregister命令来尝试取消自己,所以 Gitlab 就不能再使用这个 Runner 了,这个是通过 Kubernetes Pod 生命周期中的hooks...从GitLabCE CI/CD方法论中探索实践 ? 15 个 Kubectl 现有命令使用技巧 - 拿来即用 ? Jenkins在kubernetes上的初体验 ?

    1.9K20

    Istio Helm Chart 详解 - SidecarInjectorWebhook

    这里会看到 Pod 模板中带有一个新的注解:sidecar.istio.io/inject: "false",该注解用于告知 Webhook,这个 Pod 无需进行注入,具体配置方式会在后面的 ConfigMap...应用变量除了 Helm 的保留变量之外,使用了本地的 enableNamespacesByDefault,来确定是否缺省为命名空间启用自动注入。...如果 global.proxy_init.image 中包含了 /,则直接使用该名称;否则使用 global.hub 和 global.tag 进行拼装。...模板可以使用这些数据,对将要注入的容器和卷进行定义。 global.imagePullPolicy 则定义了镜像的拉取策略。...小结 可以看到,Sidecar 的自动配置过程有很多相关内容,包括命名空间和 Pod 的注解、标签,以及 Helm 中跨越几段的配置数据;而具体的 Sidecar 工作内容,则基本上是由 istio 这一

    1.2K20

    技术分享|如何对 Milvus 进行参数配置

    前不久,已有 Milvus 用户分享了如何在使用 docker-compose 部署时修改配置文件(点击阅读:技术分享|如何对 Milvus 2.0 进行参数配置),本文将简单介绍如何在使用 Kubernetes...如果这些参数项中包含我们想要修改的参数,则可以通过 --values 或 --set 两种方式传递配置数据,具体使用细节请参考: Milvus Helm Chart : https://artifacthub.io...对象中存储的数据可以被 configMap 类型的卷引用,然后向 Pod 注入配置数据,从而被 Pod 中运行的容器化应用使用。...以 rootcoord pod 的 Deployment 资源清单为例,从 spec.template.spec.volumes 关键字可以看到 Pod 顶层声明了一个名为 milvus-config,...在 Milvus 之后的版本中,我们会将用户所关心的配置参数统一放置到一个文件中,且支持通过 Helm Chart 配置更新。在新版本诞生前,希望这篇文档介绍的临时修改方案能对大家有所帮助。

    2.1K30

    全链路分布式跟踪系统 Apache SkyWalking 入门教程

    本文为了方便起见(其实就是穷)采用外部 ES 存储且使用 docker-compose 单节点部署,所以不需要集群的分布式存储;最后确保你本地的 kubectl 能够正常运行。...部署 Skywalking 3.1、部署 Elasticsearch Elasticsearch 当前使用 7.9.2 版本,由于只是初次尝试还处于测试阶段所以直接 docker-compose 启动一个单点...4.2、Agent 配置 Agent 主配置文件存放在 config/agent.config 配置文件中,配置文件内支持环境变量读取,可以自行添加其他配置和引用其他变量;通常这个配置文件在容器化时有两种选择...,一种是创建 ConfigMap,然后通过 ConfigMap 挂载到容器里进行覆盖;另一种是在默认配置里引用各种变量,在容器启动时通过环境变量注入。...这里暂时使用环境变量注入的方式: agent.config ? deployment.yml ? 调整完成后,应用运行一段时间后应该能在 UI 中看到数据 ?

    1.6K40
    领券