helm3 chart repo 私有仓库
https://www.sohu.com/a/304655993_120019946
https://www.jianshu.com/p/18478cf7a37f
1.ChartMuseum
ChartMuseum对于经常用到Helm Charts存储库的开发人员来说,非常实用且方便。作为一个存储库,它被设计为能与各种流行的Kubernetes环境和服务进行协同工作。其中包括Microsoft Azure的Blob存储和Oracle的云架构对象存储。
1.1
简介
Helm chart对仓库的要求并不高,需要你对外提供yaml文件和tar文件的web服务即可。但是实际的操作中我们还需要考虑更多的操作。
Chartmuseum除了给我们提供一个类似于web服务器的功能之外,还提供了其他有用的功能,便于日常我们私有仓库的管理。
- 根据chart文件自动生成index.yaml(无须使用helm repo index手动生成)
- helm push的插件,可以在helm命令之上实现将chart文件推送到chartmuseum上
- 相应的tls配置,Basic认证,JWT认证(Bearer token认证)
- 提供了Restful的api(可以使用curl命令操作)和可以使用的cli命令行工具
- 提供了各种后端存储的支持(Amazon s3, Google Cloud Storage, 阿里、百度、腾讯,开源对象存储等)
- 提供了Prometheus的集成,对外提供自己的监控信息。
- 没有用户的概念,但是基于目录实现了一定程度上的多租户的需求
安装
官方提供了相应的helmchart,可以在kuberentes上直接安装。也提供了docker的镜像方式安装。本文介绍docker的方式进行安装部署。
最新的稳定版本是v0.12.0,下面采用local 存储的方式安装。
docker run --rm -it -p 9999:8080 --privileged=true -e DEBUG=1 -e STORAGE=local -e STORAGE_LOCAL_ROOTDIR=/charts -v /services/chartmuseum/data:/charts -d harbor.superred.com/kubernetes/chartmuseum/chartmuseum
# 我们创建并打包一个新的chart
helm create test Creating test
helm package test
mv test-0.1.0.tgz ~/charts/
helm repo update
helm search repo test
helm push 插件
安装helm push 插件
helm plugin install https://github.com/chartmuseum/helm-push.git
helm push test-0.1.0.tgz chartrepo
helm repo upgrade
2.kubeapps
Kubeapps是Bitnami公司的一个项目,其目的是为Kubernetes的使用者们提供已经打包好的应用仪表盘,它拥有网页界面可以更方便的部署和管理k8s 原生应用。
kubeapps功能说明:
应用仪表盘-包含绝大多数的云原生应用
管理应用-部署,删除,升级以及修改配置
2.1 部署:
helm3添加Bitnami Repository
使用Helm chart来安装最新版本的Kubeapps:
helm repo add bitnami https://charts.bitnami.com/bitnami
2.2 安装Kubeapps
如果你使用 Helm 3, 你需要设置另外的参数,详细命令如下:
kubectl create namespace kubeapps
helm install --name kubeapps --namespace kubeapps bitnami/kubeapps(该命令仅支持helm2)
helm install kubeapps --namespace kubeapps bitnami/kubeapps --set useHelm3=true
2.3 创建 Kubernetes API token
访问kubeapps的web界面需要Kubernetes API token 来验证Kubernetes API server.
kubectl create serviceaccount kubeapps-operator
kubectl create clusterrolebinding kubeapps-operator --clusterrole=cluster-admin --serviceaccount=default:kubeapps-operator
注意:生产环境不建议创建cluster-admin 用户. 请参考Access Control 文档来给生产环境配置合适的用户.
2.4 获取Token
Linux/macOS 系统可以使用如下命令来获取Token:
kubectl get secret $(kubectl get serviceaccount kubeapps-operator -o jsonpath='{range .secrets[*]}{.name}{"\n"}{end}' | grep kubeapps-operator-token) -o jsonpath='{.data.token}' -o go-template='{{.data.token | base64decode}}' && echo
2.5 修改访问模式并访问kubeapps
编辑kubeapps服务svc 将连接类型改为NodePort
kubectl edit svc kubeapps -n kubeapps
看下服务所用端口;
然后打开浏览器输入node的ip加上32024端口则可以访问kubeapps;输入获取的Token就可以直接登录进去。
登录kubeapps之后在catalog之中可以发现有好多已经打包的原生应用可以一建部署。
-
演示安装应用
访问kubeapps 主页并导航到应用目录。 -
譬如选择grafana,有bitnami以及官方stable的包;
这里我选择bitnami的应用包,进去之后点击Deploy
确认配置之后直接点击Submit
应用就部署完了。
使用kubectl edit svc crazy-jail-grafana -n kubeapps 来修改外网访问类型为NodePort
修改完成后,使用命令kubectl get svc -n kubeapps 查看grafana 服务的外部访问端口。
浏览器访问node的ip加30647端口。
Grafana就部署好了。
我后面又测试了prometheus,wordpress等应用。发现除了pv需要手动创建,其他配置都是自动化部署。相对于传统部署方式,省下了很多配置应用的时间;
3 harbor helm 仓库使用
https://blog.****.net/yrx420909/article/details/106127768
https://www.cnblogs.com/lori/p/12654585.html
https://www.bookstack.cn/read/kubernetes-handbook-201910/practice-create-private-charts-repo.md
https://www.jianshu.com/p/18478cf7a37f
https://developer.aliyun.com/hub/?tab=experimental#/?_k=y9jc5v
http://www.manongjc.com/detail/14-orgkxohnsxebpbs.html
# 安装 ./install.sh --with-clair --with-chartmuseum
# 安装push 插件 helm init helm plugin install https://github.com/chartmuseum/helm-push # 查看安装的插件 helm plugin list
helm repo add --ca-file /etc/pki/helm/koji_ca_cert.crt harborcharts https://harbor.superred.com/chartrepo/charts
helm repo add chartmuseum http://10.10.3.174:9999 --username admin --password 123456aA
helm repo add chartmuseum http://10.10.3.104:9999
helm push --ca-file /etc/pki/helm/koji_ca_cert.crt --username admin --password Harbor12345 mysql-1.6.7.tgz harborcharts
helm push --ca-file /etc/pki/helm/koji_ca_cert.crt --cert-file /etc/pki/helm/harbor.superred.com.crt --key-file /etc/pki/helm/harbor.superred.com.key --username admin --password Harbor12345 test1-0.1.0.tgz harborcharts
全局的
mv harbor.superred.com.* koji_ca_cert.crt /etc/pki/ca-trust/source/anchors/
update-ca-trust
helm repo add https://harbor.superred.com/chartrepo/charts