[Kubernetes]7. K8s包管理工具Helm、使用Helm部署mongodb集群(主从数据库集群)

上一节讲解了[Kubernetes]6. k8s Pod配置管理ConfigMap & Secret以及传递环境变量的使用,k8s的命名空间以及使用kubens管理命名空间的使用,这里来介绍一下Helm的使用

一.Helm相关介绍 

1.介绍

kubernetes 系统上部署容器化应用时需要事 先手动编写资源配置清单文件 定义资源对象 ,而且其 每一次的配置定义基本上都是硬编码 ,基本上 无法实现复用 .对于 较大规模的应用场景 ,应用程序的 配置,分发,版本控制,查找,回滚 甚至是查看都将是用户的噩梦,而Helm可大大简化应用管理的难度, Helm 类似 npm,pip,docker hub , 可以理解为是一个软件库, 它是Kubernetes的包管理器, 可以方便快速的为我们的集群安装一些第三方软件。
        比如要部署mongodb,部署的时候 首先要创建 PVC,PV以及StorageClass,创建好后还要定义mongodb对应的 StatefulSet,StatefulSet定义好后,还需要在配置里面 关联刚才的PVC,PV,关联好后,还需要 部署mongodb,这还只是搭建mongodb数据库,如果要搭建mongodb集群的话,还更加麻烦,如果 使用Helm就 可以非常方便的就搭建出来 MongoDB / MySQL 副本集群 ,只需几个命令就可以 创建mongodb数据库 ,或者 mongodb主从数据库的集群, YAML 文件别人都已经写好了,可以直接使用, 官网接下来看看如何在k8s集群中使用Helm,下面 官网 可以查看如何安装Helm,而 应用中心 可以搜索需要的软件(包)

[Kubernetes]7. K8s包管理工具Helm、使用Helm部署mongodb集群(主从数据库集群)_第1张图片 [Kubernetes]7. K8s包管理工具Helm、使用Helm部署mongodb集群(主从数据库集群)_第2张图片

[Kubernetes]7. K8s包管理工具Helm、使用Helm部署mongodb集群(主从数据库集群)_第3张图片

2.安装 Helm

安装 文档  

(1).脚本安装 

Helm现在有个安装脚本可以自动拉取最新的Helm版本并在 本地安装,可以获取这个脚本并在本地执行,命令如下:

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh

如果想直接执行安装,运行curl

https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

 (2).二进制版本安装(推荐)

1).下载
https://github.com/helm/helm/releases
https://get.helm.sh/helm-v3.11.1-linux-amd64.tar.gz
2).减压
tar xzvf helm-v3.11.1-linux-amd64.tar.gz
3).配置到全局
mv linux-amd64/helm /usr/local/bin/

具体如下:

[Kubernetes]7. K8s包管理工具Helm、使用Helm部署mongodb集群(主从数据库集群)_第4张图片

4).配置.kube/config权限  

当使用helm时,如果出现示:kubernetes configuration file is group-readabl

WARNING: Kubernetes configuration file is group-readable. This is insecure.
Location: /root/.kube/config
WARNING: Kubernetes configuration file is world-readable. This is insecure.
Location: /root/.kube/config

则使用下面命令解决,这样就可以正常使用helm了 

chmod -R 600 ~/.kube/config

下面就来看看搭建mongodb集群

二.Helm 搭建mongodb集群 

1.安装mongodb 不使用persistence(无本地存储)

无本地存储:当重启的时候,数据库消失

(1).打开官网的应用中心

[Kubernetes]7. K8s包管理工具Helm、使用Helm部署mongodb集群(主从数据库集群)_第5张图片

(2).安装 

[Kubernetes]7. K8s包管理工具Helm、使用Helm部署mongodb集群(主从数据库集群)_第6张图片

#添加repo仓库
#bitnami 是自定义的
helm repo add bitnami https://charts.bitnami.com/bitnami

#安装:bitnami和上面保存一致
#mongo:是自定义的
#--set 可以跟参数
#persistence.enabled 配置应用的持久化
helm install my-mongo bitnami/mongodb --set persistence.enabled=false,auth.rootPassword="mongopass"

[Kubernetes]7. K8s包管理工具Helm、使用Helm部署mongodb集群(主从数据库集群)_第7张图片

具体命令如下: 

# 安装
helm repo add bitnami https://charts.bitnami.com/bitnami

#--set 后可设置相关属性,比如用户名,密码等,这个可以查看helm mongodb的帮助文档
helm install my-mongo bitnami/mongodb --set persistence.enabled=false,auth.rootPassword="mongopass"

[Kubernetes]7. K8s包管理工具Helm、使用Helm部署mongodb集群(主从数据库集群)_第8张图片

(3).设置环境变量 

 (4).开启一个客户端进行测试 

1).开启临时客户端

[Kubernetes]7. K8s包管理工具Helm、使用Helm部署mongodb集群(主从数据库集群)_第9张图片

 2).连接数据库[Kubernetes]7. K8s包管理工具Helm、使用Helm部署mongodb集群(主从数据库集群)_第10张图片

[Kubernetes]7. K8s包管理工具Helm、使用Helm部署mongodb集群(主从数据库集群)_第11张图片

 具体命令如下:

[root@VM-0-3-tencentos ~]# helm install my-mongo bitnami/mongodb --set persistence.enabled=false,auth.rootPassword="mongopass"
WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /root/.kube/config
WARNING: Kubernetes configuration file is world-readable. This is insecure. Location: /root/.kube/config
NAME: my-mongo
LAST DEPLOYED: Tue Jan  9 22:19:48 2024
NAMESPA

你可能感兴趣的:(Kubernetes,数据库,kubernetes,mongodb,k8s安装mongodb集群,k8s使用Helm)