当前位置: 首页 > news >正文

k8s学习笔记——安装istio的仪表盘之prometheus安装

接上一篇,继续安装istio的dashboard。

先到istio-1.22.0/samples/addons目录下,把yaml文件中的镜像仓库地址修改了,修改地址参考我之前写的CSDN里的镜像对照表。不然直接执行kubectl apply -f samples/addons这个命令后,依据会出现下拉不下来镜像的问题。

可悲的是,按照对照表修改完后,依旧会有下拉不下来的镜像,比如prometheus,找了国内很多仓库地址能没能下拉成功,而且之前从github下载源程序本地编译也没成功!!于是决定到prometheus官网下载二进制文件,自建个镜像。下面是具体操作步骤。

到官网https://prometheus.io/download/下载二进制文件,我这里下载的是prometheus-2.51.1.linux-amd64.tar.gz版本,解压,进入目录创建Dockerfile文件

#Dockerfile文件内容如下:FROM docker.m.daocloud.io/library/ubuntu:latestUSER root
# 将 Prometheus 二进制文件复制到镜像中
RUN mkdir -p /usr/share/prometheus/console_libraries
RUN mkdir -p /usr/share/prometheus/consoles
RUN mkdir -p /prometheus
ADD prometheus /bin/prometheus
ADD promtool /bin/promtool
ADD prometheus.yml /etc/prometheus/prometheus.yml
ADD console_libraries/ /usr/share/prometheus/console_libraries/
ADD consoles/ /usr/share/prometheus/consoles/
ADD LICENSE /LICENSE
ADD NOTICE /NOTICE# 创建 nobody 用户组
RUN groupadd -r nobody
# 创建 nobody 用户
#RUN useradd -r -g nobody nobody# 设置工作目录
WORKDIR /prometheus
RUN ln -s /usr/share/prometheus/console_libraries /usr/share/prometheus/consoles/ /etc/prometheus/ 
RUN chown -R nobody:nobody /etc/prometheus
RUN chown -R nobody:nobody /prometheus
# 暴露 Prometheus 默认端口
USER nobody
EXPOSE 9090
VOLUME [ "/prometheus" ]# 运行 Prometheus
ENTRYPOINT [ "/bin/prometheus" ]
CMD [ "--config.file=/etc/prometheus/prometheus.yml", "--storage.tsdb.path=/prometheus", "--web.console.libraries=/usr/share/prometheus/console_libraries", "--web.console.templates=/usr/share/prometheus/consoles" ]

在创建Dockerfile文件时,有一点要注意就是ENIRYPOINT和CMD还有yaml文件中的args里的命令或参数设置。这里的执行顺序或规则是

1. 如果容器镜像中指定了 `ENTRYPOINT`,那么 `args` 将会作为 `ENTRYPOINT` 的参数。

2. 如果容器镜像中指定了 `CMD`,那么 `args` 将会作为 `CMD` 的参数。

3. 如果 `args` 和 `CMD` 都存在,那么 `args` 将会覆盖 `CMD` 中的参数。

所以prometheus命令一定要写在ENIRYPOINT而不是CMD里不然执行 kubectl apply -f istio-1.22.0/samples/addons/prometheus.yaml时会报错,因为在yaml中args里只写了命令的参数而没有命令,在部署时,yaml里的参数直接把dockerfile的cmd里的命令替换,如果没有ENIRYPOINT里的命令,容器中就执行的没有命令的参数,所以会报错,容器启动不起来。

然后执行sudo nerdctl build -t core.harbor.shell.com:443/istio/prometheus:v2.51.1

上传至私有仓库 sudo nerdctl push core.harbor.shell.com:443/istio/prometheus:v2.51.1

测试镜像有没有问题

sudo nerdctl run --name prometheus-test -it --rm -p 8090:9090 --network=host core.harbor.shell.com:443/istio/prometheus:v2.51.1

在浏览器输入当前节点ip:8090看是否可以打开prometheus的网页

没问题就到istio-1.22.0/samples/addons目录下执行kubectl apply -f prometheus.yaml

看到如下就表明仪表盘安装成功了

kubectl get pod -n istio-system
NAME                                   READY   STATUS    RESTARTS   AGE
grafana-66ffbc9664-fjs9s               1/1     Running   0          2d4h
istio-ingressgateway-94974fc7f-cxjwz   1/1     Running   0          5d5h
istiod-54785969-6rfzh                  1/1     Running   0          5d5h
jaeger-856f88d5d7-fv2zc                1/1     Running   0          2d4h
kiali-d9dfd8fb7-rztq2                  1/1     Running   0          2d4h
loki-0                                 0/1     Pending   0          2d4h
prometheus-7fc648b979-hmnp7            2/2     Running   0          4h45m//这里的日志收集的loki-0处于pending状态,是因为其pvc没有挂载,并不会影响仪表盘的正常使用。

http://www.lryc.cn/news/406222.html

相关文章:

  • 四、GD32 MCU 常见外设介绍 (7) 7.I2C 模块介绍
  • Apollo 配置中心的部署与使用经验
  • Perl中的设计模式革新:命令模式的实现与应用
  • Java8-求两个集合取交集
  • 爬虫学习4:爬取王者荣耀技能信息
  • 在Ubuntu 14.04上安装和使用Memcache的方法
  • PCDN技术如何降低运营成本?
  • 服务器数据恢复—V7000存储硬盘故障脱机的数据恢复案例
  • BSV区块链在人工智能时代的数字化转型中的角色
  • android audio 相机按键音:(二)加载与修改
  • Linux grep技巧 提取log中的json数据
  • HDShredder 7 企业版案例分享: 依照国际权威标准,安全清除企业数据
  • centos系统使用mysqldump数据备份与恢复
  • 【element ui】input输入控件绑定粘贴事件,从 Excel 复制的数据粘贴到输入框(el-input)时自动转换为逗号分隔的数据
  • Chapter18 基于物理的渲染——Shader入门精要学习
  • DolphinScheduler学习
  • 我用Tauri开发的待办效率工具开源了!
  • 【黑科技】:Laravel 项目性能提升 20 倍
  • User Allocation In MEC: A DRL Approach 论文笔记
  • leetcode 69. x 的平方根
  • 基于词级ngram的词袋模型对twitter数据进行情感分析
  • Linux-Centos-改密码(单用户登陆)
  • java实现OCR图片识别,RapidOcr开源免费
  • PCB工艺边设计准则
  • CTF-NSSCTF题单[GKCTF2020]
  • redis的分片集群(仅供自己参考)
  • 自动驾驶-机器人-slam-定位面经和面试知识系列01之常考公式推导(01)
  • netty入门-5 ServerBootstrap与Bootstarp
  • JavaEE - Spring Boot 简介
  • SwiftUI革新:Xcode UI开发的新纪元