【Helm三部曲】安装 chartmuseum 可视化界面 chartmuseumUi 【官方推荐安装方法】

本文紧接 【Helm三部曲】 Helm 简介及安装【Helm三部曲】 Helm 包管理器 chartmuseum 简介及安装

前面了解到 helm 的服务端是 chartmuseum 。客户端有两种,第一种即 helm 命令行工具。第二种是web 可视化页面。

helm 的 web 可视化界面有

它们都基于 Chartmuseum 提供的 API 而构建,如果愿意,我们可以根据这些API构建自己特有的ChartMuseum 客户端。

本文介绍如何搭建 chartmuseum/ui

安装

chartmuseum/ui 官方 https://github.com/chartmuseum/ui 推荐安装方式如下

1、拉取仓库代码

git clone https://github.com/chartmuseum/ui.git

拉取的代码目录如下
在这里插入图片描述

2、编辑 docker-compose.yaml

拉取的项目 chartmuseum/ui 中有 docker-compose.yaml 文件,文件内容如下:

version: '2.0'
services:
  ui:
    build: ./
    #image: idobry/chartmuseumui:latest
    environment:
      CHART_MUSEUM_URL: http://chartmuseum:8080
    ports:
      - 3000:8080
  chartmuseum:
    image: chartmuseum/chartmuseum:v0.7.1
    ports:
    - 8080:8080
    volumes:
    - ./charts:/charts
    environment:
      PORT: 8080
      DEBUG: 1
      STORAGE: local
      STORAGE_LOCAL_ROOTDIR: /charts

根据需要修改 docker-compose.yml 文件

  • 为了方便文件管理 ,修改 chartmuseum 服务的 volumes 为本地绝对目录地址 ``
  • ui 及 chartmuseum 端口暂时不改

编辑后的文件内容如下:

version: '2.0'
services:
  ui:
    build: ./
    #image: idobry/chartmuseumui:latest
    environment:
      CHART_MUSEUM_URL: http://chartmuseum:8080
    ports:
      - 3000:8080
  chartmuseum:
    image: chartmuseum/chartmuseum:v0.7.1
    ports:
    - 8080:8080
    volumes:
    - D:\apps-data\docker\chartmuseum-ui\charts:/charts
    environment:
      PORT: 8080
      DEBUG: 1
      STORAGE: local
      STORAGE_LOCAL_ROOTDIR: /charts

该配置文件主要信息如下:

  • 构建了两个服务:ui 和 chartmuseum
  • ui 使用 build ./ 构建(docker build ./ ),即通过当前目录下的 Dockerfile 构建
  • ui 配置的后端接口路径是 http://chartmuseum:8080,其中 chartmuseum 是后台服务名,可以用IP代替
  • ui 启动在 3000 端口
  • chartmuseum 使用了 chartmuseum/chartmuseum:v0.7.1 版本
  • chartmuseum 暴露在 8080 端口
  • chartmuseum 将 chart 保存在本地 D:\apps-data\docker\chartmuseum-ui\charts 下。
  • chartmuseum 采用本地存储(local),存储路径是 /charts

启动

根据Docker 官方编排工具 docker-compose ,在 docker-compose.yaml 运行如下命令即可

docker-compose up 

编译Ui时遇到的错误及解决方案见本文: 遇到的错误 章节
在这里插入图片描述

使用

如上图完成启动,根据 docker-compose.yaml 配置,访问 http://localhost:3000/ 即可访问 chartmuseum-ui web 客户端。

访问首页

访问 http://localhost:3000/
在这里插入图片描述

添加应用

创建安装包


# 进入 D:\tmp , 打开 cmd 
# 创建 charts 文件夹,用于存放创建的 chart  
PS D:\tmp> mkdir charts
# 进入 charts
PS D:\tmp> cd .\charts\
# 创建应用 app01
PS D:\tmp\charts> helm create app01
Creating app01
# 打包,默认版本是 0.1.0
PS D:\tmp\charts> helm package .\app01\
Successfully packaged chart and saved it to: D:\tmp\charts\app01-0.1.0.tgz
# 打包,指定版本为: 0.1.1
PS D:\tmp\charts> helm package .\app01\ --version 0.1.1
Successfully packaged chart and saved it to: D:\tmp\charts\app01-0.1.1.tgz
# 打包,指定版本为: 0.2.0
PS D:\tmp\charts> helm package .\app01\ --version 0.2.0
Successfully packaged chart and saved it to: D:\tmp\charts\app01-0.2.0.tgz
# 查看结果
PS D:\tmp\charts> ls


    目录: D:\tmp\charts


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2022/9/28     14:07                app01
-a----         2022/9/28     14:08           3751 app01-0.1.0.tgz
-a----         2022/9/28     14:08           3752 app01-0.1.1.tgz
-a----         2022/9/28     14:08           3753 app01-0.2.0.tgz


