k8s——Kubernetes部署HELM & HELM部署Prometheus

本文介绍了Kubernetes的应用包管理工具HELM,包括其基本概念、安装步骤及如何使用HELM部署Prometheus监控系统。详细讲解了HELM的安装配置过程,并演示了如何利用HELM进行Prometheus的部署与验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

kubernetes部署HELM

一:HELM简介(3版本)

1.概述
微服务和容器化给复杂应用部署与管理带来了极大的挑战。Helm是目前Kubernetes服务编排领域的唯一开源子项目,作为Kubernetes应用的一个包管理工具,可理解为Kubernetes的apt-get / yum,由Deis 公司发起,该公司已经被微软收购。Helm通过软件打包的形式,支持发布的版本管理和控制,很大程度上简化了Kubernetes应用部署和管理的复杂性。

2.作用
Helm 为团队提供了在 Kubernetes 内部创建、安装和管理应用程序时需要协作的工具。

查找要安装和使用的预打包软件(Chart)
轻松创建和托管自己的软件包
将软件包安装到任何 K8s 集群中
查询集群以查看已安装和正在运行的程序包
更新、删除、回滚或查看已安装软件包的历史记录

3.基本概念

-HELM
Helm 是一个命令行下的客户端工具。主要用于 Kubernetes 应用程序 Chart 的创建、打包、发布以及创建和管理本地和远程的 Chart 仓库。

-Chart
Helm 的软件包,采用 TAR 格式。类似于 APT 的 DEB 包或者 YUM 的 RPM 包,其包含了一组定义 Kubernetes 资源相关的 YAML 文件。

-Repoistory
Helm 的软件仓库,Repository 本质上是一个 Web 服务器,该服务器保存了一系列的 Chart 软件包以供用户下载,并且提供了一个该 Repository 的 Chart 包的清单文件以供查询。Helm 可以同时管理多个不同的 Repository。

-Release
使用 helm install 命令在 Kubernetes 集群中部署的 Chart 称为 Release。可以理解为 Helm 使用 Chart 包部署的一个应用实例。

5.部署
安装helm(二进制安装)

[root@master ~]# wget https://get.helm.sh/helm-v3.4.0-rc.1-linux-amd64.tar.gz
[root@master ~]# tar xf helm-v3.4.0-rc.1-linux-amd64.tar.gz
[root@master ~]# mv linux-amd64/helm /usr/local/bin/
验证
[root@master ~]# helm help
The Kubernetes package manager
Common actions for Helm:
- helm search: search for charts
- helm pull: download a chart to your local directory to view
- helm install: upload the chart to Kubernetes

-添加常用仓库

 先移除原先的仓库
[root@master ~]# helm repo remove stable
添加新的仓库地址
[root@master ~]# helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
更新仓库
[root@master ~]# helm repo update
查看在存储库中可用的所有 Helm charts
[root@master ~]# helm search repo
NAME CHART VERSION APP VERSION DESCRIPTION
aliyun/acs-engine-autoscaler 2.1.3 2.1.1 Scales worker nodes within agent pools
aliyun/aerospike 0.1.7 v3.14.1.2 A Helm chart for Aerospike in Kubernetes
aliyun/anchore-engine 0.1.3 0.1.6 Anchore container analysis and policy evaluatio...
aliyun/artifactory 7.0.3 5.8.4 Universal Repository Manager supporting all maj...
列出stable仓库可以安装的charts
[root@master ~]# helm search repo state
NAME CHART VERSION APP VERSION DESCRIPTION
aliyun/kube-state-metrics 0.5.3 1.1.0 Install kube-state-metrics to generate and expo...
stable/kube-state-metrics 0.5.3 1.1.0 Install kube-state-metrics to generate and expo...
aliyun/keel 0.2.1 0.4.2 Open source, tool for automating Kubernetes dep...
stable/keel 0.2.1 0.4.2 Open source, tool for automating Kubernetes dep...

6.部署helm ui界面

下载代码:

[root@master ~]# git clone https://github.com/rongfengliang/monocular-docker-compose.git

构建镜像:

 [root@master monocular-docker-compose]# docker-compose build

PS. 如果接下报错,登录docker,并添加镜像加速器

报错内容:

Pulling api (bitnami/monocular-api:latest)...
ERROR: pull access denied for bitnami/monocular-api, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

解决方案:

[root@master ~]# tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://fovgvvbo.mirror.aliyuncs.com"]}EOF
[root@master monocular-docker-compose]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: 17343051369
Password: 

启动:

[root@master monocular-docker-compose]# docker-compose up -d

查看:

[root@master monocular-docker-compose]# docker-compose ps
Name Command State Ports
monoculardockercompose_api_1 monocular Up 0.0.0.0:8081->8081/tcp
monoculardockercompose_mongodb_1 /app-entrypoint.sh /run.sh Up 0.0.0.0:27017->27017/tcp
monoculardockercompose_redis_1 docker-entrypoint.sh redis ... Up 0.0.0.0:6379->6379/tcp
monoculardockercompose_ui_1 /usr/local/openresty/bin/o ... Up 443/tcp, 0.0.0.0:80->80/tcp

浏览器访问:
在这里插入图片描述

7.helm仓库

