贡献者:幻灰龙
Linux系统上有包管理软件:
Mac系统上有包管理软件:
Windows 上也有可用的包管理软件:
云原生的事实标准平台 k8s 上也可以安装各种组件和服务。而 helm 就是 k8s 的包管理软件,用来给 k8s 平台安装各种组件包或者服务包。
在不同平台上,通过对应平台的包管理软件,可以快速安装 helm 客户端命令。
例如 Windows 上(注:choco 是Windows上的一个包管理命令chocolatey)
choco install kubernetes-helm
例如 Mac 上,直接使用 brew 安装:
brew install helm
helm 通过三大概念来管理 k8s 上的包:
Chart:Chart 代表着 helm 包。它包含在 Kubernetes 集群内部运行应用程序,工具或服务所需的所有资源定义。Repository:是 chart 的存储库。例如:https://charts.bitnami.com/bitnamiRelease:Release 是运行在 Kubernetes 集群中的 chart 的实例。一个 chart 通常可以在同一个集群中安装多次。每一次安装都会创建一个新的 release。以 MySQL chart为例,如果你想在你的集群中运行两个数据库,你可以安装该chart两次。每一个数据库都会拥有它自己的 release 和 release name。贡献者:幻灰龙
首先,初始化下 helm 的仓库,命名为 bitnami
helm repo add bitnami https://charts.bitnami.com/bitnami
其次,查看下仓库 bitnami 里有哪些包
helm search repo bitnami

接着,通过 grep 命令过滤下 mysql 包相关的信息
helm serach repo|grep mysql

然后,安装 mysql 包到 k8s,可以看到安装的
helm repo update # 确定我们可以拿到最新的charts列表
helm install bitnami/mysql --generate-name

查看已经安装的 chart 列表,可以看到mysql已经装上了:
helm list

现在,使用helm status xxx命令查看已安装mysql的状态

安装后的 mysql 可以通过 kubectl run 命令在pod上启动 mysql服务。
贡献者:幻灰龙
回归下示例Python应用 cloud_native_hello_py 的目录结构:
.
├── Dockerfile
├── README.md
├── k8s.deployment.yaml
├── k8s.service.yaml
└── src
├── main.py
└── requirements.txt
我们使用 kubectl 命令部署过该 Python 服务,现在,我们用 helm 来部署。
首先,在项目命令下通过 helm 命令创建一个chart 配置文件夹
makedir chart cd chart helm create hello-py
此时,目录结构如下:
.
├── Dockerfile
├── README.md
├── chart
│ └── hello-py
│ ├── Chart.yaml
│ ├── charts
│ ├── templates
│ │ ├── NOTES.txt
│ │ ├── _helpers.tpl
│ │ ├── deployment.yaml
│ │ ├── hpa.yaml
│ │ ├── ingress.yaml
│ │ ├── service.yaml
│ │ ├── serviceaccount.yaml
│ │ └── tests
│ │ └── test-connection.yaml
│ └── values.yaml
├── k8s.deployment.yaml
├── k8s.service.yaml
└── src
├── main.py
└── requirements.txt
其中:
修改 values.yaml:
replicaCount: 1
images:
image: fanfeilong/cloud_native_hello_py
pullPolicy: IfNotPresent
现在,使用 heml 安装
helm install ./chart/hello-py/ --generate-name
检测下 k8s 的 deployment 和 sevice:

端口转发:

访问服务:

helm 可以规范化k8s应用的配置和部署。helm 通过chart依赖来解决所部署的k8s应用之间的依赖。
本文内容到此结束了,
如有收获欢迎点赞👍收藏💖关注✔️,您的鼓励是我最大的动力。
如有错误❌疑问💬欢迎各位大佬指出。
主页:共饮一杯无的博客汇总👨💻保持热爱,奔赴下一场山海。🏃🏃🏃
