美文网首页
《每天5分钟玩转 Kubernetes》11 Helm - 开发

《每天5分钟玩转 Kubernetes》11 Helm - 开发

作者: SlowGO | 来源:发表于2018-12-14 16:27 被阅读34次

    创建 chart

    helm create mychart
    

    自动创建目录 mychart,生成各类 chart 文件,以此为基础进行开发。

    tree mychart
    
    mychart/
    ├── charts
    ├── Chart.yaml
    ├── templates
    │   ├── deployment.yaml
    │   ├── _helpers.tpl
    │   ├── ingress.yaml
    │   ├── NOTES.txt
    │   ├── service.yaml
    │   └── tests
    │       └── test-connection.yaml
    └── values.yaml
    

    调试 chart

    helm 提供了 debug 工具:helm lint、helm install --dry-run --debug。

    helm lint 会检查 chart 语法,报告错误,给出建议。

    修改 mychart/values.yaml 模拟错误,例如删除 pullPolicy: IfNotPresent 中的 :,执行:

    helm lint mychart/
    
    // 返回
    ==> Linting mychart/
    [INFO] Chart.yaml: icon is recommended
    [ERROR] values.yaml: unable to parse YAML
        error converting YAML to JSON: yaml: line 11: could not find expected ':'
    
    Error: 1 chart(s) linted, 1 chart(s) failed
    

    给出了错误,修复后验证通过。

    helm install --dry-run --debug 会执行模拟安装:

    helm install --dry-run mychart --debug
    

    会输出每个模板生成的YAML内容,我们根据这些内容判断是否与预期相符。

    安装

    有4中安装方式:

    1. 安装仓库中的 chart,helm install stable/nginx
    2. 通过 tar 包安装,helm install ./nginx-1.2.3.tgz
    3. 安装本地目录,helm install ./nginx
    4. 通过 url 安装,helm install https://xxx/nginx-1.2.3.tgz

    示例(本地目录方式安装刚刚创建的 mychart):

    helm install mychart
    

    1. 启动一个 httpd 容器

    任何 http server 都可以用作 chart 仓库,使用docker启动一个 httpd 容器:

    docker run -d -p 8081:80 -v /var/www/:/usr/local/apache2/htdocs/ httpd
    

    2. 将 mychart 打包

    helm package mychart
    

    会生成 mychart-0.1.0.tgz 包。

    3. 生成仓库 index 文件

    mkdir myrepo
    mv mychart-0.1.0.tgz myrepo/
    helm repo index myrepo/ --url http://192.168.3.107:8081/charts
    
    ls myrepo
    index.yaml  mychart-0.1.0.tgz
    

    helm 会扫描 myrepo 目录中的所有 tgz 包并生成 index.yaml,--url 指定的是新仓库的地址。

    4. 上传 index.yaml 与 mychart-0.1.0.tgz

    index.yaml mychart-0.1.0.tgz 上传到 /var/www/charts 目录。

    5. 将新仓库添加到 helm

    helm repo add newrepo http://192.168.3.107:8081/charts
    

    查看:

    helm repo list
    NAME    URL
    stable  https://kubernetes-charts.storage.googleapis.com
    local   http://127.0.0.1:8879/charts
    newrepo http://192.168.3.107:8081/charts
    

    现在就可以查询到 mychart 了:

    helm search mychart
    NAME            CHART VERSION   APP VERSION DESCRIPTION
    local/mychart   0.1.0           1.0         A Helm chart for Kubernetes
    newrepo/mychart 0.1.0           1.0         A Helm chart for Kubernetes
    

    6. 直接从仓库安装 mychart

    helm install newrepo/mychart
    

    如果以后仓库中添加了新的 chart,需要使用 helm repo update 更新本地的 index,类似 ubuntu 的 apt-get update

    相关文章

      网友评论

          本文标题:《每天5分钟玩转 Kubernetes》11 Helm - 开发

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