• k8s包管理工具helm3应用


    在k8s中,使用Helm包管理工具来管理k8s包,Helm之于Kubernetes好比yum之于RHEL,或者apt-get之于Ubuntu。Helm使用Charts管理应用,Charts就好像RPM一样,里面描述了应用及其依赖关系。
    Helm 组件及相关术语
    • helm
    Helm 是一个命令行下的客户端工具。主要用于 Kubernetes 应用程序 Chart 的创建、打包、发布以及创建和管理本地和远程的 Chart 仓库。
    • Chart
    Helm 的软件包,采用 TAR 格式。类似于 APT 的 DEB 包或者 YUM 的 RPM 包,其包含了一组定义 Kubernetes 资源相关的 YAML 文件。
    • Repoistory
    Helm 的软件仓库,Repository 本质上是一个 Web 服务器,该服务器保存了一系列的 Chart 软件包以供用户下载,并且提供了一个该 Repository 的 Chart 包的清单文件以供查询。Helm 可以同时管理多个不同的 Repository。
    • Release
    使用 helm install 命令在 Kubernetes 集群中部署的 Chart 称为 Release。可以理解为 Helm 使用 Chart 包部署的一个应用实例。

    helm部署:
    1、根据系统下载所需版本
    curl -L -o helm-v3.2.4-linux-amd64.tar.gz https://file.choerodon.com.cn/kubernetes-helm/v3.2.4/helm-v3.2.4-linux-amd64.tar.gz
    2、解压压缩包(以linux-amd64为例)
    tar -zxvf helm-v3.2.4-linux-amd64.tar.gz

     3、将文件移动到PATH目录中(以linux-amd64为例)

    # mv linux-amd64/helm /usr/bin/helm
    执行命令,出现以下信息即部署成功。
    $ helm version
    version.BuildInfo{Version:"v3.2.4", GitCommit:"0ad800ef43d3b826f31a5ad8dfbb4fe05d143688", GitTreeState:"clean", GoVersion:"go1.13.12"}

    代码自动补全功能

    代码自动补齐
    #在 ~/.bashrc 追加,重启生效
    source <(helm completion bash)
    Helm 的基本操作
    # 查看仓库的chart库列表信息

    # helm repo list
    # 添加一些常用的 Charts 库
    # helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
    # 增加完仓库后,需要执行更新命令,将仓库中的信息进行同步:
    # helm repo update
    # 列出stable仓库可以安装的charts
    # helm search repo stable
    #通过 Helm 在 Repo 中查询可安装的 mysql包:
    # helm search repo mysql
    #安装stable仓库的一个mysql的chart,-n:指定安装的 Namespace
    # helm install stable/mysql --generate-name -n default 
    或者如下写法:
    # helm install --set name=mysql stable/mysql --generate-name 
    查看详情
    # helm show all stable/mysql
    查看应用状态
    # helm status mysql -n default
    下载chart包到本地:

    查看chart怎么写的
    # helm pull stable/mysql
    # ls
    mysql-0.3.5.tgz
    # tar -zxvf mysql-0.3.5.tgz
    # tree mysql
    mysql
    ├── Chart.yaml
    ├── README.md
    ├── templates
    │   ├── configmap.yaml
    │   ├── deployment.yaml
    │   ├── _helpers.tpl
    │   ├── NOTES.txt
    │   ├── pvc.yaml
    │   ├── secrets.yaml
    │   └── svc.yaml
    └── values.yaml
    1 directory, 10 files
    chart 是一个组织在文件目录中的集合
    在这个目录中,Helm 期望可以匹配以下结构:
    Chart.yaml          # 包含了chart信息的YAML文件
    LICENSE             # 可选: 包含chart许可证的纯文本文件
    README.md           # 可选: 可读的README文件
    values.yaml         # chart 默认的配置值
    values.schema.json  # 可选: 一个使用JSON结构的values.yaml文件
    charts/             # 包含chart依赖的其他chart
    crds/               # 自定义资源的定义
    templates/          # 模板目录, 当和values 结合时,可生成有效的Kubernetes manifest文件
    templates/NOTES.txt # 可选: 包含简要使用说明的纯文本文件
    Chart 包的目录结果就是这样,我们再来仔细看看 templates 目录下⾯的文件:
    NOTES.txt:chart 的 “帮助文本”。这会在用户运行 helm install 时显示给用户;
    deployment.yaml:创建 Kubernetes deployment 的基本 manifest;
    service.yaml:为 deployment 创建 service 的基本 manifest;
    ingress.yaml: 创建 ingress 对象的资源清单文件;
    _helpers.tpl:放置模板助手的地方,可以在整个 chart 中重复使用。
    这里我们明⽩每⼀个文件的作用就行,我们也可以把 templates 目录下⾯所有的文件全部删除,自己来创建模板文件。

    helm 3 命令:

    # helm version                     //查看helm版本信息,必须保证可以查看出来client和server,才可正常使用helm
    # helm list                                 //查看已安装的软件包
    # helm uninstall release                       //卸载release
    # helm repo list                             //查看仓库的详细信息
    # helm repo add stable http://mirror.azure.cn/kubernetes/charts/    //添加 Charts 库
    # helm repo update                            //更新一下helm仓库,将仓库中的信息进行同步
    # helm search repo nginx                      //通过 Helm 在 Repo 中查询可安装的 Nginx 包
    # helm pull stable/tomcat                      //将tomcat软件包下载到本地
    # helm show stable/tomcat                        //查看该软件包的详细信息
    # helm status mysql                             //查看mysql的状态信息
    # helm env                                    //查看环境配置信息
    # helm search repo harbor -l                     //打印出所有版本
    helm package hello-helm                               //打包Chart:
    helm (delete|uninstall)  hello-helm-1584972412        //删除Release
    # helm install --dry-run --debug ./mychart/ --generate-name    Helm调试
    启动
    helm  install --name filebeat -f filebeat-settings.yaml filebeat
    更新配置
    helm upgrade filebeat -f filebeat-settings.yaml filebeat
    停止服务
    helm delete filebeat --purge

    实例:

    使用helm部署prometheus服务:

    ## 添加repo
    helm repo add stable http://mirror.azure.cn/kubernetes/charts
    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts 
    helm repo add stable https://charts.helm.sh/stable
    
    列出资源:
    helm repo list
    查询资源:
    helm search repo prometheus-community
    下载
    helm pull prometheus-community/prometheus-operator
    安装
    #helm install prometheus prometheus-community/prometheus-operator -n monitor
    # helm install prometheus stable/prometheus-operator --namespace monitor
    
    卸载:
    # helm uninstall prometheus
    
    切换到解压包目录执行如下命令进行部署操作:
    
    [root@c7n-01 prometheus-operator]# helm install prometheus .
    
    helm install prometheus-operator-9.3.0.tgz 
    -f value.yaml 
    --set grafana.adminPassword=123456
  • 相关阅读:
    C# .Net基础知识点解答
    依赖注入框架Autofac的简单使用
    Linq表达式、Lambda表达式你更喜欢哪个?
    C#抽象类、接口、虚函数和抽象函数
    MVC面试问题与答案
    并发 并行 同步 异步 多线程的区别
    .Net中的控制翻转和依赖注入
    解析ASP.NET WebForm和Mvc开发的区别
    测试与代码质量
    netty 同步调用
  • 原文地址:https://www.cnblogs.com/saneri/p/14469180.html
Copyright © 2020-2023  润新知