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 环境依赖关系与数据流

下图展示了各组件在压测巡检脚本中的协作关系:

压测巡检脚本环境依赖关系图 Python3 运行引擎 kubectl Helm prometheus-client Kubernetes API Prometheus Stack Pushgateway 说明:Python3通过subprocess调用kubectl/Helm,通过prometheus-client库直接推送指标到Pushgateway

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文本格式指标