换成国内阿里镜像仓库
[root@master pro]# helm repo add ali-stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
[root@master pro]# helm repo add ali-incubator https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/
[root@master pro]# helm repo add stable http://mirror.azure.cn/kubernetes/charts
[root@master pro]# helm repo add apphub https://apphub.aliyuncs.com/
[root@master pro]# helm repo update

二:使用HELM部署prometheus

1.下载prometheus的包

[root@master pro]# helm pull stable/prometheus-operator
[root@master pro]# tar xf prometheus-operator-9.3.2.tgz

2.安装prometheus

[root@master prometheus-operator-9.3.2]# helm install pro .

3.检验运行状态

[root@master ~]# kubectl get svc | grep pro
pro-grafana NodePort 10.96.180.192 <none> 80:30009/TCP 65m
pro-kube-state-metrics ClusterIP 10.110.208.205 <none> 8080/TCP 65m
pro-prometheus-node-exporter ClusterIP 10.109.238.134 <none> 9100/TCP 65m
pro-prometheus-operator-alertmanager ClusterIP 10.103.199.173 <none> 9093/TCP 65m
pro-prometheus-operator-operator ClusterIP 10.99.246.46 <none> 8080/TCP,443/TCP 65m
pro-prometheus-operator-prometheus ClusterIP 10.99.196.146 <none> 9090/TCP 65m
prometheus-operated ClusterIP None <none> 9090/TCP 65m
[root@master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
alertmanager-pro-prometheus-operator-alertmanager-0 2/2 Running 0 64m
pro-grafana-696966b875-spvsd 2/2 Running 0 24m
pro-kube-state-metrics-b994549d8-w54m9 1/1 Running 0 64m
pro-prometheus-node-exporter-d9p6m 1/1 Running 0 64m
pro-prometheus-node-exporter-dsblh 1/1 Running 0 64m
pro-prometheus-node-exporter-wvtmz 1/1 Running 0 64m
pro-prometheus-operator-operator-554f578c86-9xxcv 2/2 Running 0 64m
prometheus-pro-prometheus-operator-prometheus-0 3/3 Running 1 64m

注意:
默认情况下,安装好的prometheus所使用的暴露外网的方式是ClusterIP
修改在kubernetes的web界面找到对应的pod,找到对应的sevices,修改为NodePort

在这里插入图片描述

4.浏览器访问
http://ip:30009
在这里插入图片描述

5.获取用户名和密码登录

[root@master ~]# kubectl get secrets | grep grafana
pro-grafana Opaque 3 88m
pro-grafana-test-token-cgj7p kubernetes.io/service-account-token 3 88m
pro-grafana-token-cw6r9 kubernetes.io/service-account-token 3 88m
[root@master ~]# kubectl get secrets pro-grafana -o yaml | head -5
apiVersion: v1
data:
admin-password: cHJvbS1vcGVyYXRvcg==
admin-user: YWRtaW4=
ldap-toml: ""
[root@master ~]# echo -n "YWRtaW4=" | base64 -d
admin
[root@master ~]# echo -n "cHJvbS1vcGVyYXRvcg==" | base64 -d
prom-operator

在这里插入图片描述

### 如何使用 HelmKubernetes部署 Prometheus 为了在 Kubernetes (k8s) 上通过 Helm 部署 Prometheus,可以利用 `prometheus-operator` 图表实现快速启动和运行集群监控环境。以下是关于此过程的关键细节: #### 使用 prometheus-operator Helm 图表 Prometheus Operator 是一种用于管理 Prometheus 实例及其相关组件的工具。它可以通过 Helm 轻松安装并配置到 Kubernetes 集群中[^1]。 #### 安装步骤概述 1. **添加 Helm 存储库** 如果尚未添加 Prometheus 社区的 Helm 存储库,则需要先将其添加至本地 Helm 环境。 ```bash helm repo add prometheus-community https://prometheus-community.github.io/helm-charts ``` 2. **更新 Helm 仓库缓存** 更新本地存储库索引以获取最新版本的信息。 ```bash helm repo update ``` 3. **安装 Prometheus Operator** 执行以下命令即可完成 Prometheus 和其关联组件的基础安装。 ```bash helm install my-release prometheus-community/kube-prometheus-stack --namespace monitoring --create-namespace ``` 此处创建了一个名为 `monitoring` 的命名空间,并将所有资源放置其中。 4. **验证安装成功与否** 检查 Pods 是否正常运行以及服务是否可用。 ```bash kubectl get pods -n monitoring kubectl get svc -n monitoring ``` #### 自定义配置选项 如果默认设置不满足特定需求,可通过修改 values 文件来自定义行为。例如调整 scrape interval 或者启用额外的功能模块如 Alertmanager、Grafana 等[^2]。 ```yaml # Example of customizing alertmanager configuration via values.yaml alertmanager: enabled: true serverFiles: prometheus.yml: global: evaluation_interval: 1m ``` 随后重新应用更改后的参数集: ```bash helm upgrade my-release prometheus-community/kube-prometheus-stack \ --values=my-values.yaml \ --namespace=monitoring ``` #### 注意事项 尽管可以直接拉取镜像标签为 &#39;latest&#39; 来获得最新的功能改进,但在生产环境中建议固定具体的版本号以便于维护稳定性[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值