以前安装helm2的时候会在k8s集群中安装一个叫tiller的容器,用于和集群交互,helm3移除了tiller这个组件,默认通过~/.kube/config与集群进行交互,也就是说使用了与kubctl相同的上下文访问权限,若不在默认位置可通过–kubeconfig参数进行指定,按照官方安装文档安装即可直接使用
原来是0.1.0现在更新到0.1.1,然后回滚
[root@EPG1 mychart]# helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
mycharts default 1 2020-02-20 14:52:57.724255389 +0800 CST deployed mychart-0.1.0 1.16.0
[root@EPG1 ~]# helm upgrade mycharts myharborlib/mychart --version 0.1.1
Release "mycharts" has been upgraded. Happy Helming!
NAME: mycharts
LAST DEPLOYED: Thu Feb 20 15:48:49 2020
NAMESPACE: default
STATUS: deployed
REVISION: 2
TEST SUITE: None
[root@EPG1 ~]# helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
mycharts default 2 2020-02-20 15:48:49.307073392 +0800 CST deployed mychart-0.1.1 1.16.1
[root@EPG1 ~]# helm rollback mycharts
Rollback was a success! Happy Helming!
[root@EPG1 ~]# helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
mycharts default 3 2020-02-20 15:57:44.582470748 +0800 CST deployed mychart-0.1.0 1.16.0
目前尝试过推送到harbor中,首先harbor要支持charts,需要在安装时添加参数–with-chartmuseum
./install.sh --with-chartmuseum
harbor安装自行百度
这样在harbor的项目详情页面就会有个叫 Helm Charts 的标签
下载charts默认支持,不多做介绍,推送charts到harbor目前遇到一些坑下面做简要介绍
helm(3.0.3)现在默认不支持推送到charts库,需要安装插件helm-push
https://github.com/chartmuseum/helm-push
helm plugin install https://github.com/chartmuseum/helm-push
由于网络原因这样安装可能会安装,我是先直接这样安装了一下,超时了没装成功,然后又在网上直接下载的文件放到了/root/.local/share/helm/plugins/这个目录里面,然后好使了。
push charts 先要添加repo(其实不加好像直接url也行,我这里先加上)
helm repo add myharborlib https://[harbor-domain-name]/chartrepo/chart_repo --ca-file /root/helm/ca/newca/ca.crt
因为harbor默认是带ssl认证的所以得需要上harbor上找到之前的证书,这里是自签的证书/root/helm/ca/newca/ca.crt
[root@EPG1 .kube]# helm repo list
NAME URL
harbor https://helm.goharbor.io
myharborlib https://[harbor-domain-name]/chartrepo/chart_repo
然后push,这里有个坑,我这项目chart_repo是公共项目,按理说公共项目是不要用户名密码的,但是不添加报错,加了就好了
helm push mychart/ myharborlib --ca-file /root/helm/ca/newca/ca.crt -u admin -p Harbor12345
至此就能把charts push到自己搭建的harbor上了,这次总结了目前认为比较坑的地方,以后有其他发现再添加到这个文档里。