树辉

树辉

广州
心之所向,素履以往;生如逆旅,一苇以航。
Oct
28
使用普通用户运行容器应用

使用普通用户运行容器应用

序言   从安全的角度,容器应该创建一个普通的用户来运行应用,这样在一定的程度上可以保障应用的安全。实现的方式也简单,在创建Dockerfile 中定义普通用户的UID与GID。在K8S YAML资源中使用runAsUser*(注意:值需要与Dockerfile所定义的一致,否则会提示权限问题)*来运行应用。 Dockerfile 创建普通用户 Debian 镜像 FROM node:slim
2 min read
Sep
26
容器环境 JVM 内存动态配置

容器环境 JVM 内存动态配置

在微服务架构中,JAVA 框架占用了绝大部分的市场,比如Spring Cloud、Dubbo等,其中在使用容器化部署的时候经常碰到关于JVM的内存分配的大小的配置,以下来讲述自己所用到过的配置方式。 固定配置 此方式,顾名思义,就是将JVM参数进行固定化,比如在将JAR打包成容器镜像时 FROM openjdk:8-jdk-alpine LABEL maintainer="Shuhui&
4 min read
Aug
22
Kubernetes 1.20+  NFS Provisioner 无法正常使用

Kubernetes 1.20+ NFS Provisioner 无法正常使用

问题描述 在使用**Kubernetes 1.20+**部署NFS Provisioner时,会发现在创建PersistentVolumeClaim 时状态始终为Pending,并抛出以下异常: unexpected error getting claim reference: selfLink was empty, can't make
3 min read
Jul
31
K8s Job资源使用笔记

K8s Job资源使用笔记

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

浏览器打开pdf格式文件自动预览

有一朋友需打开Web服务器(nginx)中pdf格式文件实现自动预览--缺省为下载文件,于是网上查阅了些资料,发现是一个名为Content-Disposition的HTTP头部在控制: nginx 服务器 以Nginx服务器为例: server { listen 8080; server_name _; root /usr/share/nginx/html; location ~* \.(pdf|
1 min read
Jul
04
Wireguard企业部署案例

Wireguard企业部署案例

一、背景   某制造企业因业务扩展,成立2个分公司,因涉及IT数据交互,故而公司分部需要与公司总部进行数据交互。考虑成本投入,不打算通过专线链路--通过开源VPN技术来实现企业内部互联。企业网络拓扑如下:   关于VPN的方案选型在OpenVPN与Wireguard中进行对比,最终采用Wireguard方案,考虑如下: 速度够快 配置简单 目前已并入到Linux内核 业务需求不复杂,仅Site-to-Site 二、业务需求 公司分部A与公司分部B可正常访问公司总部业务系统,
6 min read
Jun
08
Elasticsearch + Kibana + Fluent-bit日志采集方案

Elasticsearch + Kibana + Fluent-bit日志采集方案

序 在本文中,将简单说明如何在Kubernetes环境下部署 Elasticsearch服务、Kibana服务、Fluent Bit服务,通过Kibana服务进行可视化预览, 同时我们将以Fluent-Bit 进行日志收集。 本文所部署服务为典型的EFK日志系统,至少是这些组件。如果部署了一整套EFK系统,从中选择某个Pod的日志也需要进一步进行筛选过滤才能得到需要的日志。有时候我们不需要收集整个集群所产生的日志内容,而是只关心某个命名空间、某个模块所产生的日志,这时候就需要更为灵活的日志代理部署模式了,我们通常称之为“Sidecar”
9 min read
Jun
03
[nexus] 应用实践之YUM仓库

[nexus] 应用实践之YUM仓库

YUM 是RHEL分支的包管理工具,是一个RPM系统的自动更新和软件包安装/卸载器。它可以自动计算依赖和找出想要安装的软件包。数据中心服务器有一定规模数量时系统管理员一般搭建一个私有YUM仓库,来解决网络加速、网络策略配置(数据中心内的服务器通常为安全会配置网络策略--不能上外网)等问题。 从业多年,也见过不少使用定时任务使用rsync去同步网易、中科大、阿里云等这些国内镜像源。本文基于nexus来配置一个YUM私有仓库案例。 为YUM创建Blob Store 创建本地 YUM Registry
3 min read
May
24
[nexus] 部署安装篇

[nexus] 部署安装篇

nexus是知名的私服服务,基于JAVA编写,我们一般可以拿它来作为内部的服务,如: YUMAPTMAVENNPMDocker HUB等网络端口Nexus 涉及3个端口,功能列表如下: 序号 端口号 协议 端口说明 01 8081 TCP Nexus系统缺省端口,Maven、NPM、Raw等类型的库皆使用该端口提供服务 02
3 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