前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >二进制安装k8s集群(20)-安装chartmuseum和helmpush

二进制安装k8s集群(20)-安装chartmuseum和helmpush

作者头像
TA码字
发布2020-04-01 15:09:12
1.2K0
发布2020-04-01 15:09:12
举报
文章被收录于专栏:TA码字TA码字

上一篇文章中我们介绍安装了helm和tiller server,两者用来作为k8s应用包管理的客户端提供命令行工具,以及作为服务端提供最终安装部署功能。这里我们介绍安装chartmuseum和helmpush,chartmuseum作为chart的私有仓库,helmpush作为插件工具来实现将chart推送到chart repo。当然作为chart repo,也不一定用chartmuseum,只要是web server就好,不过chartmuseum也属于helm项目,所以我们选择chartmuseum,这里对于chartmuseum采用linux systemd安装方式。另外,把chart推送到chart repo也不一定用helmpush,甚至用原始的curl https命令就好。同样helmpush也是属于helm项目的插件,所以我们选择使用它。对于实际应用,请根据自己的需求来选择chart repo和推送工具。

安装chartmuseum

对于chartmuseum我们利用之前文章介绍安装harbor时候的nfs存储,把chartmuseum的storage放在nfs上,所以我们这里会把chartmuseum安装在nfs的client所在的机器上。

nfs server创建共享目录

代码语言:javascript
复制
mkdir -p /opt/share/helm-charts
ls /opt/share|grep helm

nfs client查看共享目录

代码语言:javascript
复制
ls /mnt/share|grep helm

copy二进制文件

这里请提前下载好chartmuseum binary,我们使用0.9.0版本,下载有时候会很慢,甚至断掉

代码语言:javascript
复制
cp chartmuseum /usr/bin/
whereis chartmuseum
chartmuseum --version

创建配置目录:

在这里我们创建chartmuseum的配置目录,同时开启chartmusemu的双向ssl认证。所以请提前制作好相关证书,可以参考以前文章里制作docker server ssl证书。

代码语言:javascript
复制
mkdir -p /etc/chartmuseum
cp chartmuseum-server.crt /etc/chartmuseum
cp chartmuseum-server.key /etc/chartmuseum
cp ca.crt /etc/chartmuseum

ls /etc/chartmuseum

创建配置文件:

chartmuseum的配置项有很多,这里不逐一介绍,有兴趣的同学可以看一下chartmuseum的配置文档。chartmuseum的github地址:

https://github.com/helm/chartmuseum

代码语言:javascript
复制
touch  /etc/chartmuseum/chartmuseum.conf

cat  >  /etc/chartmuseum/chartmuseum.conf << EOF
PORT="--port=4321"
STORAGE="--storage=local"
STORAGE_LOCAL_DIR="--storage-local-rootdir=/mnt/share/helm-charts"
TLS_CERT="--tls-cert=/etc/chartmuseum/chartmuseum-server.crt"
TLS_KEY="--tls-key=/etc/chartmuseum/chartmuseum-server.key"
TLS_CA="--tls-ca-cert=/etc/chartmuseum/ca.crt"
AGRS="--debug"
EOF

source /etc/chartmuseum/chartmuseum.conf

创建systemd unit文件

代码语言:javascript
复制
touch /usr/lib/systemd/system/chartmuseum.service

cat > /usr/lib/systemd/system/chartmuseum.service <<EOF
[Unit]
Description=Helm Chartmuseum Service
After=network.target network-online.target
Wants=network-online.target

[Service]
Type=simple
EnvironmentFile=-/etc/chartmuseum/chartmuseum.conf
ExecStart=/usr/bin/chartmuseum \
$PORT \
$STORAGE \
$STORAGE_LOCAL_DIR \
$TLS_CERT \
$TLS_KEY \
$TLS_CA \
$AGRS

Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
EOF

source /etc/chartmuseum/chartmuseum.conf
cat  /usr/lib/systemd/system/chartmuseum.service

开启访问端口防火墙:

这里chartmuseum使用4321端口,所以请打开4321port的firewall,可以参考以前文章打开防火墙(例如docker安装文章里的开启docker server的访问端口防火墙)。

reload服务,设置开机启动并开启服务

代码语言:javascript
复制
systemctl daemon-reload
systemctl enable chartmuseum

systemctl start chartmuseum
systemctl status chartmuseum

curl访问chartmuseum

代码语言:javascript
复制
curl https://172.20.11.41:4321/index.yaml \
--cacert /etc/chartmuseum/ca.crt \
--key /etc/chartmuseum/chartmuseum-server.key \
--cert /etc/chartmuseum/chartmuseum-server.crt

用helm删除old repo并添加新的repo:

这里helm需要和chartmuseum通讯,而我们的chartmuseum开启了双向ssl认证,所以添加repo的时候需要指定client端相应的ca file,key file,cert file(请提前制作好相关证书并放置在相应目录里,可以参考以前文章里制作docker server ssl证书)。

代码语言:javascript
复制
helm repo list
helm repo remove local
helm repo list

helm repo add chart-repo https://172.20.11.41:4321/ --debug \
--key-file /opt/sw/helm/chartmuseum-client.key \
--cert-file /opt/sw/helm/chartmuseum-client.crt \
--ca-file /opt/sw/helm/ca.crt

helm repo list

安装helmpush

helmpush为二进制可执行文件,所以这里直接下载binary放到$PATH路径下可运行就好。

下载并copy二进制文件:

请提前下载安装包,这里我们使用0.7.1版本,在github下载有时候会很慢,甚至断掉

代码语言:javascript
复制
mkdir -p /opt/sw/helm/helm-push
cp helm-push_0.7.1_linux_amd64.tar.gz /opt/sw/helm/helm-push/
tar -xzvf /opt/sw/helm/helm-push/helm-push_0.7.1_linux_amd64.tar.gz
cp ./bin/helmpush /usr/bin/
whereis helmpush

查看helmpush帮助命令

代码语言:javascript
复制
helmpush --help

设置hemlpush环境变量:

helmpush是需要和chartmuseum通讯的,而我们的chartmuseum开启了双向ssl认证。所以在使用helmpush的时候需要指定client端相应的ca file,key file,cert file(请提前制作好相关证书并放置在相应目录里,可以参考以前文章里制作docker server ssl证书)。另外由上面的helmpush的帮助命令可以看到helmpush默认的ca,key,cert由环境变量$HELM_REPO_CA_FILE,$HELM_REPO_CERT_FILE,$HELM_REPO_KEY_FILE决定。我们这里将这些环境变量设置在/etc/profile里,这样就都可以被加载到了。

代码语言:javascript
复制
vi /etc/profile
source /etc/profile
echo $HELM_REPO_CA_FILE
echo $HELM_REPO_CERT_FILE
echo $HELM_REPO_KEY_FILE
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TA码字 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档