简化Kubernetes应用部署工具-Helm安装

本文讲的是简化Kubernetes应用部署工具-Helm安装【编者的话】微服务和容器化给复杂应用部署与管理带来了极大的挑战。Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernetes的apt-get / yum,由Deis 公司发起,该公司已经被微软收购。Helm通过软件打包的形式,支持发布的版本管理和控制,很大程度上简化了Kubernetes应用部署和管理的复杂性。

Helm把Kubernetes资源(比如deployments、services或 ingress等) 打包到一个chart中,而chart被保存到chart仓库。通过chart仓库可用来存储和分享chart。Helm使发布可配置,支持发布应用配置的版本管理,简化了Kubernetes部署应用的版本控制、打包、发布、删除、更新等操作。

本文展示了Helm的Client、Server与本地Chart仓库的安装过程。

关于Helm简介请参考:
简化Kubernetes应用部署工具-Helm简介

Helm安装

Helm CLINET安装

Helm Client安装过程如下:
1. 下载 Helm 2.6.1:https://storage.googleapis.com ... ar.gz
2. 解包:tar -zxvf helm-v2.6.1-linux-amd64.tgz
3. helm二进制文件移到/usr/local/bin目录。

mv linux-amd64/helm /usr/local/bin/helm

Helm TILLER安装

Helm Tiller是Helm的server,Tiller有多种安装方式,比如本地安装或以pod形式部署到Kubernetes集群中。本文以pod安装为例,安装Tiller的最简单方式是helm init, 该命令会检查helm本地环境设置是否正确,helm init会连接kubectl默认连接的kubernetes集群(可以通过kubectl config view查看),一旦连接集群成功,tiller会被安装到kube-system namespace中。

执行helm init,该命令会在当前目录下创建helm文件夹即~/.helm,并且通过Kubernetes Deployment 部署tiller. 检查Tiller是否成功安装:

$ kubectl get po -n kube-system
NAME                           READY   STATUS   RESTARTS   AGE
tiller-deploy-1046433508-rj51m 1/1     Running  0          3m

Tiller其他安装形式

- 安装金丝雀build: –canary-image
- 安装指定image:–tiller-image
- 指定某一个Kubernetes集群:–kube-context
- 指定namespace安装:–tiller-namespace

Helm TILLER删除

由于 Tiller的数据存储于Kubernetes ConfigMap中,所以删除、升降级Tiller,原Helm部署的应用数据并不会丢失。

删除Tiller:

$ helm reset

Chart仓库

chart仓库用来存储和分享打包的chart,官方chart仓库由Kubernetes Charts维护, Helm允许我们创建私有chart仓库。

创建chart仓库

chart仓库是一个可用来存储index.yml与打包的chart文件的HTTP server,当要分享chart时,需要上传chart文件到chart仓库。任何一个能能够提供YAML与tar文件的HTTP server都可以当做chart仓库,比如Google Cloud Storage (GCS) bucket、Amazon S3 bucket、Github Pages或创建你自己的web服务器。

Chart仓库结构

一个chart仓库由一个chart包与index.yaml文件组成,index.yaml记录了chart仓库中全部chart的索引,一个本地chart仓库的布局例子如下:

/home/ts1/.helm/
|-- cache
| `-- archive
| |-- drupal-0.9.2.tgz
| `-- mariadb-1.0.3.tgz
|-- plugins
|-- repository
| |-- cache
| | |-- fantastic-charts-index.yaml
| | |-- local-index.yaml -> /home/ts1/.helm/repository/local/index.yaml
| | |-- mariadb-1.0.3.tgz-index.yaml
| | |-- memcached-1.2.1.tgz-index.yaml
| | |-- mychart_xia-0.1.0.tgz-index.yaml
| | |-- mysql-0.2.8.tgz-index.yaml
| | |-- stable-index.yaml
| | |-- test-0.1.0.tgz-index.yaml
| | `-- test-0.1.8.tgz-index.yaml
| |-- local
| | |-- index.yaml
| | |-- mychart-0.1.0.tgz
| | |-- mychart_xia-0.1.0.tgz
| | |-- mysql-0.2.8.tgz
| | |-- mysql-6.19.centos-29.tgz
| | |-- test-0.1.0.tgz
| | |-- test-0.1.8.tgz
| | `-- test-0.1.9.tgz
| `-- repositories.yaml
`-- starters

