访问容器中部署的 Prometheus

最近在公司的类生产环境的容器集群中部署了Prometheus+Grafana。

为了登录到容器内部去看看Prometheus的配置文件是怎么写的,采用了如下最常用的方法:

kubectl get po -n nwnwnwnw | grep prometheus

上面命令中的 ‘nwnwnwnw’ 是部署prometheus的命名空间。我们用的是 kube-system。

通过此命令可以获取到 prometheus的pod名,例如是:prometheus-xxxxxxx-xxxx

通过如下命令,可以进入到容器内部:

kubectl exec -it -n nwnwnwnw prometheus-xxxxxxx-xxxx  /bin/bash

但系统报错:

rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory"

经过分析,发现命令中不能用 /bin/bash,而要用  /bin/sh

改用如下命令就OK了:

kubectl exec -it -n nwnwnwnw prometheus-xxxxxxx-xxxx  /bin/sh

结果如下:

使用Dockerfile部署Prometheus是一种常见的做法,它允许你创建一个标准化的容器镜像,包含所有所需的服务、配置和依赖项。以下是一个简单的Dockerfile示例,用于部署Prometheus: ```Dockerfile # 使用官方的Prometheus镜像作为基础 FROM prom/prometheus:v2.34.1 # 设置工作目录 WORKDIR /prometheus # 复制Prometheus配置文件 COPY prometheus.yml config/ # 设置环境变量 ENV.prometheus_config_path=config/prometheus.yml # 拷贝启动脚本(如果有的话),以便自定义启动参数 COPY start_prometheus.sh / # 如果有特定的日志路径,可以添加这里 # VOLUME /logs # 设置Prometheus监听的端口 EXPOSE 9090 # 运行Prometheus CMD ["/start_prometheus.sh"] 或 CMD ["./prometheus", "-config.file=$prometheus_config_path"] ``` 在这个Dockerfile: - `FROM prom/prometheus:v2.34.1` 选择了Prometheus的最新稳定版本。 - `COPY` 命令将本地的`prometheus.yml` 和`start_prometheus.sh`(如果有)复制到镜像的相应位置。 - `ENV` 设置了一个环境变量,指定Prometheus配置文件的位置。 - `EXPOSE` 映射Prometheus监听的9090端口,让容器外也能访问。 - `CMD` 指定了如何启动Prometheus,可以根据需要执行定制的启动脚本或直接启动Prometheus。 要使用此Dockerfile构建镜像,你需要在一个名为`Dockerfile`的文件放置这段代码,然后在终端导航到该文件所在的目录,运行 `docker build -t your_image_name .`。接下来,你可以使用 `docker run -p <host_port>:9090 your_image_name` 来运行一个新的Prometheus实例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值