奇技淫巧

奇技淫巧

奇技谓奇异技能,淫巧谓过度工巧。二者大同,但技据人身,巧指器物为异耳。--孔颖达
Sep
11
趣玩 OSS + docker registry + consul-template 组合

趣玩 OSS + docker registry + consul-template 组合

把用了6年多的ECS操作系统(Debian8)升级了一番,百无聊赖,找点乐子来打发下。于是想到工作上时常拉取容器镜像那个龟速,就折腾它啦,顺便掺和些奇技淫巧,不亦乐乎。 docker-registry docker-registry是docker官方出品的轻量级别服务,就咱们这种穷人,ECS资源毕竟有限,要是资源有足,咱也不折腾了,直接部署个Habor、Nexus就完事了。 同时考虑到本地存储也是捉襟见肘,直接将容器镜像存储在阿里的OSS上面,docker-registry
5 min read
Aug
27
istio改写server响应头部

istio改写server响应头部

istio 作为web服务器,默认会有个server: istio-envoy响应头部,如下: # curl -I localhost HTTP/1.1 404 Not Found date: Sat, 27 Aug 2022 09:
1 min read
Aug
22
Prometheus-Operator 监控位于集群外的服务

Prometheus-Operator 监控位于集群外的服务

在Kubernetes中部署Prometheus我们通常使用Operator来部署,比如使用以下命令: helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm install my-prometheus prometheus-community/prometheus --version 15.12.0
5 min read
Jul
16
使用非特权nginx容器镜像

使用非特权nginx容器镜像

序 容器使用非root用户是一种安全共识,而我们常用的nginx官方提供的容器镜像--docker.io/library/nginx:latest却是使用到root权限。今无意发现有个nginx-unprivileged容器镜像,使用的是非root用户。 测试 镜像拉取 docker pull nginxinc/nginx-unprivileged:1.21.4 创建容器 docker
1 min read
Mar
15
docker 拉取指定平台镜像

docker 拉取指定平台镜像

在节点中执行docker pull时,缺省拉取当前平台的镜像,有时候我们需要拉取非本平台的镜像时,可以进行如下操作: 1、往/etc/docker/daemon.json文件中添加以下experimental配置参数: # vim /etc/docker/daemon.json { "experimental": true,
1 min read
Jan
30
体验Keda + Redis 实现副本自动扩/缩容

体验Keda + Redis 实现副本自动扩/缩容

关于KEDAKEDA是一个Kubernetes基于事件驱动的自动缩放器。 KEDA可以根据需要处理的事件数量来推动 Kubernetes 中任何容器的扩展。 KEDA是一个单一用途的轻量级组件,可以添加到任何 Kubernetes 集群中。KEDA 与Horizontal Pod Autoscaler等标准 Kubernetes 组件一起工作,同时可以在不覆盖的情况下扩展功能。 KEDA可以明确映射想要使用事件驱动规模的应用程序,而其他应用程序继续运行。这使得 KEDA 成为与任意数量的任何其他
3 min read
Jan
28
如何使用Kubectl 滚动重启应用

如何使用Kubectl 滚动重启应用

Kubernetes 中的 Pod 通常应该是"Running"状态,然而有时候我们需要针对正在运行的Pod调度到其它的节点或是基于其它特殊的原因,将正常运行的Pod进行重启。Pod的重启方式也有不少,比如常见删除正在运行的Pod让其创建新的Pod实例(单个Pod无法直接使用该方式)。以下罗列出几种常见的方式仅供备忘: 方法1:滚动重启方法[推荐] 自 Kubernetes 1.
2 min read
Jul
31
K8s Job资源使用笔记

K8s Job资源使用笔记

我们在一个新环境里部署应用,经常会结合Job控制器来实现我们的初始化数据。当然,这是一种最简单的使用场景,创建一个 Job 对象以便以一种可靠的方式运行某 Pod 直到完成。同时这个Pod初始化数据时依赖某个服务接口、数据库、又或者是其它的中间件服务,所以我们就需要使用一些条件去判断--循环请求,延时,直到接口正常返回数据。 某个HTTP接口 不死不休版 顾名思义,探测URL没有正常返回我就一直重试--天荒地老、不死不休。
4 min read
Mar
30
Ingress-nginx 中开启 Brotili 压缩算法

Ingress-nginx 中开启 Brotili 压缩算法

Brotli是Google开发的一种压缩方法,于2015年发布。我们常用的压缩算法是 gzip(Ingress-nginx也是默认使用gzip),据说brotli要比gzip高出20%至30%的压缩率。 ingress-nginx 配置 默认的压缩算法是gzip,压缩级别为1,如需要启用brotli,需要配置以下三个参数: enable-brotli: true 或 false,是否启用brotli压缩算法 brotli-level:
1 min read
Nov
03
SSH 多路复用及长连接保持

SSH 多路复用及长连接保持

SSH 协议运行在TCP之上,当使用SSH与远程服务器建立连接时,你必须创建一条新的TCP连接。在你真正开始做有意义的动作之前,客户端和服务端都必须经过一系列协议交互,而这个协议交互的过程会花费一定的时间。 当远程部署使用SSH协议部署服务时,比如Ansible运行一个 playbook,它会创建许多SSH连接,用于传输文件或者运行命令等。Ansible每一次与服务器创建一条新SSH连接,都必须走一遍这样的协议交互。 OpenSSH是目前主流的SSH工具,如果你用的是 Linux或MacOS,那么几乎都会有预装的SSH客户端。OpenSSH支持一项优化,叫作SSH
3 min read