Helm安装

Helm client安装

helm项目地址:

https://github.com/helm/helm

可以直接下载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会无法拉取到tiller镜像,需要手动指定镜像地址,同时如果Kubernetes集群开启了rbac,还需要指定运行tiller的servicaccount,并为该serviceaccount作合适的授权。

下面是实际安装时的指令:

helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.9.0 --service-account=tiller --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

上面的命令指定了安装时使用的tiller镜像的地址,同时指定了默认的chart仓库的地址。

helm init常用配置项如下:

  • --canary-image:安装金丝雀build
  • --tiller-image:安装指定image
  • --kube-context:安装到指定的kubernetes集群
  • --tiller-namespace:安装到指定的namespace中
  • --upgrade:如果tiller server已经被安装了,可以使用此选项更新镜像
  • --service-account:用于指定运行tiller server的serviceaccount,该account需要事先在kubernetes集群中创建,且需要相应的rbac授权

创建serviceaccount并授权的示例:

# cat helm-account.yaml

apiVersion: v1
kind: ServiceAccount
metadata:
labels:
k8s-app: helm
name: tiller
namespace: kube-system # cat helm-rbac.yaml apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: helm-rbac
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system

我这里是直接为其授予超级管理员权限,如果需要对其进行精细权限控制,可参考helm官方文档:https://docs.helm.sh/using_helm/#role-based-access-control

安装完成以后,可以通过如下操作查看tiller server的pod:

root@k8s-m:/home/www/server/kube-yamls/public/helm# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
tiller-deploy-5d4b89d6c9-srvpr 1/1 Running 0 4d

看到tiller server正常运行,即安装成功。

Chart仓库配置

chart仓库用来存储和分享打包的chart,分为公共仓库和私有仓库,其中官方仓库由Kubernetes Charts维护,地址是https://github.com/helm/charts。但是在国内访问官方仓库,一个要翻墙,另一个慢。所以在国内环境中,公共仓库推荐使用阿里云chart仓库,地址为https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts。

私有chart仓库

chart仓库的组成

在更多的时候,我们需要自己维护一个私有的chart仓库。而chart仓库实际上,就是一个可用来存储index.yaml与打包的chart文件的http server,任何一个能够提供yaml与tar文件的http server都可以当做chart仓库。

下面我们简单说一说chart仓库的结构:

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

charts/
|
|- index.yaml
|
|- alpine-0.1.2.tgz
|
|- alpine-0.1.2.tgz.prov

其中index.yaml文件中记录了chart的诸如名称、url、version等一些metadata信息:

apiVersion: v1
entries:
alpine:
- created: 2016-10-06T16:23:20.499814565-06:00
description: Deploy a basic Alpine Linux pod
digest: 99c76e403d752c84ead610644d4b1c2f2b453a74b921f422b9dcb8a7c8b559cd
home: https://k8s.io/helm
name: alpine
sources:
- https://github.com/kubernetes/helm
urls:
- https://technosophos.github.io/tscharts/alpine-0.2.0.tgz
version: 0.2.0
- created: 2016-10-06T16:23:20.499543808-06:00
description: Deploy a basic Alpine Linux pod
digest: 515c58e5f79d8b2913a10cb400ebb6fa9c77fe813287afbacf1a0b897cd78727
home: https://k8s.io/helm
name: alpine
sources:
- https://github.com/kubernetes/helm
urls:
- https://technosophos.github.io/tscharts/alpine-0.1.0.tgz
version: 0.1.0
nginx:
- created: 2016-10-06T16:23:20.499543808-06:00
description: Create a basic nginx HTTP server
digest: aaff4545f79d8b2913a10cb400ebb6fa9c77fe813287afbacf1a0b897cdffffff
home: https://k8s.io/helm
name: nginx
sources:
- https://github.com/kubernetes/charts
urls:
- https://technosophos.github.io/tscharts/nginx-1.1.0.tgz
version: 1.1.0
generated: 2016-10-06T16:23:20.499029981-06:00

创建本地仓库

一个简单的创建一个本地仓库的示例:

helm serve --address 0.0.0.0:8879 --repo-path ./charts

chart仓库基本管理

  1. 列出仓库中的charts
    helm repo list
  2. 打包本地开发的chart
    helm package mychart
  3. 上传chart到chart仓库
    helm repo add mychart http://1270.0.1:8879/charts
  4. 查找chart
    helm search mychart -l

