2. 环境准备:Python3、kubectl、helm、prometheus-client库的安装与验证
在进行Kubernetes容量压测与巡检脚本开发之前,必须建立标准化的本地运行环境。本章将指导你完成Python3运行时、kubectl命令行工具、Helm包管理器以及prometheus-client Python库的安装与功能验证。所有操作均以Linux/macOS为默认平台,Windows用户建议使用WSL2。
2.1 环境依赖总览
下表列出了压测巡检脚本所需的全部基础组件及其版本要求:
| 组件 | 最低版本 | 用途 | 验证命令 |
|---|---|---|---|
| Python3 | 3.8+ | 脚本运行引擎 | python3 --version |
| kubectl | 1.24+ | Kubernetes集群交互 | kubectl version --client |
| Helm | 3.10+ | Chart部署与资源编排 | helm version |
| prometheus-client | 0.16+ | Prometheus指标采集与推送 | pip show prometheus-client |
版本兼容性提示: 本课程所有脚本均基于Python 3.8+语法特性开发。若你的系统默认Python版本低于3.8,建议使用
pyenv或conda管理多版本Python环境,避免影响系统自带Python。
2.2 Python3 安装与验证
Python3是脚本的核心运行环境。以下为各平台的安装方式:
- Ubuntu/Debian:
sudo apt update && sudo apt install python3 python3-pip python3-venv -y - CentOS/RHEL 8+:
sudo dnf install python3 python3-pip -y - macOS:
brew install python@3.11 - Windows (WSL2): 在WSL2 Ubuntu中执行上述Ubuntu命令
安装完成后,执行以下命令验证:
python3 --version
# 预期输出:Python 3.8.x 或更高版本
pip3 --version
# 预期输出:pip 21.x 或更高版本
最佳实践: 建议为每个项目创建独立的Python虚拟环境,避免依赖冲突。创建命令:
python3 -m venv k8s-capacity-env,激活后使用pip install安装依赖。
2.3 kubectl 安装与集群连通验证
kubectl是操作Kubernetes集群的CLI工具。安装方式如下:
# Linux (amd64)
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
# macOS (Intel)
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
验证kubectl安装并检查集群连通性:
kubectl version --client
# 预期输出:Client Version: v1.28.x
kubectl cluster-info
# 预期输出:显示Kubernetes master和CoreDNS的URL
常见问题: 若
kubectl cluster-info返回连接拒绝错误,请检查~/.kube/config文件是否存在且包含正确的集群凭据。可使用kubectl config view查看当前配置。
2.4 Helm 安装与仓库配置
Helm用于部署Prometheus Stack等压测监控组件。安装步骤:
# 使用官方安装脚本(Linux/macOS)
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
# 验证安装
helm version
# 预期输出:version.BuildInfo{Version:"v3.14.x"}
添加Prometheus社区仓库并更新索引:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo add stable https://charts.helm.sh/stable
helm repo update
2.5 prometheus-client 库安装与验证
prometheus-client是Python与Prometheus交互的核心库,用于生成和推送压测指标。安装命令:
# 激活虚拟环境(如已创建)
source k8s-capacity-env/bin/activate
# 安装prometheus-client
pip install prometheus-client
# 验证安装
pip show prometheus-client
# 预期输出:Name: prometheus-client, Version: 0.19.x
编写一个简单的验证脚本,确认库可以正常导入并创建指标:
# test_prometheus_client.py
from prometheus_client import Counter, Gauge, Histogram, generate_latest
# 创建示例指标
requests_total = Counter('http_requests_total', 'Total HTTP requests')
in_flight = Gauge('http_in_flight_requests', 'Current in-flight requests')
request_duration = Histogram('http_request_duration_seconds', 'Request duration')
# 模拟指标更新
requests_total.inc()
in_flight.set(5)
request_duration.observe(0.35)
# 输出Prometheus文本格式
print(generate_latest().decode('utf-8'))
执行验证:
python3 test_prometheus_client.py
# 预期输出包含以下行:
# HELP http_requests_total Total HTTP requests
# TYPE http_requests_total counter
# http_requests_total 1.0
# HELP http_in_flight_requests Current in-flight requests
# TYPE http_in_flight_requests gauge
# http_in_flight_requests 5.0
2.6 环境依赖关系与数据流
下图展示了各组件在压测巡检脚本中的协作关系:
2.7 环境验证清单
完成所有安装后,请逐项确认以下检查点:
| 检查项 | 验证方法 | 通过标准 |
|---|---|---|
| Python3版本 | python3 --version |
≥ 3.8.0 |
| pip可用性 | pip3 --version |
正常显示版本号 |
| kubectl连通性 | kubectl cluster-info |
返回集群Master URL |
| Helm版本 | helm version |
≥ v3.10.0 |
| Helm仓库 | helm repo list |
包含prometheus-community |
| prometheus-client | pip show prometheus-client |
≥ 0.16.0 |
| 指标生成测试 | 运行test_prometheus_client.py | 输出Prometheus文本格式指标 |