奇妙的 Linux 世界

种一棵树最好的时间是十年前,其次是现在。

再见 Docker,是时候拥抱下一代容器镜像构建工具 Kaniko 了

1. daemon-less 镜像构建工具 1.1 什么是 daemon-less 镜像构建工具 在 CICD 流程中,经常会涉及镜像构建,常规的做法是使用 Docker in Docker 或者 Docker out of Docker 进行构建。详情可以参考文档:如何在 Docker 中使用 Docker 实际上,为了避免垄断,促进行业发展,基于 Docker 的镜像格式,早就指定了统......

几种在 Kubernetes 集群中获取客户端真实 IP 的方法

Kubernetes 依靠 kube-proxy 组件实现 Service 的通信与负载均衡。在这个过程中,由于使用了 SNAT 对源地址进行了转换,导致 Pod 中的服务拿不到真实的客户端 IP 地址信息。本篇主要解答了在 Kubernetes 集群中负载如何获取客户端真实 IP 地址这个问题。 1. 创建一个后端服务 1.1 服务选择 这里选择 containous/whoami 作为后......

CentOS 8 明年正式停止维护,以后再也不会有免费的 RHEL 了

CentOS 是 Community Enterprise Operating System(社区企业操作系统)的首字母缩写,是 100% 重建的 RHEL(红帽企业 Linux)。尽管 RHEL 需要花钱,但 CentOS 是免费的,社区支持的企业 Linux 发行版。擅长 Linux 且不想支付 RHEL 支持费的开发人员和公司总是选择 CentOS 来节省资金并获得企业级软件。 但是,......

推荐一款实时查看 Docker 容器日志的神器 Dozzie

介绍一款使用了几个月的开源小工具,Dozzle。它是一款轻量、简单的容器日志查看工具。 项目地址:https://dozzle.dev/ 本篇将简单介绍如何使用它,包括如何快速从源码构建它。 写在前面 这款工具相比较一些重量级的工具,比如 ELK 系列而言,实在是太轻量了,容器版本不过 10MB 左右大小。 主要原因是,它不存储和处理日志,仅仅提供实时查看功能,类似我们日常使用 ps、top......

如何在 Docker 中使用 Docker

1. 典型适用场景 在 CI 中,通常会有一个 CI Engine 负责解析流程,控制整个构建过程,而将真正的构建交给 Agent 去完成。例如,Jenkins 、GitLab 均是如此。 如下图, 连接 CI Engine 的 Agent, 种类很多。这是为了满足不同项目对构建环境的要求。 同时 Agent 是动态的,构建时才需要,构建完成时即销毁。CI 非常适合实践容器、Serverl......

一文搞懂 Redis 的三种集群方案

在开发测试环境中,我们一般搭建Redis的单实例来应对开发测试需求,但是在生产环境,如果对可用性、可靠性要求较高,则需要引入Redis的集群方案。虽然现在各大云平台有提供缓存服务可以直接使用,但了解一下其背后的实现与原理总还是有些必要(比如面试), 本文就一起来学习一下Redis的几种集群方案。 Redis支持三种集群方案 主从复制模式 Sentinel(哨兵)模式 Cluster模式 ......

两款超好用的 Kubernetes 实时日志查看工具

通常情况下,Kubernetes 环境下的应用日志都需要通过日志系统来进行收集,比如:Filebeat + ElasticSearch + Kibana 的组合来实现。虽然这一组合的功能相当强大,但是在一些比较简陋的测试集群中,或者不具备浏览器条件的自动化/控制台环境下,自动合并多个 Pod 中的日志进行集中的查看,对处理问题和调试故障还是很有大帮助的。 今天,我们就给大家介绍两款超好用的多......

巧用 Docker 快速部署 GPU 的基础环境

在 Linux 服务器上使用 GPU 跑深度学习的模型很正常不过。如果我们想用 Docker 实现同样的需求,就需要做些额外的工作。本质上就是我们要在容器里能看到并且使用宿主机上的显卡。 在这篇文章里我们就介绍一下 Docker 使用 GPU 的环境搭建。 Nvidia 驱动 某些命令以 Ubuntu 作为示例。 首先宿主机上必现安装 Nvidia 驱动。 这里推荐从 Nvidia 官网下载......

如何在 Kubernetes 集群中集成 Kata

1. Kata 解决什么问题 安全性和隔离性是 Kata Container 显著区别于 Docker Container 的地方。 Kata Container 来源于 Intel Clear Containers 和 Hyper runV 项目的合并。Intel Clear Containers 借助 Intel VT-x 技术使用轻量级虚拟机提供容器,解决安全性问题,同时性能优异。而 ......

巧用 Nsenter 调取宿主机工具调试容器内程序

nsenter 是一个可以用来进入到目标程序所在 Namespace 中运行命令的工具,一般常用于在宿主机上调试容器中运行的程序。 nsenter 安装 nsenter 位于 util-linux 包中,一般常用的 Linux 发行版都已经默认安装。如果你的系统没有安装,可以使用以下命令进行安装: 1$ yum install util-linux nsenter 用途 一个比较典型的用途就......