使用Prometheus和Thanos进行高可用性Kubernetes监控

背景介绍
对Prometheus高可用性的需求提升
现在很明显,Kubernetes是容器编排方面的老大,但对于k8s的监控是任何基础架构的重要方面,我们应该确保监控设置具有高可用性和高度可扩展性,以适应不断增长的基础架构的需求,尤其是在使用Kubernetes的情况下。

因此,今天,我们将部署群集化的Prometheus设置,该设置不仅可以抵抗节点故障,而且还可以确保适当的数据归档以备将来参考。我们的设置也具有很大的可扩展性,以至于我们可以在同一监控范围内跨越多个Kubernetes集群。

目前现状

大多数Prometheus部署都使用持久性Pod,而Prometheu[……]

继续阅读

如何配置Elasticsearch堆大小以更改最大内存大小

对于ElasticSearch,这是非常重要的设置。为了正确设置此设置,必须对系统进行良好的监视。简而言之,我们使用此配置来确定Elasticsearch在开始时分配的内存量以及最大内存使用量。

在配置堆大小之前,我将讨论堆内存概念以正确地监视堆大小。 Java应用程序使用“堆栈”和“堆”方法将数据保存到内存中。

在堆栈类型中,操作系统管理是否将数据存储或删除到内存中。

在堆类型中,应用程序管理内存使用和清理。在Java中,对象存储在堆内存中,并且由于有了称为垃圾收集器的结构,因此可以提供堆内存管理。

什么是垃圾收集器?

在Java中,内存管理是通过JVM和其中包[……]

继续阅读

如何在Django Framework中设置特定环境的配置?

对于初学者,每当键入python manage.py runserver时,它将从settings.py中获取所有配置。 settings.py具有所有配置,例如已安装的应用程序,使用的中间件,模板,语言,时区,静态文件夹的位置等。通常,我们刚开始不必太多修改settings.py文件。因为Django框架提供了在本地环境中运行应用程序的样板或基本配置。

 

为什么我们需要特定于环境的设置?

我们settings.py中有某些配置,例如DEBUG,STATIC_URL,DATABASES,SECRET_KEY,ALLOWED_HOSTS等。这些设置实际上是在部署到生[……]

继续阅读

使用Prometheus进行Kubernetes监控

监控是运维中至关重要的工作,对于像Kubernetes这样的当下风行的技术来说,强大的监控设置可以充分了解整个集群的机器状态,包括主机的基础性能,Pod资源利用率等。

今天,我们将在不到5分钟的时间内部署基于生产级Prometheus的监控系统。

前期准备条件:

1、运行具有至少6个内核和8 GB可用内存的Kubernetes集群。在本教程中,我将使用6个Node节点
2、Kubernetes部署和服务的工作知识。
步骤:

1、具有持久卷的Prometheus服务器。这将是我们的指标存储(TSDB)。
2、Alertmanager服务器,它将触发对Slack /[……]

继续阅读

在没有模拟的情况下在Django中测试Elasticsearch

介绍
这应该是一篇简短的文章-我最近在工作中继承了Django项目,其中Elasticsearch是主要组件。
在代码库中,有大量的辅助函数可构造如下所示的Elasticsearch查询DSL。

尽管上面的示例似乎很简单,但是Elasticsearch查询的JSON主体可能变得非常大而复杂。 作为Elasticsearch的相对入门者,我几乎没有信心更改任何涉及这些辅助功能的代码。
虽然在代码库中存在预先存在的测试,但所有测试都模拟了这些Elasticsearch帮助器功能。
[crayon-5f66a79c0508[……]

继续阅读

git日常命令大全(附流程图)

CREATE

From existing data

From Existing repo

Remove repository from existing local data

UPDATE

Fetch latest changes from origin

[crayon-5f66a79c0591d33273[……]

继续阅读

Django 3.1中的异步视图

编写异步代码能够毫不费力地加速应用程序。 随着Django 3.1最终支持异步视图,中间件和测试,现在是将它们置入现实的好时机。

这篇文章探讨了如何开始使用Django的新异步视图。

如果想了解有关异步代码背后的强大功能以及Python中线程,多处理和异步之间的区别的更多信息,请查看我的《通过并发,并行和异步编写Speeding Up Python》。

目标
在这篇文章的结尾,您应该能够:

在Django中编写异步视图
在Django视图中发出非阻塞HTTP请求
使用Django的异步视图简化基本的后台任务
使用sync_to_async在异步视图内进行同步调用[……]

继续阅读

Django 3中的自定义用户模型

介绍
嗨,在这篇文章中,我们将学习在Django 3中创建自定义用户模型,并且还将更改Django Admin的默认登录功能。 我们将使用电子邮件和密码登录。
动机
我必须为我的应用程序创建一个“自定义用户”,我能够创建模型,但问题是createsuperuser命令无法正常工作。 为了调试它,我不得不做大量研究,问题是当时大多数资源已经过时,所以我决定写这篇文章。
我做了一个GitHub仓库,所以如果您愿意,可以直接使用它(这里有说明)

让我们开始吧
首先,创建一个Django Project并创建一个名为users的应用程序
现在我们可以开始在用户应用程序中编辑model[……]

继续阅读

Django 3.1中的WebSockets

我们使用Django作为主要的Web开发框架,并且喜欢简单。
在本文中,我将指导您如何在不安装第三方应用程序的情况下在Django应用程序中启用WebSockets。
Django从3.0版开始引入了ASGI接口,在3.1版中引入了异步视图。 我们的解决方案将基于异步视图。 在本教程中,我们将使用Python 3.7和Django 3.1。

WebSockets ASGI界面简介
ASGI是已经使用了多年的WSGI协议的替代协议,并且将在接下来的2-3年内成为Python Web框架中的事实上的标准。
那么,WebSocket在这种情况下如何工作?让我们找到它!
WebSock[……]

继续阅读

使用Formsets和JavaScript在Django中动态添加表单

本教程演示了如何使用Django表单集和JavaScript将表单的多个副本动态添加到页面并进行处理。

在Web应用程序中,如果用户正在输入数据以将对象添加到数据库中,则用户可能需要连续多次提交相同的表单。 Django不必一遍又一遍地提交相同的表单,而是允许我们使用表单集将相同表单的多个副本添加到网页。

我们将通过观鸟应用程序演示此操作,以跟踪用户看到的鸟类。 它仅包括两页,一个包含鸟类列表的页面和一个将鸟类添加到列表的表单的页面。 您可以在GitHub上查看此示例的完整源代码。

对于本教程,对以下内容有一个基本的了解会有所帮助:

Django表格
基于Django[……]

继续阅读