本文分别从如下几个方面来分享一波 如何将自己的镜像使用 helm 部署
- 简单介绍一下 helm
- 使用自己写 yaml 文件的方式在 k8s 中部署应用
- 使用 helm 的方式在 k8s 中部署应用
简单介绍一下 helm
Helm 是 Kubernetes 的包管理器,在云原生领域用于应用打包和分发
Helm Chart 包含了 Docker 镜像以及其在 k8s 中的基础设施配置,例如 service,deployment 等等,helm 可以把 k8s 的应用进行完成封装,发布给任意一个其他的 k8s 环境使用
可以查看 helm 文档地址:https://helm.sh/zh/docs/
使用自己写 yaml 文件的方式在 k8s 中部署应用
接下来便开始咱们的实战演练了,我们需要有如下工具:
- 基本的 k8s集群 环境,也可以是 minikube
- 基本的 docker 环境和知识
- 基本的 git 环境和知识
- Helm 工具
一般情况下,咱们刚开始会用 k8s 的时候,咱们会去单独的编写 deployment, service 对应的 yaml 文件,然后再一一部署,如果咱们的应用使用到了卷,配置文件等,咱们编写的 yaml 只会更多,并且不利于分享和传播。
例如咱们在部署一个 应用名为 my-helm-demo 的时候,我们会这样做
1、编写源码,并输出可以执行程序
咱们编写一个 web 服务端,提供一个 v1 版本的查询接口,咱们使用 gin 简单实现一下
先来看看我们的完整的项目整体结构
先来编码实现 web 服务器
- helm_demo/my_demo/main.go
使用上述源码文件,咱们编译可以生成可执行程序,咱们将它命名为 my_demo_svr ,并且将它放到 helm_demo 目录下
2、制作镜像
这个时候我们来开始制作镜像,在 helm_demo 下编写启动脚本 start.sh 和 Dockerfile
- helm_demo/start.sh
#!/bin/bash
./my_demo_svr
- helm_demo/Dockerfile
FROM centos
ADD my_demo_svr /
ADD start.sh /
ENTRYPOINT ["sh", "start.sh"]
制作 docker 镜像,对于 docker 相关的细节就不赘述了,docker 仓库可以查看 https://