PS D:\tmp\charts>

在这里插入图片描述
上传应用
可以通过命令行上传或API接口上传应用,此处展示使用 chartmuseumUi 上传。
点击首页 Add Chart > 选择 应用文件并确认
在这里插入图片描述
同理,创建 app02 并上传。

页面展示

刷新浏览器:
在这里插入图片描述
app01 详情:
在这里插入图片描述
点击Version 查看 app01 所有版本
在这里插入图片描述

遇到的错误

  1. ui 编译失败

问题

在这里插入图片描述

[builder 2/6] RUN go get github.com/tools/godep:
#8 68.13 go: go.mod file not found in current directory or any parent directory.
#8 68.13        'go get' is no longer supported outside a module.
#8 68.13        To build and install a command, use 'go install' with a version,
#8 68.13        like 'go install example.com/cmd@latest'
#8 68.13        For more information, see https://golang.org/doc/go-get-install-deprecation
#8 68.13        or run 'go help get' or 'go help install'.

解决方案
分析错误日志,go.mod 没有找到,导致 go get 命令不能运行。其实是没有启用 go mod 。因此需要 在 Dockerfile 添加如下命令:

# set Go env 
RUN go env -w GO111MODULE=auto

修改后的Dockerfile文件如下:

#
# Stage 1
#
FROM library/golang:1 as builder

# set Go env 
RUN go env -w GO111MODULE=auto

# Godep for vendoring
RUN go get github.com/tools/godep

# Recompile the standard library without CGO
RUN CGO_ENABLED=0 go install -a std

ENV APP_DIR $GOPATH/src/github.com/chartmuseum/ui
RUN mkdir -p $APP_DIR
ADD . $APP_DIR

# Compile the binary and statically link
RUN cd $APP_DIR && \
    GO111MODULE=auto CGO_ENABLED=0 godep go build -ldflags '-w -s' -o /chartmuseum-ui && \
    cp -r views/ /views && \
    cp -r static/ /static

#
# Stage 2
#
FROM alpine:3.8
RUN apk add --no-cache curl cifs-utils ca-certificates \
    && adduser -D -u 1000 chartmuseum
COPY --from=builder /chartmuseum-ui /chartmuseum-ui
COPY --from=builder /views /views
COPY --from=builder /static /static
USER 1000
ENTRYPOINT ["/chartmuseum-ui"]

总结

本文介绍了 Chartmuseum Web 客户端软件 Chartmuseum/Ui 及其安装。其中安装方式采用了docker-compose。且 ui 是使用 Dockerfile 编译的最新版本,chartmuseum 采用的是 chartmuseum/chartmuseum:v0.7.1

实际使用时,我们可以将 ui 和 chartmuseum 分别部署,且选用不同的可兼容版本。

假如我们临时编译一个 charmuseum-ui ,并采用 ghcr.io/helm/chartmuseum 最新版本搭建一个环境,可以通过如下命令完成:

# 编译 chartmuseum-ui(修改后的Dockferfile所在目录执行)
docker build .
# 启动 chartmuseum 后端 
docker run --name chartmuseum -d -p 8080:8080  ghcr.io/helm/chartmuseum
# 启动前端 chartmuseum-ui
docker run --name chartmuseum-ui -d -p 3000:8080 -e CHART_MUSEUM_URL=http://localhost:8080 chartmuseum-ui

最终本地的相关镜像有(docker desptop 界面查看):
在这里插入图片描述
更多基础请移步 【Helm三部曲】 Helm 简介及安装【Helm三部曲】 Helm 包管理器 chartmuseum 简介及安装

注: docker-compose 请翻阅 docker 官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值