作为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安装配置入门的更多相关文章

  1. kubernetes(k8s) helm安装kafka、zookeeper

    通过helm在k8s上部署kafka.zookeeper 通过helm方法安装 k8s上安装kafka,可以使用helm,将kafka作为一个应用安装.当然这首先要你的k8s支持使用helm安装.he ...

  2. 转载maven安装,配置,入门

    转载:http://www.cnblogs.com/dcba1112/archive/2011/05/01/2033805.html 本书代码下载 大家可以从我的网站下载本书的代码:http://ww ...

  3. k8s Helm安装Prometheus Operator

    Ubuntu 18 Kubernetes集群的安装和部署 以及Helm的安装完成了k8s的集群和helm的安装,今天我们来看看Prometheus的监控怎么搞.Prometheus Operator ...

  4. Docker: 安装配置入门[二]

    一.安装配置启动 1.环境 [root@docker1 ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@d ...

  5. kubernetes系列(十六) - Helm安装和入门

    1. helm简介 1.1 为什么需要helm 1.2 helm中几个概念 1.3 helm用途 2. helm安装 3. helm的基本使用 3.1 安装chart仓库里面的chart 3.2 创建 ...

  6. Kustomize安装配置入门文档

    一,简介 kustomize是sig-cli的一个子项目,它的设计目的是给kubernetes的用户提供一种可以重复使用同一套配置的声明式应用管理,从而在配置工作中用户只需要管理和维护kubernet ...

  7. ELK+Filebeat 安装配置入门

    本文地址 http://www.cnblogs.com/jasonxuli/p/6397244.html   https://www.elastic.co 上,elasticsearch,logsta ...

  8. Keepalived安装配置入门

    准备两台虚拟机,IP如下: A:192.168.1.11 B:192.168.1.12 A为Master,B为BackUp 1.安装 yum install keepalived -y 2.配置 A服 ...

  9. Nginx 的安装配置入门(mac)

    1.安装Nginx服务器: 执行命令 brew install nginx 安装完以后,可以在终端输出的信息里看到一些配置路径: /usr/local/etc/nginx/nginx.conf (配置 ...

随机推荐

  1. ajax与重定向

    网上有不少说法ajax的请求url浏览器不会重定向的说法是片面的,正常是这样的: 当服务器将302响应发给浏览器时,浏览器并不是直接进行ajax回调处理,而是先执行302重定向——从Response ...

  2. [LeetCode] 905. Sort Array By Parity 按奇偶排序数组

    Given an array A of non-negative integers, return an array consisting of all the even elements of A, ...

  3. [LeetCode] 785. Is Graph Bipartite? 是二分图么?

    Given an undirected graph, return true if and only if it is bipartite. Recall that a graph is bipart ...

  4. [LeetCode] 415. Add Strings 字符串相加

    Given two non-negative numbers num1 and num2 represented as string, return the sum of num1 and num2. ...

  5. [LeetCode] 92. Reverse Linked List II 倒置链表之二

    Reverse a linked list from position m to n. Do it in one-pass. Note: 1 ≤ m ≤ n ≤ length of list. Exa ...

  6. 一次线上Redis类转换异常排查引发的思考

    之前同事反馈说线上遇到Redis反序列化异常问题,异常如下: XxxClass1 cannot be cast to XxxClass2 已知信息如下: 该异常不是必现的,偶尔才会出现: 出现该异常后 ...

  7. 破解Xmind时长

    第一步:必须先进入软件,新建一个思维导图,产生用户状态文件就行. 直接软解: 第二步:打开路径:C:\Users\你的电脑名称\AppData\Roaming\XMind ZEN\Electron v ...

  8. What IS MPI

    一.MPI message passing interface A specification for the developers and users of message passing libr ...

  9. linux 内核参数tcp_max_syn_backlog对应的队列最小长度

    环境:centos7.4 内核版本3.10 内核参数net.ipv4.tcp_max_syn_backlog定义了处于SYN_RECV的TCP最大连接数,当处于SYN_RECV状态的TCP连接数超过t ...

  10. WPF ResourceDictionary XAML资源 c#代码 获取与遍历

    使用C#代码来获取XAML资源,除去正常的FindResource.而且是能查询到资源的对象. 说实话还是很麻烦的. 比如说我现在有一堆静态资源放在xaml的资源中,我想通过绑定的方式来获取. 好比是 ...