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

 
 
 
 

ksonnet 一个简化编写以及部署kubernetes的工具的更多相关文章

  1. K8s 二、(1、kubeadm部署Kubernetes集群)

    准备工作 满足安装 Docker 项目所需的要求,比如 64 位的 Linux 操作系统.3.10 及以上的内核版本: x86 或者 ARM 架构均可: 机器之间网络互通,这是将来容器之间网络互通的前 ...

  2. 如何不编写 YAML 管理 Kubernetes 应用?

    Kubernetes 将自身边界内的事物都抽象为资源.其中的主要部分,是以 Deployment.StatefulSet 为代表的 workload 工作负载控制器,其他各类资源都围绕这些主要的资源工 ...

  3. 手动部署 kubernetes HA 集群

    前言 关于kubernetes HA集群部署的方式有很多种(这里的HA指的是master apiserver的高可用),比如通过keepalived vip漂移的方式.haproxy/nginx负载均 ...

  4. 使用 Kubeadm 安装部署 Kubernetes 1.12.1 集群

    手工搭建 Kubernetes 集群是一件很繁琐的事情,为了简化这些操作,就产生了很多安装配置工具,如 Kubeadm ,Kubespray,RKE 等组件,我最终选择了官方的 Kubeadm 主要是 ...

  5. 三种常见的部署Kubernetes的方式

    三种常见的部署Kubernetes的方式 嘹亮的小号 Ghostcloud-001工号,资深Docker玩家,分布式系统研发11年. ​关注他   容器技术将应用程序及其依赖关系与操作系统进行分离,不 ...

  6. GitLab Runner部署(kubernetes环境)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  7. Centos7 安装部署Kubernetes(k8s)集群

    目录 一.系统环境 二.前言 三.Kubernetes 3.1 概述 3.2 Kubernetes 组件 3.2.1 控制平面组件 3.2.2 Node组件 四.安装部署Kubernetes集群 4. ...

  8. China Azure中部署Kubernetes(K8S)集群

    目前China Azure还不支持容器服务(ACS),使用名称"az acs create --orchestrator-type Kubernetes -g zymtest -n kube ...

  9. Linux shell编写脚本部署pxe网络装机

    Linux shell编写脚本部署pxe网络装机 人工安装配置,Linux PXE无人值守网络装机  https://www.cnblogs.com/yuzly/p/10582254.html 脚本实 ...

随机推荐

  1. 安装ubuntu gnome桌面

    注意: ubuntu 14.04.5默认的为unity桌面,有多点触发,没有自带Tweak Tool工具. 安装gnome桌面 sudo apt-get install ubuntu-gnome-de ...

  2. js 循环遍历数组

    var a =[1,3,4]; a.each(functiom{ .... }) or for (var x in a ){ .... }

  3. JSP组件Telerik UI for JSP发布R1 2019 SP1|附下载

    Telerik UI for JSP拥有由Kendo UI for jQuery支持的40+ JSP组件,同时通过Kendo UI for jQuery的支持能使用JSP封装包构建现代的HTML5和J ...

  4. 解决NPM无法安装任何包的解决方案(npm ERR! code MODULE_NOT_FOUND)

    前言 今天突然发现npm无法使用了,执行任何命令都报如下错误: npm ERR! code MODULE_NOT_FOUND npm ERR! Cannot find module 'internal ...

  5. Oracle特殊字符转义:&和'

    Oracle特殊字符转义:&和'    我们在SQL*PLUS下执行 SQL show all命令时,可以发现一个参数:define & (hex 26),如下所示 concat . ...

  6. <Hadoop><SequenceFile><Hadoop小文件>

    Origin 我们首先理解一下SequenceFile试图解决什么问题,然后看SeqFile怎么解决这些问题. In HDFS 序列文件是解决Hadoop小文件问题的一个方法: 小文件是显著小于HDF ...

  7. centos6.6安装hadoop-2.5.0(二、伪分布式部署)

    操作系统:centos6.6(一台服务器) 环境:selinux disabled:iptables off:java 1.8.0_131 安装包:hadoop-2.5.0.tar.gz 伪分布式环境 ...

  8. ios scrollView代理的用法

    // // ZQRViewController.m // 03-图片缩放 // // Created by apple on 17-08-25. // #import "ZQRViewCon ...

  9. 24点小游戏app宣传文案

    24点小游戏app宣传文案 游戏背景 24点小游戏是传统的扑克牌游戏,是通过扑克牌来完成的竞争性智力游戏,除了希望能够消磨我们的空闲时间,加强同学们的临机和速算能力,还能够促进我们每个人的大脑和逻辑性 ...

  10. DIV垂直居中对齐

    效果图: CSS: #container{ display:table-cell; width:300px; height:300px; vertical-align:middle; border:1 ...