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