奇技淫巧

奇技淫巧

奇技谓奇异技能,淫巧谓过度工巧。二者大同,但技据人身,巧指器物为异耳。--孔颖达
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
Jul
13
定期下载github最新k8s发布版本

定期下载github最新k8s发布版本

从api中获取仓库最近版本的下载地址,并选择最近的N个版本下载下来。 #!/usr/bin/env bash # 文件名: download-binary-of-k8s_multiver.sh # 功能: 获取github仓库最新发布版本并下载到本地,包含beta版本 #author=$1 #project_name=$2 count=2
1 min read
Apr
03
Nginx 实现同端口复用HTTPS/TLS业务

Nginx 实现同端口复用HTTPS/TLS业务

前置条件: nginx-1.15.2 以上   1.15.2 版本新增了 $ssl_preread_protocol 变量,通过该变量可以使用 stream 反向代理时预先判断连接是否为SSL/TLS协议或者为非SSL/TLS协议,从而实现同一个端口来转发不同的业务,   stream_
3 min read