Helm二:安装的更多相关文章

  1. 国内不fq安装K8S二: 安装kubernet

    目录 2 安装kubelet 2.1 环境准备 2.2 设置国内的源 2.3 重要的设置 2.4 获取镜像 2.5 使用kubeadm init初始化集群 2.6 安装Pod Network 2.7 ...

  2. 如何使用helm优雅安装prometheus-operator,并监控k8s集群微服务

    前言:随着云原生概念盛行,对于容器.服务.节点以及集群的监控变得越来越重要.Prometheus 作为 Kubernetes 监控的事实标准,有着强大的功能和良好的生态.但是它不支持分布式,不支持数据 ...

  3. Hbase深入学习(二) 安装hbase

    Hbase深入学习(二) 安装hbase This guidedescribes setup of a standalone hbase instance that uses the local fi ...

  4. Open vSwitch系列之二 安装指定版本ovs

    在ovs学习过程中,如果自己想要安装一个ovs交换机其实一条简单的命令 apt  install openvswitch 就可以了,但是这种方法只能安装低版本的ovs.在特殊情况下需要安装指定版本,例 ...

  5. [原创] debian 9.3 搭建Jira+Confluence+Bitbucket项目管理工具(二) -- 安装jira 7.5.4

    [原创] debian 9.3 搭建Jira+Confluence+Bitbucket项目管理工具(二) -- 安装jira 7.5.4 环境都配置好以后, 开始搭建Jira的环境, 这里参考了一篇文 ...

  6. 开源一款强大的文件服务组件(QJ_FileCenter)(系列二 安装说明)

    系列文章 1. 开源一款强大的文件服务组件(QJ_FileCenter)(系列一) 2. 开源一款强大的文件服务组件(QJ_FileCenter)(系列二 安装说明) 3. 开源一款强大的文件服务组件 ...

  7. Ubuntu 18 Kubernetes集群的安装和部署 以及Helm的安装

    首先说一下我的环境, 我是在windows 10 上面建了一个ubuntu18的虚拟机,同时由于某些原因 不受网络限制, 所以安装比较顺利. Install 1.安装并启用 Docker  sudo ...

  8. prometheus-operator 详细总结(helm一键安装)

    一.介绍prometheus-operator 二.查看配置rbac授权 三.helm安装prometheus-operator 四.配置监控k8s组件 五.granafa添加新数据源 六.监控mys ...

  9. helm一键 安装mariadb-ha(详细)

    一. 二.单机安装一主一从 先创建对应pv https://github.com/helm/charts/blob/master/stable/mariadb/templates/master-sta ...

随机推荐

  1. Promise 执行顺序

    加深印象 setTimeout(function() { console.log("timeout-start"); }, 200) // 改为100呢 console.log(& ...

  2. jQuery .attr() vs. .prop()

    Property vs. Attribute 在开始正式比较prop()和attr()两个jQuery方法之前,我们有必要先弄清一下Property和Attribute两个单词的意思.在中文里面,它们 ...

  3. 3、Docker容器管理

    一.容器创建 1.创建命令 docker  container [root@localhost harbor]# docker container Usage: docker container CO ...

  4. stl源码剖析 详细学习笔记priority_queue slist

    // //  priority_queue.cpp //  笔记 // //  Created by fam on 15/3/16. // // //------------------------- ...

  5. 基于Vue手写一个下拉刷新

    当然不乏有很多下拉刷新的插件可以直接使用,但是自定义程度不强,大部分都只能改改文字,很难满足设计师的创意,譬如淘宝和京东首页那种效果,就需要自己花心思倒腾了,最近刚好有这种需求,做完了稍微总结一下,具 ...

  6. tree的使用,显示行号,find命令应用

    第1章 linux启动过程 1.开机自检bios 2.mbr引导 3.GRUB 菜单:选择不同的内核 4.加载内核 5.运行init进程 6.读取/etc/inittab运行级别配置文件 7.执行 / ...

  7. LintCode——Pour Water

    Pour Water: We are given an elevation map, heights[i] representing the height of the terrain at that ...

  8. Teaching Machines to Understand Us 让机器理解我们 之二 深度学习的历史

    Deep history 深度学习的历史 The roots of deep learning reach back further than LeCun’s time at Bell Labs. H ...

  9. c# 简易绘制C语言头文件包含关系图 v2.0

    老规矩,先上图 节点样式说明: 1.粉色圆角,说明该节点下有循环引用 2.黄色菱形,说明该节点代表的文件在项目目录下未找到. 3.红色圆角,说明循环引用(从开始到最终,这种感情没变过,没有谁..... ...

  10. 20135202闫佳歆--week6 课本第三章学习笔记

    第三章 进程管理 一.进程 1.进程 进程就是处于执行期的程序. 进程就是正在执行的程序代码的实时结果. 进程是处于执行期的程序以及相关的资源的总称. 进程包括代码段和其他资源. 2.线程 执行线程, ...