7 directories, 20 files

~/.helm/repository/local/index.yaml文件中记录了chart的诸如名称、url、version等一些metadata信息。

apiVersion: v1
entries:
mychart:
- apiVersion: v1
created: 2017-09-12T02:28:54.061070032Z
description: A Helm chart for Kubernetes
digest: ae8d7138002d432014dc8638ec37202823e9207445caf08a660d154b26e936ea
name: mychart
urls:
- http://127.0.0.1:8879/mychart-0.1.0.tgz
version: 0.1.0
- apiVersion: v1
created: 2017-09-12T03:08:14.02186072Z
description: A Helm chart for Kubernetes
digest: sha256:2a05defa095d364f4efc789fd2417d07493757ebd74096e5f495c50604cf582d
name: mychart
urls:
- http://127.0.0.1:8879/charts/mychart-0.1.0.tgz
version: 0.1.0

创建本地chart仓库

创建chart仓库有多种方式,本文以创建一个本地仓库为例:

$ helm serve –address 0.0.0.0:8879 –repo-path ./charts 
Regenerating index. 
This may take a moment. Now serving you on 0.0.0.0:8879

管理chart仓库

上面步骤中,已经创建了一个本地的chart仓库,接下来讲述如何在chart仓库中维护chart。chart须遵循 SemVer 2 规则填写正确的版本格式。
一旦chart目录已经存在,将chart打包,并移动到的一个新建目录,通过helm repo index 命令将chart的metadata记录在index.yaml文件中。

helm package mychart 
mkdir fantastic-charts 
mv mychart-0.1.0.tgz fantastic-charts/ 
helm repo index fantastic-charts –url
http://bjo-ep-dep-039.dev.fwmrm.net:8879/charts

上传chart到chart仓库,通过helm repo add命令上传chart到chart仓库:

$ helm repo add fantastic-charts http://bjo-ep-dep-039.dev.fwmrm.net:8879/charts
"fantastic-charts" has been added to your repositories

查看chart是否上传仓库成功:

$ helm repo list
NAME                            URL
chartsfantastic-charts     http://bjo-ep-dep-039.dev.fwmrm.net:8879/charts

查找上传的chart:

$ helm search mychart -l
NAME                VERSION    DESCRIPTION
local/mychart       0.1.0      A Helm chart for Kubernetes

欢迎转载,请注明作者出处:张夏,FreeWheel Lead Engineer,DockOne社区

原文发布时间为:2017-09-14

本文作者:张夏

本文来自合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:简化Kubernetes应用部署工具-Helm安装

时间: 2024-09-30 22:29:12

简化Kubernetes应用部署工具-Helm安装的相关文章

简化Kubernetes应用部署工具-Helm之Release配置

本文讲的是简化Kubernetes应用部署工具-Helm之Release配置[编者的话]微服务和容器化给复杂应用部署与管理带来了极大的挑战.Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernetes的apt-get / yum,由Deis 公司发起,该公司已经被微软收购.Helm通过软件打包的形式,支持发布的版本管理和控制,很大程度上简化了Kubernetes应用部署和管理的复杂性. 随着业务容器化与向微服务架构转变

简化Kubernetes应用部署工具-Helm之Hook

本文讲的是简化Kubernetes应用部署工具-Helm之Hook[编者的话]微服务和容器化给复杂应用部署与管理带来了极大的挑战.Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernetes的apt-get / yum,由Deis 公司发起,该公司已经被微软收购.Helm通过软件打包的形式,支持发布的版本管理和控制,很大程度上简化了Kubernetes应用部署和管理的复杂性. 随着业务容器化与向微服务架构转变,通过分解

