作者

微信:tangy8080

电子邮箱:914661180@qq.com

更新时间:2019-06-25 13:54:15 星期二

欢迎您订阅和分享我的订阅号,订阅号内会不定期分享一些我自己学习过程中的编写的文章

如您在阅读过程中发现文章错误,可添加我的微信 tangy8080 进行反馈.感谢您的支持。

文章主题

介绍如何在k8s集群中安装helm

前置条件

您已经构建好了一个k8s集群

正文

helm是一个在k8s平台上的部署管理工具,简单来说您可以把它认为像是360软件管家,centos上的yum 一样的用途.它可以方便的安装,升级,卸载 k8s中程序

如果您经常在k8s中部署程序,那么可能面临以下尴尬:

  • 安装一个程序,除了程序本身之外,往往还需要建立存储卷,建立凭证,建立服务,建立Ingress等等,工作比较繁琐

  • 如果现在要卸载一个程序,往往也得删除存储卷,删除服务,删除Ingress等工作

  • 如果应用配置有变化,可能需要重新部署

helm可以解决上面的问题,比如您需要部署es,只需要下面一条命令(在实际部署时,可能需要更改部署参数,这里仅做实例说明)

helm install --name elasticsearch --set image.tag=6.7.0, client.replicas=3,cluster.name=kubernetes,data.persistence.storageClass=nfs-client,master.persistence.storageClass=nfs-client stable/elasticsearch

有关更多详细资料您可以参阅:https://helm.sh/

现在在github中也托管了很多支持使用helm来部署的软件包:https://github.com/helm/charts

helm的工作方式

helmctl >(控制)> k8s集群中的tiller 由tiller完成相关的控制操作

安装依赖项目

#在每个节点上安装
yum install -y socat
  • 不安装可能会报错:uid : unable to do port forwarding: socat not found.

安装Helm命令行工具

cd /usr/local/src
wget https://get.helm.sh/helm-v2.14.1-linux-amd64.tar.gz
tar -zxvf helm-v*-linux-amd64.tgz
mv linux-amd64/helm /usr/local/bin/helm
#测试命令行是否可以使用
helm help
在K8s集群中部署tiller
创建一个ServiceAccount

由于tiller需要在集群中执行高级别权限的操作(创建,删除全部资源),所以我们为其绑定到cluster-admin角色

更多资料,您可参阅:https://helm.sh/docs/using_helm/#role-based-access-control

以下操作请在kubectl命令行工具下,或者dashboard下创建

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
执行部署tiller

以下操作请在安装了helm的机器上执行

helm init --service-account tiller --history-max 200

如果一切成功,您将在kube-system名称空间下看到部署:tiller-deploy

解决repo不能访问的问题

helm 的仓库配置在repositories.yaml文件中

在安装程序时helm需要在仓库中搜索程序包,但默认的仓库由于一些原因可能无法访问,我们需要更换仓库地址

helm repo remove stable
helm repo add stable http://mirror.azure.cn/kubernetes/charts/
helm repo list



如图所示,我这里已经将stable的仓库地址更改到了微软提供的仓库

引用链接

https://helm.sh/docs/using_helm/#role-based-access-control

https://github.com/googlehosts/hosts/blob/master/hosts-files/hosts

2.安装Helm的更多相关文章

  1. 安装Helm

    一:1.下载helm-v2.10.0-linux-amd64.tar.gz 地址:https://github.com/kubernetes/helm/releases2,解压缩 tar -zxvf ...

  2. 在Kubernetes集群中安装Helm及证书认证

    安装Kubernetes 测试环境使用kubeadm安装kubernetes v1.6.3版本, 安装过程略过. 为Helm创建客户端认证 客户端认证是为了能够使用helm命令行调用Helm的服务端T ...

  3. 利用chocolate包管理工具安装helm

    在powershell中执行 1 安装choco包管理工具 Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object Sys ...

  4. [转帖]Kubernetes中安装Helm及使用

    Kubernetes中安装Helm及使用 2018年07月02日 17:41:09 灬勿忘丶心安 阅读数 3699更多 分类专栏: K8S   版权声明:本文为博主原创文章,遵循CC 4.0 BY-S ...

  5. 一定成功 k8s 安装helm v2.17 基本命令

    一.下载helm安装脚本 1.1 介绍 Helm是Kubernetes的包管理器. 其实就是管理了一推配置文件,ds,configmap,deployment......,一类规则. 就类似: yum ...

  6. 如何在Ubuntu里安装Helm

    Helm是什么?在战网上玩过暗黑破坏神2代的程序员们应该还记得,Helm是国度的意思. 而在计算机领域,Helm是什么? Helm是Kubernetes的一个包管理工具,有点像nodejs的npm,U ...

  7. k8s安装helm

    1.客户端安装 A.直接在github上下载二进制文件进行解压,下载地址:https://github.com/kubernetes/helm/releases B.将解压出来的二进制文件helm 拷 ...

  8. 国内安装helm

    helm repo remove stable helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts ...

  9. Helm包管理工具(简介、安装、方法)

    认识Helm 每次我们要部署一个应用都需要写一个配置清单(维护一套yaml文件),但是每个环境又不一样.部署一套新的环境成本是真的很高.如果我们能够使用类似于yum的工具来安装我们的应用的话那就太好了 ...

随机推荐

  1. 攻防世界—pwn—level0

    题目分析 下载文件后首先使用checksec检查文件保护机制 文件名太长了,就更改了一下 发现是一个64位程序,使用ida查看伪代码 注意到一个特殊的函数名callsystem 确定思路,直接栈溢出 ...

  2. Databricks 第7篇:管理Secret

    有时,访问数据要求您通过JDBC对外部数据源进行身份验证,可以使用Azure Databricks Secret来存储凭据,并在notebook和job中引用它们,而不是直接在notebook中输入凭 ...

  3. 使用 gRPC-UI 调试.NET 5的gPRC服务

    在上一篇文章中,我介绍了gRPCurl一个命令行工具,该工具可用于测试gRPC服务的端点,在本文中,我将向您介绍 gRPC-ui, 它可以作为Web工具使用,有点像Postman,但用于gRPC AP ...

  4. MyBatis初级实战之五:一对一关联查询

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

  5. ABAP 面试问题和答案

    What is an ABAP data dictionary?- ABAP 4 data dictionary describes the logical structures of the obj ...

  6. MyBatis初级实战之六:一对多关联查询

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

  7. 使用存储过程在mysql中批量插入数据

    一.在mysql数据库中创建一张表test DROP TABLE IF EXISTS `test`; CREATE TABLE `test` ( `id` INT (11), `name` VARCH ...

  8. Ubuntu对接GlusterFS

    存储节点部署示例环境,仅供参考 主机名 IP 系统 gfs01 10.10.10.13 Ubuntu 16.04.3 LTS gfs02 10.10.10.14 Ubuntu 16.04.3 LTS ...

  9. 转 2 jmeter常用功能介绍-测试计划、线程组

    2 jmeter常用功能介绍-测试计划.线程组   1.测试计划测试用来描述一个性能测试,所有内容都是基于这个测试计划的. (1)User Defined Variables:设置用户全局变量.一般添 ...

  10. 一例 Go 编译器代码优化 bug 定位和修复解析

    https://mp.weixin.qq.com/s/Tyl6dSb7mHBuqqN6WvEuaw