zoukankan      html  css  js  c++  java
  • 2.安装Helm

    作者

    微信: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

    请尽量按照自己期望的生活 email:18980489167@189.cn
  • 相关阅读:
    设计模式小结
    Asp.net 中HttpHandler,HttpModule,IHttpHandlerFactory的原理与应用(一)
    全新对待.net一次全面的旅程
    页面生命周期小结
    面向对象点滴
    Chapter 2.1:WCF服务契约的重载与继承详解
    一封给“X教授”的回信(讨论Socket通信)
    Chapter 1.4:WCF实践 元数据详解
    有了WCF,Socket是否已人老珠黄?
    Chapter 1.3:WCF实践 HelloWorld
  • 原文地址:https://www.cnblogs.com/gytangyao/p/11407200.html
Copyright © 2011-2022 走看看