ksonnet 一個簡化編寫以及部署kubernetes的工具


ksonnet 是一個基於jsonnet的快速簡化kubernetes yaml 配置的工具,可以實現配置的復用
同時也包含一個registry 的概念,可以實現可復用組件的分發,同時支持helm

環境准備

  • 安裝cli

    使用mac 系統

brew install ksonnet/tap/ks
  • 包含的命令
ks --help
----

Usage:
  ks [flags]
  ks [command]

Available Commands:
  apply Apply local Kubernetes manifests (components) to remote clusters
  component Manage ksonnet components
  delete Remove component-specified Kubernetes resources from remote clusters
  diff Compare manifests, based on environment or location (local or remote)
  env Manage ksonnet environments
  generate Use the specified prototype to generate a component manifest
  help Help about any command
  import Import manifest
  init Initialize a ksonnet application
  module Manage ksonnet modules
  param Manage ksonnet parameters for components and environments
  pkg Manage packages and dependencies for the current ksonnet application
  prototype Instantiate, inspect, and get examples for ksonnet prototypes
  registry Manage registries for current project
  show Show expanded manifests for a specific environment.
  upgrade Upgrade ks configuration
  validate Check generated component manifests against the server's API
  version Print version information for this ksonnet binary

Flags:
      --dir string Ksonnet application root to use; Defaults to CWD (default "/Users/dalong")
  -h, --help help for ks
      --tls-skip-verify Skip verification of TLS server certificates
  -v, --verbose count Increase verbosity. May be given multiple times.

Use "ks [command] --help" for more information about a command.

基本使用

  • init 應用
ks init dalongdemo
  • 生成的項目結構
  • 定於部署的組件
    以下操作只是演示,我們可以使用命令行工具,快速生成應用的組件
ks generate deployed-service dalongdemo \
  --image dalongrong/appdemo:1.0 \
  --type ClusterIP

如下:

  • 查看生成的yaml
    從下面的可以看出還是很方便的
ks show default

---
apiVersion: v1
kind: Service
metadata:
  labels:
    ksonnet.io/component: dalongdemo
  name: dalongdemo
spec:
  ports:
  - port: 80
    targetPort: 80
  selector:
    app: dalongdemo
  type: ClusterIP
---
apiVersion: apps/v1beta2
kind: Deployment
metadata:
  labels:
    ksonnet.io/component: dalongdemo
  name: dalongdemo
spec:
  replicas: 1
  selector:
    matchLabels:
      app: dalongdemo
  template:
    metadata:
      labels:
        app: dalongdemo
    spec:
      containers:
      - image: dalongrong/appdemo:1.0
        name: dalongdemo
        ports:
        - containerPort: 80
  • helm 的集成
    添加倉庫
ks registry add helm-stable https://kubernetes-charts.storage.googleapis.com

添加charts

ks pkg install helm-stable/wordpress

效果

說明

ksonnet 基於jsonet 的開發模型讓yaml文件的編寫可以實現模塊,共享,我們可以像寫代碼一樣寫
yaml 文件了,同時可以實現復用

參考資料

https://ksonnet.io/docs/examples/helm/
https://ksonnet.io/get-started/
https://github.com/ksonnet/ksonnet


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM