zoukankan      html  css  js  c++  java
  • tanka 基本试用

    以下是tanka的参考试用

    依赖

    • kubectl
    • diff
    • jb jsonnet bundler
    • helm

    安装tanka

    mac os

    • 命令
    brew install tanka
    brew install jsonnet-bundler

    试用

    • 创建项目
    mkdir prom-grafana && cd prom-grafana
    tk init 

    效果
    需要等待下载


    目录结构

    • 添加资源
      main.jsonnet
     
    {
      // Grafana
      grafana: {
        deployment: {
          apiVersion: 'apps/v1',
          kind: 'Deployment',
          metadata: {
            name: 'grafana',
          },
          spec: {
            selector: {
              matchLabels: {
                name: 'grafana',
              },
            },
            template: {
              metadata: {
                labels: {
                  name: 'grafana',
                },
              },
              spec: {
                containers: [
                  {
                    image: 'grafana/grafana',
                    name: 'grafana',
                    ports: [{
                        containerPort: 3000,
                        name: 'ui',
                    }],
                  },
                ],
              },
            },
          },
        },
        service: {
          apiVersion: 'v1',
          kind: 'Service',
          metadata: {
            labels: {
              name: 'grafana',
            },
            name: 'grafana',
          },
          spec: {
            ports: [{
                name: 'grafana-ui',
                port: 3000,
                targetPort: 3000,
            }],
            selector: {
              name: 'grafana',
            },
            type: 'NodePort',
          },
        },
      },
      // Prometheus
      prometheus: {
        deployment: {
          apiVersion: 'apps/v1',
          kind: 'Deployment',
          metadata: {
            name: 'prometheus',
          },
          spec: {
            minReadySeconds: 10,
            replicas: 1,
            revisionHistoryLimit: 10,
            selector: {
              matchLabels: {
                name: 'prometheus',
              },
            },
            template: {
              metadata: {
                labels: {
                  name: 'prometheus',
                },
              },
              spec: {
                containers: [
                  {
                    image: 'prom/prometheus',
                    imagePullPolicy: 'IfNotPresent',
                    name: 'prometheus',
                    ports: [
                      {
                        containerPort: 9090,
                        name: 'api',
                      },
                    ],
                  },
                ],
              },
            },
          },
        },
        service: {
          apiVersion: 'v1',
          kind: 'Service',
          metadata: {
            labels: {
              name: 'prometheus',
            },
            name: 'prometheus',
          },
          spec: {
            ports: [
              {
                name: 'prometheus-api',
                port: 9090,
                targetPort: 9090,
              },
            ],
            selector: {
              name: 'prometheus',
            },
          },
        },
      },
    }
    • 查看生成的资源
    tk show environments/default

    效果:

    • 配置k8s 部署
      spec.json
     
    {
      "apiVersion": "tanka.dev/v1alpha1",
      "kind": "Environment",
      "metadata": {
        "name": "default"
      },
      "spec": {
        "apiServer": "https://127.0.0.1:6443", // cluster to use
        "namespace": "monitoring" // default namespace for all created resources
      }
    }
    • 部署
    tk apply environments/default

    tk 支持的命令

    • 参考命令
    tanka <3 jsonnet
    Usage:
      tk [command]
    Available Commands:
      apply       apply the configuration to the cluster
      show        jsonnet as yaml
      diff        differences between the configuration and the cluster
      prune       delete resources removed from Jsonnet
      delete      delete the environment from cluster
      env         manipulate environments
      status      display an overview of the environment, including contents and metadata.
      export      write each resources as a YAML file
      fmt         format Jsonnet code
      eval        evaluate the jsonnet to json
      init        Create the directory structure
      tool        handy utilities for working with jsonnet
      complete    install CLI completions

    参考资料

    https://tanka.dev/install

  • 相关阅读:
    【源码剖析】HashMap1.7 详解
    友链
    P4747 [CERC2017]Intrinsic Interval
    Educational Codeforces Round 97 简要题解
    CF908D New Year and Arbitrary Arrangement(期望 dp)
    一个方便的自定义注解,管理实体类
    Leetcode 657 机器人能否回到原点
    Leetcode 695 岛屿的最大面积 二维平面DFS
    WebSocket 的简单用例
    俄罗斯方块JAVA
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/13974920.html
Copyright © 2011-2022 走看看