Grafana Tanka是Kubernetes集群的配置工具,由Jsonnet数据模板语言实现。是一款Helm的替代品。
使用它比使用Yaml来定义Kubernetes资源更简洁。Jsonnet高度可重用,使你能通过组合现成的库来实现你的技术栈。
与同领域的工具相比,你有最终YAML结构的最终控制权。
亮点介绍:
•干净:使用Jsonet语言表示你的K8s应用,比YAML更简洁。•重用:可构建库,以方便在任何地方使用,甚至分享到Github。•简洁:使用K8s库,不再需要模板。•带来信心的:可以轻松地知道确切的变化。•生产环境Ready:Grafana cloud使用Tanka进行部署。•开源:像Grafana一样完全开源。
对比Yaml的方式与Tanka的方式
Yaml
# Grafana server DeploymentapiVersion: apps/v1kind: Deploymentmetadata: name: grafanaspec: selector: matchLabels: name: grafana template: metadata: labels: name: grafana spec: containers: - image: grafana/grafana name: grafana ports: - containerPort: 3000 name: ui
Tanka的方式
local k = import "k.libsonnet";{ grafana: k.apps.v1.deployment.new( name="grafana", replicas=1, containers=[k.core.v1.container.new( name="grafana", image="grafana/grafana", )] )}
官方文档:https://tanka.dev/
源码地址:https://github.com/grafana/tanka
了解:Jsonnet: 一种数据模板语言