码迷,mamicode.com
首页 > 其他好文 > 详细

K8s Helm安装配置入门

时间:2019-07-23 11:26:19      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:tor   release   配置入门   资源   目录   cell   top   install   包含   

作为k8s现在主流的一种包部署方式,尽管不用,也需要进行一些了解。因为,它确实太流行了。

这一套太极拳打下来,感觉helm这种部署,目前还不太适合于我们公司的应用场景。它更适合需要手工编程各种yaml文件,使用模板减少工作量和出错。

而我们已实现了web方式的yaml文件编辑,使用Helm意义不大,只能起到优化yaml存储的作用,但同时会使我们的配置文件深度依赖helm。

一,Helm用途

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

做为Kubernetes的一个包管理工具,用来管理charts——预先配置好的安装包资源,有点类似于Ubuntu的APT和CentOS中的yum。

Helm具有如下功能:

l---  创建新的chart

l---  chart打包成tgz格式

l---  上传chart到chart仓库或从仓库中下载chart

l---  在Kubernetes集群中安装或卸载chart

l---  管理用Helm安装的chart的发布周期

l  Helm有三个重要概念:

l---  chart:包含了创建Kubernetes的一个应用实例的必要信息

l---  config:包含了应用发布配置信息

l---  release:是一个chart及其配置的一个运行实例

二,Helm组件

Helm基本架构如下:

技术图片

 

Helm有以下两个组成部分:

1,Helm Client

用户命令行工具,其主要负责如下:

l---  本地chart开发

l---  仓库管理

l---  与Tiller sever交互

l---  发送预安装的chart

l---  查询release信息

l---  要求升级或卸载已存在的release

2,Tiller Server

一个部署在Kubernetes集群内部的server,其与Helm client、Kubernetes API server进行交互。Tiller server主要负责如下:

l---  监听来自Helm client的请求

l---  通过chart及其配置构建一次发布

l---  安装chart到Kubernetes集群,并跟踪随后的发布

l---  通过与Kubernetes交互升级或卸载chart

l---  简单的说,client管理charts,而server管理发布release。


三,Helm安装

1,下载helm客户端

curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get > get_helm.sh

chmod 700 get_helm.sh

./get_helm.sh

 

 

下载完成之后,运行helm version命令,如下输出表示客户ok,server未就绪。

# ./helm version

 技术图片

2,下载tiller镜像

想办法,把gcr.io/kubernetes-helm/tiller:v2.14.2弄到本机上(github+dockerhub)

   技术图片   

向k8s集群中应用一个helm-tiller-rbac-config.yaml

apiVersion: v1

kind: ServiceAccount

metadata:

  name: tiller

  namespace: kube-system

---

apiVersion: rbac.authorization.k8s.io/v1

kind: ClusterRoleBinding

metadata:

  name: tiller

roleRef:

  apiGroup: rbac.authorization.k8s.io

  kind: ClusterRole

  name: cluster-admin

subjects:

  - kind: ServiceAccount

    name: tiller

    namespace: kube-system

 

 

将这个配置文件应用到集群

kubectl create -f rbac-config.yaml

 

然后用类似下面的命令调好。(为什么是类似呢?因为我调了很多次,有一次才通)

./helm init -i gcr.io/kubernetes-helm/tiller:v2.14.2 --service-account tiller –upgrade

./helm init --service-account tiller --tiller-image gcr.io/kubernetes-helm/tiller:v2.14.2 --skip-refresh

helm init --service-account tiller

./helm init --service-account tiller --skip-refresh

 

如果安装正常,helm version命令输出如下:

 技术图片

 

四,  Helm日常操作

1,查看chart

# 查看chart,即已经通过helm部署到 k8s 平台的应用

helm list   

helm ls

2,搜索chart

helm search

 

3,指定仓库搜索chart

helm search 存储库名称 #如 stable 或 incubator

helm search chart名称 #如 wordpress 或 spark

 技术图片

4,查看chart详细信息

helm inspect ali/wordpress

 

 技术图片

五,  Helm部署

下面以workpress为例子,演示如何部署一个helm项目。

1,下载chart

Helm fetch ali/wordpress

 

 技术图片

2,安装部署chart

helm install --name wordpress-test \

--set "persistence.enabled=false,mariadb.persistence.enabled=false" \

ali/wordpress

 

 技术图片

3, 浏览器检测

       http://XXXX:30141/

 技术图片

4,查看wordpress chart

helm list

 

 技术图片

5,删除wordpress chart

helm delete wordpress-test

 

 技术图片

六,  建立自己的Helm Chart

1,生成默认 chart

helm create helm-nginx

 

 技术图片

 

2,chart文件解释

 

 技术图片

3,chart模板文件及变量文件对应关系

deployment.yaml

 技术图片

values.yaml

      技术图片

 

4,chart配置文件检测

helm install --dry-run --debug helm-nginx

 

 技术图片

5,安装自定义的chart

在chart目录内运行

helm install .

 技术图片

 

       浏览器查看效果

 技术图片

七,  传播及复用Helm Chart

1,chart打包分享

在chart目录内运行

helm package .

 

 技术图片

2,http提供chart服务

在生成了chart的压缩包的目录运行

helm serve --address 0.0.0.0:9527

 

 技术图片

3,复用chart

在另外的机器上,访问chart的http服务,并进行下载及安装

wget http://127.0.0.1:9527/helm-nginx-0.1.0.tgz

helm install --name nginx-test helm-nginx-0.1.0.tgz

 技术图片

 

 

 

 

K8s Helm安装配置入门

标签:tor   release   配置入门   资源   目录   cell   top   install   包含   

原文地址:https://www.cnblogs.com/aguncn/p/11230567.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!