奇妙的 Linux 世界

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

手把手教你打造高效的 Kubernetes 命令行终端

Kubernetes 作为云原生时代的操作系统,熟悉和使用它是每名用户的必备技能。本文将介绍一些提高操作 Kubernetes 效率的技巧以及如何打造一个高效的 Kubernetes 命令行终端的方法。 Kubectl 自动补全 Kubectl 这个命令行工具非常重要,与之相关的命令也很多。我们也记不住那么多的命令,而且也会经常写错,所以命令行自动补全是很有必要的。Kubectl 工具本身就......

使用 TC 和 Netem 模拟网络异常

在某些情况下,我们需要模拟网络很差的状态来测试软件能够正常工作,比如网络延迟、丢包、乱序、重复等。Linux 系统下强大的流量控制工具 TC 能很轻松地完成这个需求,TC 命令行工具是 IProute2 软件包中的软件,可以根据系统版本自行安装。 这篇文章介绍的功能主要是通过 Netem 这个内核模块来实现的。Netem 是 Network Emulator 的缩写,关于更多功能以及参数的详......

关于 Kubernetes Master 高可用的一些策略

Kubernetes 高可用也许是完成了初步的技术评估,打算将生产环境迁移进 Kubernetes 集群之前普遍面临的问题。 为了减少因为服务器当机引起的业务中断,生产环境中的业务系统往往已经做好了高可用,而当引入 Kubernetes 这一套新的集群管理系统之后,服务器不再是单一的个体,位于中央位置的 Kubernetes Master 一旦中断服务,将导致所有 Node 节点均不可控,有......

Docker 最佳实践之多阶段构建

Docker 目前在容器市场可以说是占领了大部分市场,Docker 掀起了容器革命,同时也改变了现代化云平台的构建方式。尽管 Docker 很强大,但使用过程当中也遇到了一些问题。比如:我想要构建一个编译型语言镜像,需要先在一个 Dockerfile 中编译,然后再使用另外一个 Dockerfile 把编译好的文件放到镜像中。这样无形当中就增大了 CI/CD 的复杂度。 Docker 多阶......

初识 Istio

如果你比较关注新兴技术的话,那么很可能在不同的地方听说过 Istio,并且知道它和 Service Mesh 有着牵扯。这篇文章可以作为了解 Istio 的入门介绍。通过本文你可以了解什么是 Istio,Istio 为什么最近这么火,以及 Istio 能够我们带来什么好处。 什么是 Istio? 官方对 Istio 的介绍浓缩成了一句话: An open platform to conne......

使用 IPVS 实现 Kubernetes 入口流量负载均衡

新搭建的 Kubernetes 集群如何承接外部访问的流量,是刚上手 Kubernetes 时常常会遇到的问题。 在公有云上,官方给出了比较直接的答案,使用 LoadBalancer 类型的 Service,利用公有云提供的负载均衡服务来承接流量,同时在多台服务器之间进行负载均衡。 而在私有环境中,如何正确的将外部流量引入到集群内部,却暂时没有标准的做法。 本文将介绍一种基于 IPVS 来承......

浅谈 Kubernetes 数据持久化方案

Kubernetes Volume 相关概念 缺省情况下,一个运行中的容器对文件系统的写入都是发生在其分层文件系统的可写层。一旦容器运行结束,所有写入都会被丢弃。如果数据需要长期存储,那就需要对容器数据做持久化支持。 Kubernetes 和 Docker 类似,也是通过 Volume 的方式提供对存储的支持。Volume 被定义在 Pod 上,可以被 Pod 里的多个容器挂载到相同或不......

浅谈 DDoS 攻击与防御

什么是 DDoS DDoS 是英文 Distributed Denial of Service 的缩写,中文译作分布式拒绝服务。那什么又是拒绝服务(Denial of Service)呢?凡是能导致合法用户不能够正常访问网络服务的行为都算是拒绝服务攻击。也就是说拒绝服务攻击的目的非常明确,就是要阻止合法用户对正常网络资源的访问,从而达成攻击者不可告人的目的。 分布式拒绝服务攻击一旦被实施,攻......

Kubernetes 资源管理概述

Kubernetes 从创建之初的核心模块之一就是资源调度。想要在生产环境使用好 Kubernetes,必须对它的资源模型以及资源管理非常了解。这篇文章算是对散布在网络上的 Kubernetes 资源管理内容的一个总结。干货文章,强列推荐一读。 Kubernetes 资源简介 什么是资源? 在 Kubernetes 中,有两个基础但是非常重要的概念:Node 和 Pod。Node 翻译成节点......

利用 Helm 快速部署 Ingress

Ingress 是一种 Kubernetes 资源,也是将 Kubernetes 集群内服务暴露到外部的一种方式。本文将讲一讲如何用 Helm 在 Kubernetes 集群中部署 Ingress,并部署两个应用来演示 Ingress 的具体使用。 阅读本文前你需要先掌握 Helm 和一些 Kubernetes 服务暴露的相关知识点,如果你还不了解可以先读一读我之前写的 「Helm 入门指南......