• helm原理


    Helm:
      helm就相当于Linux的包管理工具yum,但它管理的程序包是一些打包好的清单文件。
      其核心术语:
      Chart:一个helm程序包,它里面可理解为,包含了一下定义Pod的清单文件,这些清单包含Service,Deployment,DaemonSet,ReplicaSet,StatefulSet,HPA等配置信息,当然这些东西不一定都有,会根据应用不同,其清单内容也会有所区别,Template是模板文件,因为配置清单要能适用于各种场景,已经能够根据用户使用场景,做一些自定义配置,比如:Nginx配置清单中要配置HTTPS,那就需要配置证书,但证书不可能提前打包到Chart中,这就需要一些机制,能通过传递变量的方式来适应这些自定义需求,而template就是这样的目的而存在的,值列表就是为Template提供传递变量的文件。

      Repository:就是Helm的Chart仓库,它支持HTTPS/HTTP。
      Release:特定的Chart部署于目标K8s集群上的一个实例。

    chart到release的过程:
      Chart---》Config ---》 Release

    下图为Helm整体应用框架图:
      helm是作为Helm Repository的客户端工具,helm默认工作时,会从本地家目录中去获取chart,只有本地没有chart时,它才会到远端的Helm Repository上去获取Chart,当然你也可以自己在本地做一个Chart,当需要应用chart到K8s上时,就需要helm去联系K8s Cluster上部署的Tiller Server,当helm将应用Chart的请求给Tiller Server时,Tiller Server接受完helm发来的charts(可以是多个chart) 和 chart对应的Config 后,它会自动联系API Server,去请求应用chart中的配置清单文件,最终这些清单文件会被实例化为Pod或其它定义的资源,而这些通过chart创建的资源,统称为release,一个chart可被实例化多次,其中的某些参数是会根据Config规则自动更改,例如Pod的名字等。

      

    部署Helm:
    #下载helm 二进制文件
        wget -c https://get.helm.sh/helm-v2.14.2-linux-amd64.tar.gz
        
        #下载完成后,解压后,里面会有helm二进制可执行文件,只需要将helm 放到 PATH 路径下。
    
    #参考示例:
        https://github.com/helm/helm/blob/master/docs/rbac.md
    #创建一个能在集群级别管理Pod资源的tiller
        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 server安装时,默认是从google镜像仓库中下载的,但国内很多下载不下来,这里可先从阿里云的谷歌镜像仓库下载下来,
    #导入自己的harbor中,或直接使用阿里的谷歌镜像仓库也可
    #下面是我提前下载了tiller的镜像,推到我的harbor了
            docker  pull  registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.2       #这是从谷歌镜像仓库下载.
            
            helm  init  --tiller-image  harbor.zcf.com/k8s/tiller:v2.14.2  --service-account tiller  --history-max  200
    
    #若后期需要升级tiller镜像,可直接使用下面命令
            $ export TILLER_TAG=v2.0.0-beta.1        # Or whatever version you want
            $ kubectl --namespace=kube-system set image deployments/tiller-deploy tiller=gcr.io/kubernetes-helm/tiller:$TILLER_TAG
    
    #初始化完成后,查看版本
        # helm version
            Client: &version.Version{SemVer:"v2.14.2", GitCommit:"a8b13cc5ab6a7dbef0a58f5061bcc7c0c61598e7", GitTreeState:"clean"}
            Server: &version.Version{SemVer:"v2.14.2", GitCommit:"a8b13cc5ab6a7dbef0a58f5061bcc7c0c61598e7", GitTreeState:"clean"}
    
    #做helm仓库更新
       #  helm  repo  update
    
    #测试安装memcached
       # helm  install  stable/memcached
    
    #查看安装的Chart

      # helm list
      NAME        REVISION   UPDATED            STATUS    CHART       APP VERSION   NAMESPACE
      plucking-buffalo 1      Tue Jul 30 15:55:04 2019  DEPLOYED   memcached-2.9.0 1.5.12      default

    
    #删除Chart
      # helm  delete  --purge  plucking-buffalo

        #官方可用的helm仓库地址
      https://hub.kubeapps.com

     #这是一个很深入介绍helm的文章:

      https://www.hi-linux.com/posts/21466.html

     

  • 相关阅读:
    redis liunx安装
    db2实现每条数据累加
    js实现目录链接,内容跟着目录滚动显示
    Anaconda3安装过程中遇到“Anaconda3-5.1.0-Linux-x86_64.sh:行350: bunzip2: 未找到命令 tar: 它似乎不像是一个 tar 归档文件 tar: 由于前次错误,将以上次的错误状态退出”
    java axis2生成wsdl
    java axis2解析xml(wsdl返回List数据Map<String,Object>
    java axis2解析xml(wsdl返回List数据Map<String,String>
    java axis2解析xml(wsdl返回List数据)
    jquery 合并单元格,rowspan
    poi导出excel
  • 原文地址:https://www.cnblogs.com/wn1m/p/11291304.html
Copyright © 2020-2023  润新知