zoukankan      html  css  js  c++  java
  • kubernetes学习笔记之十四:helm入门

    1.Helm的简介

    Helm是Kubernetes的一个包管理工具,用来简化Kubernetes应用的部署和管理。可以把Helm比作CentOS的yum工具。 Helm有如下几个基本概念:
    Chart: 是Helm管理的安装包,里面包含需要部署的安装包资源可以把Chart比作CentOS yum使用的rpm文件。每个Chart包含下面两部分:
      1.包的基本描述文件Chart.yaml
      2.放在templates目录中的一个或多个Kubernetes manifest文件模板
    Release:是chart的部署实例,一个chart在一个Kubernetes集群上可以有多个release,即这个chart可以被安装多次
    Repository:chart的仓库,用于发布和存储chart
    使用Helm可以完成以下事情:   1.管理Kubernetes manifest files   2.管理Helm安装包charts   3.基于chart的Kubernetes应用分发

    二、Helm的组成

    Helm由两部分组成,客户端helm和服务端tiller。
      1.tiller运行在Kubernetes集群上,管理chart安装的release
      2.helm是一个命令行工具,可在本地运行,一般运行在CI/CD Server上。

    三、安装helm和tiller

    1.下载helm
    [root@master-01 ~]# wget https://storage.googleapis.com/kubernetes-helm/helm-v2.12.1-linux-amd64.tar.gz  #如何无法科*学*上*网可以从我的网盘中下载 链接: (https://pan.baidu.com/s/1XmVnCMmNVOf1puRqgoqdXw 提取码: 44s1) 
    [root@master-01 ~]# tar xf helm-v2.12.1-linux-amd64.tar.gz 
    总用量 32508
    -rw-------. 1 root root     2002 2018-12-28 14:02 anaconda-ks.cfg
    -rw-r--r--  1 root root 22719794 2019-01-03 21:55 helm-v2.12.1-linux-amd64.tar.gz
    drwxr-xr-x  2 root root       64 2018-12-20 07:11 linux-amd64
    [root@master-01 linux-amd64]# ll
    总用量 71644
    -rwxr-xr-x 1 root root 36844864 2018-12-20 07:09 helm
    -rw-r--r-- 1 root root    11343 2018-12-20 07:11 LICENSE
    -rw-r--r-- 1 root root     3138 2018-12-20 07:11 README.md
    -rwxr-xr-x 1 root root 36495968 2018-12-20 07:11 tiller
    [root@master-01 linux-amd64]# cp helm /usr/bin/  #下载解压完成后,直接将helm执行文件放入PATH环境变量中就可以使用了
    [root@master-01 linux-amd64]# helm -h
    2.安装 tiller

    由于tiller需要安装、删除等操作pod的权限,所以要为tiller设置相应的权限,权限可以分为集群级别或名称空间级别

    配置文档:https://github.com/helm/helm/blob/master/docs/rbac.md

    [root@master-01 ~]# mkdir manifests
    [root@master-01 ~]# cd manifests/
    [root@master-01 manifests]# ll
    总用量 0
    [root@master-01 manifests]# mkdir helm
    [root@master-01 manifests]# cat tiller-rbac.yaml  #创建tiller的rbac配置文件
    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
    [root@master-01 manifests]# kubectl apply -f tiller-rbac.yaml 
    serviceaccount/tiller created
    clusterrolebinding.rbac.authorization.k8s.io/tiller created
    [root@master-01 manifests]# kubectl get sa -n kube-system |grep tiller  #确认是否创建成功
    tiller                               1         57s
    [root@master-01 manifests]# helm init  --service-account tiller  --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.12.1 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts #由于墙的原因,所以我们使用阿里的chart仓库,注意指定的tiller版本需要和helm版本一致 
    $HELM_HOME has been configured at /root/.helm.
    Tiller (the Helm server
    -side component) has been upgraded to the current version.
    Happy Helming
    !
    [root@master
    -01 manifests]# kubectl get pod -n kube-system |grep tiller #查看tiller的pod是否创建成功
    tiller
    -deploy-7d898b45c4-knp4b 1/1 Running 0 2m
    [root@master
    -01 manifests]# helm version
    Client:
    &version.Version{SemVer:"v2.12.1", GitCommit:"02a47c7249b1fc6d8fd3b94e6b4babf9d818144e", GitTreeState:"clean"}
    Server:
    &version.Version{SemVer:"v2.12.1", GitCommit:"02a47c7249b1fc6d8fd3b94e6b4babf9d818144e", GitTreeState:"clean"}

    可能遇到的报错:

    E0224 14:13:16.077226    7416 portforward.go:331] an error occurred forwarding 37271 -> 44134: error forwarding port 44134 to pod 76a7312e49220a229e443546a4b32d3e0406f09fd9b3646b3d30f6833e121375, uid : unable to do port forwarding: socat not found.
    Error: cannot connect to Tiller

    解决方法:

    在所有节点和vip服务器上安装socat
    yum -y install socat

    如果只安装helm客户端,执行以下操作:

    wget https://storage.googleapis.com/kubernetes-helm/helm-v2.12.1-linux-amd64.tar.gz  #下载安装包
    helm init --client-only --stable-repo-url https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts/   #使用--client-only 参数

    四、常用命令

    查看下载的包的信息

    [root@master-01 manifests]# ll ~/.helm/cache/archive/   #helm下载的包路径
    总用量 8
    -rw-r--r-- 1 root root 6189 2019-01-03 23:16 redis-1.1.15.tgz
    [root@master-01 archive]# tar xf redis-1.1.15.tgz 
    tar: redis/Chart.yaml:不可信的旧时间戳 1970-01-01 08:00:00  #时间戳告警可以忽略
    .....
    [root@master-01 archive]# tree redis
    redis
    ├── Chart.yaml  #描述当前chart有哪些属性信息
    ├── README.md   #自述文件
    ├── templates   #模板文件目录
    │   ├── deployment.yaml  #模板文件,之所以叫做模板文件是因为文件中大量使用了go语言模板
    │   ├── _helpers.tpl
    │   ├── networkpolicy.yaml
    │   ├── NOTES.txt
    │   ├── pvc.yaml
    │   ├── secrets.yaml
    │   └── svc.yaml
    └── values.yaml #定义默认值
    
    1 directory, 10 files

    其他:

    [root@master-01 ~]# helm -h
    [root@k8s-master templates]# helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator #添加一个repo仓库,名称为incubator
    [root@k8s-master templates]# helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts 
    [root@k8s-master templates]# helm repo remove stable #删除一个仓库,名称为stable
    [root@k8s-master templates]# helm repo list    #显示所有的仓库列表
    [root@k8s-master templates]# helm repo update  
    [root@k8s-master templates]# helm search elasticsearch #搜索一个chart
    [root@k8s-master templates]# helm fetch incubator/elasticsearch #下载一个chart并解压到本地
    [root@k8s-master archive]# cd /root/.helm/cache/archive
    [root@k8s-master archive]# ll

    查看详细命令帮助: https://docs.helm.sh/helm/#helm

    项目地址:https://github.com/helm/helm

    下载地址:https://github.com/helm/helm/releases/ 

    官方文档地址:https://docs.helm.sh/

    helm官方网址:https://helm.sh/

    helm chart官方网址:https://hub.kubeapps.com/  

     

  • 相关阅读:
    https://blog.csdn.net/yongchaocsdn/article/details/53355296
    P1526 [NOI2003]智破连环阵 [搜索+剪枝(二分图)]
    AT2165 Median Pyramid Hard [二分答案]
    翻煎饼 [迭代加深搜索+剪枝]
    P2962 [USACO09NOV]灯Lights [高斯消元+异或方程组 / 折半搜索]
    P5025 [SNOI2017]炸弹 [线段树优化建图 + Tarjan]
    Tarjan [割点, 缩点, 桥(待填坑)]
    线段树优化建图学习笔记
    P5468 [NOI2019]回家路线 [斜率优化dp]
    CF573E Bear and Bowling [平衡树+动态规划]
  • 原文地址:https://www.cnblogs.com/panwenbin-logs/p/10217589.html
Copyright © 2011-2022 走看看