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

相关推荐

  • 解决crond引发大量sendmail、postdrop进程导致内存使用过大问题

    现象:客户反馈机器卡顿,上面只运行了一个宝塔,疑似中了木马 分析过程:top发现内存使用过高,ps -aux发现大量postdrop、sendmail、crond进程,而postdrop是由sendmail启动的,sendmail是由crond启动的。 crond在执行脚本时会将脚本输出信息以邮件的形式发送给系统用户,所以必然要调用sendmail,而sen…

    2022年12月6日
    80200
  • CentOS 7 磁盘挂载教程

    mount命令是经常会使用到的命令,它用于挂载Linux系统外的文件 进行挂载操作后,用户便可以在挂载目录中使用硬盘资源了。默认情况下Linux系统并不会像Windows系统那样自动的挂载光盘和U盘设备,需要自行完成。 语法 语法格式:mount [参数] [设备] [挂载点] 常用参数 -t 指定文件系统,即挂载类型 -l 显示已加载的文件系统列表 -h …

    2022年6月9日
    1.7K10
  • 通过配置hosts.allow和hosts.deny限制登陆

    我们通常只对管理员开放SSH登录,那我们就可以禁用不必要的IP,而只开放管理员可能使用到的IP段。 /etc/hosts.allow和/etc/hosts.deny两个文件是控制远程访问设置的,通过他可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务。 我们通常只对管理员开放SSH登录,那我们就可以禁用不必要的IP,而只开放管理员可能使用到的I…

    2022年11月15日
    67700
  • VMware 虚拟机里连不上网的五种解决方案

    大家好,又见面了,我是你们的朋友全栈君。 在VMware虚拟机里的虚拟机系统连接不上网络 首先,注意查看适配器选项里的网络连接这两个网络连接是否存在,如果不存在可以重新装一下VM 如果存在,连不上网 解决办法一: 虚拟机设置里,找到“网络适配器”,右边的网络连接选择“NAT 模式”,如果不行的话再 linux系统。还是不行的话接着看第二种解决方案。 解决方法…

    2024年6月28日
    12100
  • Windows 2008实例更新补丁出现“8000FFFFwindows update 遇到未知的错误”报错如何处理?

    问题描述 Windows 2008实例更新补丁时出现“8000FFFFwindows update 遇到未知的错误”报错,如下图所示。 问题原因 由于系统的C盘没有设置Users权限,导致系统无法正常安装更新的补丁。 解决方案 方案一 方案二 如果方案一无法解决问题,请参考以下操作步骤。

    2023年11月20日
    16200

发表回复

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

在线咨询: QQ交谈

邮件:712342017@qq.com

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

关注微信