K8S集群搭建高可用prometheus+grafana

使用k3s来搭建测试环境。

为什么使用k3s

K3s 是一个轻量级的、完全兼容的 Kubernetes 发行版本。非常适合测试。

K3s将所有 Kubernetes 控制平面组件都封装在单个二进制文件和进程中,文件大小<100M,占用资源更小,且包含了kubernetes运行所需要的部分外部依赖和本地存储提供程序。

K3s提供了离线安装包,安装起来非常方便,可以避免安装过程中遇到各种网络资源访问问题。

安装k3s

1.准备工作

systemctl disable firewalld --now

2.使用官方脚本在线安装集群

#master
curl -sfL https://get.k3s.io | sh -
#在master节点上获取集群token
cat /var/lib/rancher/k3s/server/node-token

#在agent节点使用token部署工作节点
curl -sfL https://get.k3s.io | K3S_URL=https://master:6443 K3S_TOKEN=XXX sh -

3.在master节点查看集群状态

root@master:~# kubectl get nodes
NAME     STATUS   ROLES                  AGE   VERSION
master   Ready    control-plane,master   14d   v1.25.3+k3s1
agent    Ready    <none>                 14d   v1.25.3+k3s1

部署prometheus+grafana

使用github的kube-prometheus项目快速部署

git clone https://github.com/prometheus-operator/kube-prometheus.git -p release-0.11

cd kube-promethues

kubectl apply --server-side -f manifests/setup

kubectl wait \
	--for condition=Established \
	--all CustomResourceDefinition \
	--namespace=monitoring
kubectl apply -f manifests/

此时,k3s集群开始拉去镜像,并自动部署高可用prometheus集群。

#查看prometheus集群的构建状态
kubectl get all -n monitoring
kubectl get pod -n monitoring

#如果发现有不能拉取的镜像,或者构建失败的pod,通过describe查看具体信息。
kubectl describe pod kube-state-metrics-XXX -n monitoring
#找到对应的镜像名,到dockerhub上找相同的拉取。

最后,通过修改service.yml的方式,使集群的端口以NodePort的方式暴露出来。

K8S集群搭建高可用prometheus+grafana
K8S集群搭建高可用prometheus+grafana

修改完成后,一定要重新部署service,使修改生效

kubectl apply -f grafana-service.yaml -n monitoring

查看NodePort并访问

kubectl get svc -n monitoring
K8S集群搭建高可用prometheus+grafana

通过集群里任意IP:PORT进行web页面的访问

K8S集群搭建高可用prometheus+grafana

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/6185

(0)
李逍遥的头像李逍遥
上一篇 2022年11月21日 下午4:43
下一篇 2022年11月22日 下午5:30

相关推荐

  • Windows下编译部署PHP

    1. 下载并解压PHP 下载地址:PHP:Download,找到Windows系统的安装包 2. 修改php配置文件 复制php.ini-development,改名为php.ini 修改扩展文件的路径,并取消注释 extension_dir=”php解压地址/ext” 修改需要加载的扩展文件,即将相应dll语句前的分号”;”删除 修改时区 搜索date.t…

    2022年6月8日
    1.6K00
  • zabbix用户密码忘记并找回

    解决方案: 1、登陆zabbix服务器,连接到mysql数据库 [root@localhost ~]# mysql -uroot -p     // -u 后面加用户名,-p 回车,输入数据库密码Enter password:   2、进入mysql数据库以后查询users表 MariaDB [(none)]> …

    2023年2月25日
    2.4K00
  • PowerShell关于磁盘IO的信息获取

    理论上的磁盘I/O(输入/输出)最大值通常与磁盘的规格、类型和制造商有关,而不是通过计数器统计得出的当前值。在PowerShell中,获取这种理论上的最大I/O值可能会比较困难,因为它不是一个直接提供的属性。但您可以尝试通过查询硬件规格或制造商的信息来获取一些估算值。 以下是一种基本的方法,它使用Get-PhysicalDisk cmdlet获取物理磁盘的信…

    2023年12月12日
    1.4K00
  • 在 Linux 上保护 SSH 服务器连接的 8 种方法!

    SSH 是一种广泛使用的协议,用于安全地访问 Linux 服务器。大多数用户使用默认设置的 SSH 连接来连接到远程服务器。但是,不安全的默认配置也会带来各种安全风险。 具有开放 SSH 访问权限的服务器的 root 帐户可能存在风险。尤其是如果你使用的是公共 IP 地址,则破解 root 密码要容易得多。因此,有必要了解 SSH 安全性。 这是在 Linu…

    2023年4月24日
    92300
  • /etc/security/limits.conf配置文件详解

    /etc/security/limits.conf 是一个用于配置用户或用户组资源限制的配置文件。这个文件通常用于设置系统资源的软限制和硬限制,以及一些特殊权限。 一. limits.conf常见配置项详解 下面是一些 /etc/security/limits.conf 文件中可能包含的常见配置项: 描述 第一列表示用户和组(@开头),这里的 * 代表所有用…

    2024年5月14日
    1.1K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信