简化Kubernetes应用部署工具-Helm简介

本文讲的是简化Kubernetes应用部署工具-Helm简介[编者的话]微服务和容器化给复杂应用部署与管理带来了极大的挑战.Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernetes的apt-get / yum,由Deis 公司发起,该公司已经被微软收购.Helm通过软件打包的形式,支持发布的版本管理和控制,很大程度上简化了Kubernetes应用部署和管理的复杂性. 随着业务容器化与向微服务架构转变,通过分解巨大的

利用Helm简化Kubernetes应用部署

Helm 是由 Deis 发起的一个开源工具,有助于简化部署和管理 Kubernetes 应用. Helm 基本概念 Helm 可以理解为 Kubernetes 的包管理工具,可以方便地发现.共享和使用为Kubernetes构建的应用,它包含几个基本概念 Chart:一个 Helm 包,其中包含了运行一个应用所需要的镜像.依赖和资源定义等,还可能包含 Kubernetes 集群中的服务定义,类似 Homebrew 中的 formula,APT 的 dpkg 或者 Yum 的 rpm 文件, Re

vs2005自带部署工具制作的安装文件,安装后,用桌面或开始菜单快捷方式起动,总是运行windows installer

问题描述 vs2005自带部署工具制作的安装文件,安装后,用桌面或开始菜单快捷方式起动,总是运行windowsinstaller,如果移动了原始安装文件,就无法正常起动,好像安装后的程序的运行离不开原始安装文件.但如果进入安装后的文件夹,直接运行程序,则没有这个问题.高手帮忙! 解决方案 解决方案二:可能是你的快捷方式位置指定的不正确,你可以在安装项目里找到EXE程序用IDE自动给它生成快捷方式,然后复制到你想放置的安装目录.解决方案三:不会吧,难道没有高手知道???解决方案四:看你的快捷方式指

Windows 7自动安装和部署工具MDT 2010版

日前,微软公司已经发布了2010微软部署工具包的最终版本.该版本是继2008版部署工具包(MDT)之后帮助企业部署Windows 7系统工程的关键.用户也没必要去展示平台而进行相关升级工作,但是利用它可以减轻http://www.aliyun.com/zixun/aggregation/19803.html">XP系统升级到Windows 7系统迁移过程. 这些可以促使用户从微软官网Microsoft.com或者TechNet上下载获取.微软部署工具包(MDT)可以使得台式机或者服务器的部

Kubernetes持续部署Docker Apps

本文讲的是Kubernetes持续部署Docker Apps[编者的话]本文是Codeship系列文章(Continuous Deployment for Docker Apps to Kubernetes)的第二篇,介绍了Codeship的相关配置项.如果已经等不及了,你可以下载电子书<Continuous Deployment for Docker Apps to Kubernetes> 这一系列文章中,我们介绍过了using Kubernetes for deployments.本篇我们

把.NET程序部署到没有安装.NET Framwork的机器上

程序 目录 本文内容 制作自己的安装程序 发布.NET Framework 制作自己的native安装程序 使用方法 总结 作者 -------------------------------------------------------------------------------- 本文内容 1. 使用VS.NET来制作安装程序. 2. 如何把.NET Framework 部署到目标机器. 3. 如何使用Native代码把.NET Framework和自己的安装程序制作为一个统一的安装程

Windows 7部署工具Dism实例解析

大家知道,Windows Vista采用的封装工具是ImageX,与之相关的.wim文件成 了新的映像标准.殊不知,还是同样的映像格式,微软在Windows 7中推出了新 的封装工具--Dism.这个工具对于大多数用户应该来说比较陌生,本文将列举 几个Dism工具的应用实例,和大家一起体验一下这款全新的映像部署工具. 1.获取Dism命令参数 Dism有很多命令参数,适用于不同的应用需求.在Windows 7的命令行下执行 "dism /?"可获取其命令参数,为了便于查看我们可在命令后