美文网首页
Ubuntu18安装Helm2.14.0

Ubuntu18安装Helm2.14.0

作者: Ronal丶 | 来源:发表于2019-10-29 17:12 被阅读0次

    Helm简介

    此文章取自官网 https://helm.sh/,并加入了自己的理解

    Kubernetes的包管理器,类似于CentOS的yum和Ubuntu的apt,每个包称为一个Chart,一个Chart是一个目录,一般情况下会将目录进行打包压缩,形成name-version.tgz格式的单一文件,方便传输和存储

    对应用发布者而言,Helm可以打包应用,管理应用依赖关系,管理应用版本并发布到软件仓库。
    对使用者而言,不再需要了解Kubernetes的Yaml语法并编写应用部署文件,可以通过Helm下载并在kubernetes上安装需要的应用。

    Helm Charts可降低管理复杂性,可定义、安装和升级应用程序,容易在公有云或私有云创建、版本、共享、发布、回滚

    词义:

    Tiller:Tiller 是 Helm 的服务端,部署在 Kubernetes 集群中。用于接收 Helm 的请求
    Chart:Helm 的软件包,采用 TAR 格式。其包含一组k8s的YAML资源文件
    Repoistory:Helm 的软件仓库,用来保存Chart的软件包,Helm可管理多个Repoistory
    Release:使用 helm install 命令在 Kubernetes 集群中部署的 Chart 称为 Release。

    先决条件

    成功且正确安全地使用Helm需要满足以下先决条件。

    • Kubernetes集群
    • 确定要应用于安装的安全配置(如果有)
    • 安装和配置集群端服务Helm和Tiller。

    注意1:作者此处是虚拟机内安装了kubernetes单master节点,若是生产安装请移步官方文档:Helm安全安装
    注意2:默认情况下,安装Tiller时,未启用身份验证。要了解有关为Tiller配置强TLS身份验证的更多信息,请参阅 Tiller TLS指南

    作者Machine 为Ubuntu 18.04具体信息如下:

    root@master:/home/hzz# lsb_release -a
    
    Distributor ID: Ubuntu
    Description:    Ubuntu 18.04.2 LTS
    Release:    18.04
    Codename:   bionic
    

    docker版本为18.06.3-ce,小版本没有太大差别
    Kubernetes版本为1.15.3:

    root@master:/home/hzz# kubectl version
    
    Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:13:54Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
    Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:05:50Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
    

    打开可以查看版本,后面拼接系统对应版本就可以下载了,linux直接wget就可以
    谷歌镜像地址:https://storage.googleapis.com/kubernetes-helm/
    微软镜像地址:https://mirror.azure.cn/kubernetes/helm/
    如:

    root@master:/home/hzz# wget https://storage.googleapis.com/kubernetes-helm/helm-v2.9.1-linux-amd64.tar.gz
    --2019-09-01 17:09:32--  https://storage.googleapis.com/kubernetes-helm/helm-v2.9.1-linux-amd64.tar.gz
    Resolving storage.googleapis.com (storage.googleapis.com)... 172.217.160.80, 2404:6800:4008:802::2010
    Connecting to storage.googleapis.com (storage.googleapis.com)|172.217.160.80|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 9160761 (8.7M) [application/x-tar]
    Saving to: ‘helm-v2.9.1-linux-amd64.tar.gz’
    
    helm-v2.9.1-linux-amd64.tar.gz                100%[==============================================================================================>]   8.74M  9.03MB/s    in 1.0s    
    
    2019-09-01 17:09:34 (9.03 MB/s) - ‘helm-v2.9.1-linux-amd64.tar.gz’ saved [9160761/9160761]
    

    一、安装

    注:这里作者安装的是稳定的2.14.0版本

    1、解压包,复制helm到/usr/local/bin/ 客户端

    我这里用的是root用户,所以直接拷贝到了/usr/bin/目录下

    root@master:/home/hzz# tar -zxvf helm-v2.14.0-linux-amd64.tar.gz 
    linux-amd64/
    linux-amd64/tiller
    linux-amd64/README.md
    linux-amd64/LICENSE
    linux-amd64/helm
    root@master:/home/hzz# cp linux-amd64/helm /usr/bin/
    root@master:/home/hzz# helm
    The Kubernetes package manager
    
    To begin working with Helm, run the 'helm init' command:
    
        $ helm init
    
    This will install Tiller to your running Kubernetes cluster.
    It will also set up any necessary local configuration.
    

    此时运行helm version已经可以看到helm客户端的版本了,但是连接不到服务端

    root@master:/home/hzz# helm version
    Client: &version.Version{SemVer:"v2.14.0", GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"}
    Error: could not find a ready tiller pod
    

    2、初始化Helm 服务端

    注:此处k8s会去仓库拉镜像,谷歌被墙所以这里需要指定--stable-repo-url参数

    helm init \
        --history-max=3 \
        --tiller-image=gcr.azk8s.cn/kubernetes-helm/tiller:v2.14.0 \
        --stable-repo-url=https://mirror.azure.cn/kubernetes/charts/ \
        --service-account=helm-tiller
    
    2.1、创建account并赋权

    注意3:1.6之前的Kubernetes版本对基于角色的访问控制(RBAC)的支持有限或不支持。1.6之后的默认开启

    我这里k8s集群开启了RBAC认证,所以需要多处理一步,没开启RBAC的可忽略

    # 创建账号、绑定角色
    kubectl create serviceaccount --namespace kube-system helm-tiller
    kubectl create clusterrolebinding helm-tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:helm-tiller
    
    # 给tiller设置角色
    kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"helm-tiller"}}}}' deployment.extensions "tiller-deploy" patched
    
    # 查看授权
    kubectl get deploy --namespace kube-system   tiller-deploy  --output yaml|grep  serviceAccount
          serviceAccount: helm-tiller
          serviceAccountName: helm-tiller
    

    如果这里的权限问题没有处理好,安装完成后会发现命令没有权限,

    root@master:/home/hzz# helm ls
    Error: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list resource "configmaps" in API group "" in the namespace "kube-system"
    

    可以通过helm reset -f或者helm reset --force强制删除tiller容器后,使用正确的参数重新进行helm init操作

    3、验证安装

    出现helm client 和server之后helm便安装完成

    root@master:/home/hzz# kubectl -n kube-system get pods|grep tiller-deploy
    tiller-deploy-7d49974877-w78nz          1/1     Running   0          4h46m
    
    root@master:/home/hzz# helm version
    Client: &version.Version{SemVer:"v2.14.0", GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"}
    Server: &version.Version{SemVer:"v2.14.0", GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"}
    

    可执行helm list查看K8S中已安装的charts 。

    二、使用

    1、更换仓库

    # 先移除原先的仓库
    root@master:/home/hzz# helm repo remove stable
    "stable" has been removed from your repositories
    
    # 添加新的仓库地址
    root@master:/home/hzz# helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
    "stable" has been added to your repositories
    
    # 更新仓库
    root@master:/home/hzz# helm repo update
    Hang tight while we grab the latest from your chart repositories...
    ...Skip local chart repository
    ...Successfully got an update from the "stable" chart repository
    Update Complete.
    

    2、查看可获取的Chart

    root@master:/home/hzz# helm search
    NAME                            CHART VERSION   APP VERSION     DESCRIPTION                     
    stable/acs-engine-autoscaler    2.1.3           2.1.1           Scales worker nodes within agent pools                      
    stable/aerospike                0.1.7           v3.14.1.2       A Helm chart for Aerospike in Kubernetes                    
    stable/anchore-engine           0.1.3           0.1.6           Anchore container analysis and policy evaluation engine s...
    stable/artifactory              7.0.3           5.8.4           Universal Repository Manager supporting all major packagi...
    stable/artifactory-ha           0.1.0           5.8.4           Universal Repository Manager supporting all major packagi...
    stable/aws-cluster-autoscaler   0.3.2                           Scales worker nodes within autoscaling groups.              
    stable/bitcoind                 0.1.0           0.15.1          Bitcoin is an innovative payment network and a new kind o...
    ..................
    

    这里有一篇思路更清晰的文章
    参考:https://blog.csdn.net/bbwangj/article/details/81087911

    相关文章

      网友评论

          本文标题:Ubuntu18安装Helm2.14.0

          本文链接:https://www.haomeiwen.com/subject/qwuxyctx.html