使用 Helm 管理 minikube 中应用的安装

Helm 是 Kubernetes 中一个著名的包管理工具,其用处类似于 ubuntu 中的 apt-get, windows 中的 Chocolatey, Mac OS 中的 Brew。 本文简单说明如何在 Windows 10 环境中使用 Helm 在 Minikube 中安装、发布应用。

安装 Helm

在使用 Helm 之前,请先安装好 Kubernetes 集群或是 Minikube。 关于在 Windows 10 中安装 Minikube, 可参考: 在 Win10 系统中安装 minikube

如果你在 Windows 环境中安装了 Docker, 先执行以下命令,与 Minikube 共享 Docker 环境

1
minikube docker-env | Invoke-Expression

Helm 的安装有很多方式,本文选择的是手动下载编译好的可执行文件,自己安装。 在 官网 下载, 选择 Windows amd64 版本。在这以后简单解压到任意目录,再在 Path 中添加该路径即可。 在本文中我将其解压到 C:\Devel\Helm 目录。

然后打开一个命令行窗口,执行:

1
helm version

如果看到类似以下的输出,则表明安装成功:

1
version.BuildInfo{Version:"v3.1.2", GitCommit:"d878d4d45863e42fd5cff6743294a11d28a9abce", GitTreeState:"clean", GoVersion:"go1.13.8"}

添加 Chart 仓库

因为在国内使用,选择使用阿里的 Chart 仓库,执行:

1
helm repo add aliyun-stable https://apphub.aliyuncs.com/stable

其中 “aliyun-stable” 是对于该仓库给定的一个本地名称,因为你可以加入多个仓库。

系统显示:

1
"aliyun-stable" has been added to your repositories

则说明已经添加成功。

添加完成后,就可以试试在仓库中搜索应用了。 要搜索 redis, 执行:

1
helm search repo aliyun-stable/redis

系统会显示在 aliyun-stable 仓库中带 redis 名称的应用:

1
2
3
NAME            CHART VERSION   APP VERSION     DESCRIPTION
stable/redis 10.5.7 5.0.7 DEPRECATED Open source, advanced key-value stor...
stable/redis-ha 4.4.2 5.0.6 Highly available Kubernetes implementation of R...

安装应用

我们以安装 redis-ha 为例,执行:

1
helm install aliyun-stable/redis-ha --generate-name

在安装是,你可以要安装的应用命名,也可以使用 –generate-name 参数让系统自动生成名称。 执行后,系统显示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
NAME: redis-ha-1584698965
LAST DEPLOYED: Fri Mar 20 18:09:26 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
Redis can be accessed via port 6379 and Sentinel can be accessed via port 26379 on the following DNS name from within your cluster:
redis-ha-1584698965.default.svc.cluster.local

To connect to your Redis server:
1. Run a Redis pod that you can use as a client:

kubectl exec -it redis-ha-1584698965-server-0 sh -n default

2. Connect using the Redis CLI:

redis-cli -h redis-ha-1584698965.default.svc.cluster.local

执行 ls 命令,可以列出已经按照的应用:

1
helm ls

系统显示:

1
2
NAME                    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
redis-ha-1584698965 default 1 2020-03-20 18:09:26.5596864 +0800 CST deployed redis-ha-4.4.2 5.0.6

最后,我们查以下 minikube, 看看是否真的安装了应用,执行:

1
kubectl get pods

系统显示:

1
2
3
NAME                           READY   STATUS    RESTARTS   AGE
redis-ha-1584698965-server-0 2/2 Running 0 3m3s
redis-ha-1584698965-server-1 0/2 Pending 0 117s

可以看到,相关的 POD 已经被建立并运行。 再执行:

1
kubectl get svc

可以看到系统显示:

1
2
3
4
5
6
NAME                             TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)              AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 6h34m
redis-ha-1584698965 ClusterIP None <none> 6379/TCP,26379/TCP 64m
redis-ha-1584698965-announce-0 ClusterIP 10.110.138.119 <none> 6379/TCP,26379/TCP 64m
redis-ha-1584698965-announce-1 ClusterIP 10.102.35.3 <none> 6379/TCP,26379/TCP 64m
redis-ha-1584698965-announce-2 ClusterIP 10.101.123.74 <none> 6379/TCP,26379/TCP 64m

可以看到,相应的服务也已经建立好了。

本文标题:使用 Helm 管理 minikube 中应用的安装

文章作者:Morning Star

发布时间:2020年03月20日 - 18:03

最后更新:2021年04月16日 - 15:04

原始链接:https://www.mls-tech.info/microservice/k8s/minikube-use-helm/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。