Kubernetes (K8s) 是一个用于自动化部署、扩展和管理容器化应用程序的开源系统。Heapster 是 Kubernetes 集群监控和性能分析工具,可以提供容器资源使用情况的监控数据。在本篇文章中,我们将介绍如何在 K8s 1.5 版本中部署 Heapster 并查看监控数据。

### 步骤概述

以下是实现 "k8s 1.5 heapster" 的步骤概述:

| 步骤 | 操作 |
| ------ | ----------- |
| 步骤一 | 部署 InfluxDB |
| 步骤二 | 部署 Heapster |
| 步骤三 | 部署 Grafana |
| 步骤四 | 查看监控数据 |

### 具体操作步骤

#### 步骤一:部署 InfluxDB

1. 创建 InfluxDB 的持久化存储卷

```yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: influxdb-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /data/influxdb
```

2. 创建 InfluxDB 的 Deployment 和 Service

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: influxdb
spec:
replicas: 1
template:
metadata:
labels:
app: influxdb
spec:
containers:
- name: influxdb
image: influxdb
ports:
- containerPort: 8086
volumeMounts:
- mountPath: /var/lib/influxdb
name: influxdb-storage

---
apiVersion: v1
kind: Service
metadata:
name: influxdb
spec:
selector:
app: influxdb
ports:
- protocol: TCP
port: 8086
```

#### 步骤二:部署 Heapster

1. 下载 Heapster 插件

```
git clone https://github.com/kubernetes/heapster.git
cd heapster
kubectl create -f deploy/kube-config/influxdb/
```

2. 修改 Heapster deployment 文件

```yaml
spec:
containers:
- name: heapster
image: k8s.gcr.io/heapster:v1.4.0
command:
- /heapster
- --source=kubernetes:https://kubernetes.default
- --sink=influxdb:http://influxdb:8086
```

3. 部署 Heapster

```
kubectl create -f deploy/kube-config/influxdb/
```

#### 步骤三:部署 Grafana

1. 创建 Grafana 的 Deployment 和 Service

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: grafana
spec:
replicas: 1
template:
metadata:
labels:
app: grafana
spec:
containers:
- name: grafana
image: grafana/grafana
ports:
- containerPort: 3000

---
apiVersion: v1
kind: Service
metadata:
name: grafana
spec:
selector:
app: grafana
ports:
- protocol: TCP
port: 3000
```

2. 配置 Grafana 数据源为 InfluxDB

打开 Grafana 界面,添加 InfluxDB 数据源,并配置正确的连接信息。

#### 步骤四:查看监控数据

1. 登录 Grafana 界面

通过浏览器访问 Grafana 服务的地址,并使用账号密码登录。

2. 添加监控面板

在 Grafana 中创建监控面板,选择 InfluxDB 数据源,可以选择 Heapster 提供的各种监控数据,如 CPU 使用率、内存使用情况等。

通过以上步骤,我们成功部署了 Heapster 插件,将 Kubernetes 集群中的监控数据存储在 InfluxDB 中,并通过 Grafana 可视化展示这些数据,实现了 K8s 1.5 版本中的 Heapster 监控功能。希望这篇文章对你有所帮助!