Linux 下常用日志查询工具

journalctl

journalctl 是 systemd 的日志管理工具,用于查询 systemd 的日志管理系统 (journal) 中的日志。它整合了系统和服务的所有日志信息。

常用命令:

  1. 查看全部日志:
journalctl
  1. 查看最新日志并持续监控
journalctl -f
  1. 查看本次启动的日志:
journalctl -b
  1. 查看特定服务的日志:
journalctl -u ssh    # SSH服务
journalctl -u nginx  # Nginx服务
  1. 按时间过滤:
journalctl --since "2024-01-01"
journalctl --since "1 hour ago"
  1. 查看特定优先级的日志:
journalctl -p err    # 错误级别
journalctl -p info   # 信息级别
  1. 查看内核日志
journalctl -k

k8s leases 详解

Leases 是 k8s 内部提供的一种分布式锁机制,用于锁定共享资源、协调活动。

Lease 翻译成中文是“租约”或“契约”。当某个组件或进程获得了这个 Lease,就相当于它获得了某种特权或责任,可以执行特定的任务。

go.mod 详解

Go 模块是Go 语言的依赖管理系统,它从 Go 1.11 版本开始引入。本文讲解 go mod 的使用细节。

k8s operator 入门

The operator design pattern defines how to manage application and infrastructure resources using domain-specific knowledge and declarative state. The goal of the pattern is to reduce the amount of manual imperative work (how to backup, scale, upgrade...) which is required to keep an application in a healthy and well-maintained state, by capturing that domain specific knowledge in code and exposing it using a declarative API.

Kubernetes Operator 是一种用于打包、部署和管理 Kubernetes 应用的方法。它是一个应用特定的控制器,扩展了 Kubernetes 的功能,使复杂的、有状态的应用能够像简单的无状态应用一样易于部署和管理。

Operator 模式由 CoreOS 公司在 2016 年首次提出。这个概念源于以下需求:

  • 需要一种方法来扩展 Kubernetes 的能力,以管理复杂的有状态应用。
  • 希望将人类操作员的知识自动化,减少人为错误和提高效率。
  • 寻求一种标准化的方式来部署和管理复杂的分布式系统。

CoreOS 最初创建 Operator 是为了管理 etcd 集群,后来这个概念被广泛采用,应用于各种复杂系统的管理。

显卡直通技术原理

显卡直通(GPU Passthrough)的原理是通过硬件虚拟化技术,使得虚拟机能直接访问物理硬件资源,从而大大提高虚拟机的性能。

在没有直通技术的情况下,虚拟机需要通过宿主机的操作系统来访问硬件资源,这会造成一定的性能损失。而显卡直通技术则可以使虚拟机绕过宿主机操作系统,直接访问显卡硬件。

SOLID 原则

SOLID 原则是由著名的鲍勃大叔(Robert J. Martin)在其论文里提出的,鲍勃大叔在架构领域建树颇多,《代码整洁之道》、《架构整洁之道》都出资他手。

SOLID 是五个面向对象编程和设计的基本原则的首字母缩写,它们分别是:

  1. 单一职责原则(Single Responsibility Principle, SRP)
  2. 开放封闭原则(Open-Closed Principle, OCP)
  3. 里氏替换原则(Liskov Substitution Principle, LSP)
  4. 接口隔离原则(Interface Segregation Principle, ISP)
  5. 依赖倒置原则(Dependency Inversion Principle, DIP)

QUIC 协议

QUIC 协议是 Google 出品的传输层网络协议。那么,在已经有了安全可靠的 TCP 协议的情况下,又搞出来一个新的协议呢?简单来说,Google 对 TCP 协议的优化已经到了尽头,已经没有什么好优化的了,但还想更进一步,怎么办呢?搞个新的。

Bazel 基本使用

本文是 Bazel 学习笔记,记录了 Bazel 的一些核心概念和基本使用方法,构建目标为 Go 语言项目。

Tmux 基本用法

当用户与远程计算机进行会话时,创建的窗口是其中的进程是绑定的,当用户长时间不操作或者因为网络异常导致远程连接中断,窗口及其里面的进行也随之中断,里面如果有些还未完成的任务也会被关闭。tmux 解决的问题是将会话与窗口解绑。窗口关闭会话并不会关闭,重新连接上终端可以恢复会话。