helm3使用记录
helm-proxy
helm3使用
查询helm repo list
helm repo list添加helm repo
helm repo add stable https://kubernetes-charts.storage.googleapis.com/更新helm repo
helm repo update在hub上搜索,相当于helm提供的一个公共仓库,类似docker hub
helm search hub mysql在repo上搜索,共有仓库之外,用户自己添加的helm仓库
helm search repo mysql部署stable/mysql
helm install -name mysql stable/mysql -n default部署应用列表
helm list查看应用当前状态
helm status mysql删除部署应用
helm uninstall mysql从hub拉取chart
helm pull https://hub.helm.sh/charts/incubator/mysqlha从hub拉取chart
helm pull stable/mysql转化chart为k8s的yaml文件
helm template stable/mysql
helm2 迁移到 helm3
Helm V2 到 V3 的变化
- 删除tiller服务
- release不再是全局资源,而是存储在各自的命名空间中
- 把chart中的requirements.yaml内容合并到Chart.yaml中
- helm install 时需要提供名称,如果需要自动生成则需要使用 - g 参数
- helm delete 时,默认带上–purge(不保留历史),如果需要保留历史则需要带上–keep-history命令
- Values支持Json Schema校验器
由于我们不想整个推翻Helm v2命令行工具,我们需要执行一个额外的操作来确保Helm v2和v3版本的命令行工具可以同时工作,直到我们准备好移除Helm v2命令行工具和所有相关的数据
重命名helm v3版本为helm3
安装helm-2to3插件 迁移插件
1 | $ helm3 plugin install https://github.com/helm/helm-2to3 |
迁移Helm v2的配置
helm3 2to3 move config
验证
helm3 repo list
迁移Helm v2 releases
1 | # 查询已经存在helm2中的release |
注意:由于我们并没有指定 –delete-vw-releases 标志,所以Helm v2 的postgres release仍然保留了下来,以后我们可以使用kubectl命令来删除它。
kind
- 创建额外暴露端口集群
kind create cluster –name kind –config kind-example-config.yaml
1 | kind: Cluster |
删除集群
kind delete clusters kind
加载docker镜像进入kind集群
kind load docker-image
image:tag
helm-wrapper
swagger 接口文档
http://localhost:8080/swagger/index.html
最小化go镜像发布
1 | FROM scratch |
因为采取的是scratch做基础镜像不包含静态链接库,所以需要在构建go程序时使用静态构建(参数参考)
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -a -ldflags ‘-s -w -extldflags “-static”‘ -o ${BINARY_NAME}
最后由scratch构建出的应用镜像大小为37.6MB,而centos7构建的镜像则为244MB
注意:scratch镜像精简了很多内容,包括bash等;在容器运行中可能无法直接打开shell界面