• Kubernetes Helm


    截止至2019-07-22可用:

    helm repo add ali-incubator     https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/  
    helm repo add ali-stable    https://kubernetes.oss-cn-hangzhou.aliyuncs.com/ch

    什么是 Helm

    在没有使用 helm 之前,在 kubernetes 部署应用,需要依次部署 deployment、SVC 等步骤较为繁琐。

    况且,随着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂,helm通过打包得方式,支持发布得版本管理和控制,很大程度上简化了 kubernetes 应用得部署以及管理。

    Helm 本质就是让 K8S 得应用管理可方便配置,能动态生成。通过动态生成 K8S 资源清单文件。然后带哦用 kubectl 自动执行 K8S 资源部署

    Helm 是官方提供的类似于 YUM 得包管理工具,是部署环境的流程封装。
    Helm 有两个重要得概念:chart 和 release

    ​ chart :是创建一个应用的信息集合,包括各种 kubernetes 对象得配置模板、参数定义、依赖关系、文档说明等。chart 是应用部署得自包含逻辑单元。可以将 chart 想象成 aptyum 中得软件安装包。
    ​ release :是 chart 得运行实例,代表了一个正在运行得应用。当 chart 被安装到 kubernetes 集群,就会生成一个 release。chart 能够多次安装到同一个集群,但是只会有一个 release。

    Helm 组件

    helm 包含两个组件:helm客户端 和 Tiller 服务端,如下图所示

     

    Helm Client 负责 chart 和 release 得创建和管理, 通过 gRPC 得方式与 Tiller 进行交互。
    Tiller 服务端运行在 kubernetes 集群中,它会处理 Helm 得请求,并发送给 KubeAPI。
    KubeAPI 将数据、资源得生成写入到 etcd ,被 kubelet 接受并创建。

    Helm 部署

    一、安装 Helm 3.2.4版本helm

    由客户端 helm 命令行工具和服务端 tiller 组成, helm 的安装十分简单。下载 helm 命令行工具到 master 节点 node1的 /usr/local/bin 下。

    1、源码安装

    https://github.com/helm/helm/releases/tag/v3.2.4 官网3.2.4版本下载地址

    [root@K8s-master ~]# tar -zxvf helm-v3.2.4-linux-amd64.tar.gz
    [root@k8s-master src]# mv linux-amd64/helm /usr/local/bin
    [root@k8s-master src]# helm version
    version.BuildInfo{Version:"v3.2.4", GitCommit:"0ad800ef43d3b826f31a5ad8dfbb4fe05d143688", GitTreeState:"clean", GoVersion:"go1.13.12"}

    2、脚本安装

    [root@k8s-master ~]# curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
    [root@k8s-master ~]# chmod 700 get_helm.sh
    [root@k8s-master ~]# ./get_helm.sh

    二、常用 chart 源

    ①、初始化 chart 源仓库

    准备好 helm 后,需要添加 helm 源数据仓库。有以下几个常见的源库

    https://kubernetes-charts.storage.googleapis.com/ helm官网 chart 库,稳定
    https://apphub.aliyuncs.com 阿里云chart 库,速度最快
    添加 chart 库

    helm repo add 自定义名称 chart库的地址
    [root@k8s-master ~]# helm repo add stable https://kubernetes-charts.storage.googleapis.com
    [root@k8s-master ~]# helm repo add aliyuncs https://apphub.aliyuncs.com

    查看当前集群有哪些 chart 库

    helm repo list
    [root@k8s-master ~]# helm repo list
    NAME URL 
    stable https://kubernetes-charts.storage.googleapis.com/
    aliyuncs    https://apphub.aliyuncs.com 


    查看某个 chart 库当中有哪些可安装程序

    helm search repo chart库名
    [root@k8s-master ~]# helm search repo aliyuncs
    NAME CHART VERSION    APP VERSION DESCRIPTION 
    aliyuncs/admin-mongo 0.1.0 1 MongoDB管理工具(web gui) 
    aliyuncs/aerospike 0.3.2 v4.5.0.5 A Helm chart for Aerospike in Kubernetes


    Helm官网 chart 仓库
    https://hub.helm.sh/ 里面包含了所有的 chart 资源

    ②、查找想要安装的软件程序

    docker search repo 程序名

    例:helm search repo nginx 查找 nginx 程序都有哪些版本的应用

    [root@k8s-master ~]# helm search repo nginx
    NAME CHART VERSION    APP VERSION DESCRIPTION 
    aliyuncs/nginx 5.1.5 1.16.1 Chart for the nginx server 
    aliyuncs/nginx-ingress 1.30.3 0.28.0 An nginx Ingress controller that uses ConfigMap...
    aliyuncs/nginx-ingress-controller    5.3.4 0.29.0 Chart for the nginx Ingress controller 
    aliyuncs/nginx-lego 0.3.1 Chart for nginx-ingress-controller and kube-lego 
    aliyuncs/nginx-php 1.0.0 nginx-1.10.3_php-7.0    Chart for the nginx php server 
    stable/nginx-ingress 1.40.1 0.32.0 An nginx Ingress controller that uses ConfigMap...
    stable/nginx-ldapauth-proxy 0.1.4 1.13.5 nginx proxy with ldapauth 
    stable/nginx-lego 0.3.1 Chart for nginx-ingress-controller and kube-lego 
    stable/gcloud-endpoints 0.1.2 1 DEPRECATED Develop, deploy, protect and monitor...

    ③、部署 Helm 应用

    要安装新软件包,请使用helm install命令。

    它包含两个参数:您选择的 发行版名称 要安装的 chart 的名称

    例:安装一个 Nginx 应用
    查看都有哪些软件可用:helm search repo nginx

    安装aliyun 的nginx :helm install nginx nginx/aliyuncs

    [root@k8s-master ~]# helm install nginx aliyuncs/nginx
    NAME: nginx
    LAST DEPLOYED: Thu Jun 25 17:29:46 2020
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    NOTES:
    Get the NGINX URL:
    
    NOTE: It may take a few minutes for the LoadBalancer IP to be available.
    Watch the status with: 'kubectl get svc --namespace default -w nginx'
    
    export SERVICE_IP=$(kubectl get svc --namespace default nginx --template "{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}")
    echo "NGINX URL: http://$SERVICE_IP/"


    查看访问的 SVC 映射端口:kubectl get svc --namespace default -w nginx

    [root@k8s-master ~]# kubectl get svc --namespace default nginx
    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    nginx LoadBalancer 10.99.153.167 <pending> 80:30367/TCP,443:32022/TCP 3m

    访问该 nginx 的 web 页面:curl -I 192.168.168.11:30367

    要跟踪发布的状态或重新读取配置信息,可以使用 helm status +应用名

    [root@k8s-master ~]# helm status nginx
    NAME: nginx
    LAST DEPLOYED: Thu Jun 25 17:29:46 2020
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    NOTES:
    Get the NGINX URL:
    
    NOTE: It may take a few minutes for the LoadBalancer IP to be available.
    Watch the status with: 'kubectl get svc --namespace default -w nginx'
    
    export SERVICE_IP=$(kubectl get svc --namespace default nginx --template "{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}")
    echo "NGINX URL: http://$SERVICE_IP/"

    ④、查看helm 生成应用、卸载应用

    helm list 查看集群中有哪些 helm 应用

    helm uninstall +应用名 卸载应用

    “{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}”)
    echo “NGINX URL: http://$SERVICE_IP/”

  • 相关阅读:
    如何在没鼠标没网络的情况下如何安装驱动以及日常的操作
    开启平行眼的一些小技巧
    go-redis连接
    奶牛议会
    转载(int.TryParse用法)用于对字符串内容进行判断
    Javascript扩展Date的prototype实现时间format函数
    dsu on tree学习笔记
    DP做题笔记
    期望概率做题笔记
    生成函数做题笔记
  • 原文地址:https://www.cnblogs.com/lizhewei/p/13344815.html
Copyright © 2020-2023  润新知