站长推荐
Gitlab企业版证书生成
一、安装ruby环境以及gem包管理工具
我的电脑是mac,所以无需安装
安装ruby包依赖gitlab、gitlab-license、openssl
sudo gem install gitlab
sudo gem install gitlab-license
sudo gem install openssl
二、编写创建license的rube脚本,并生成license文件
文件内容如下:
createlicense.rb
require 'openssl'
require 'gitlab/license'
# 生成密钥对
key_pair = OpenSSL::PKey::RSA.g……
G1GC调优时遇到的坑
近期,出于某些原因,对线上项目进行JVM调优,希望能将年轻代大小固定下来而非动态分配,于是在启动参数上增加了-Xmn=3G ,结果上达到了预定,而然在查看监控是却发现,原本程序gc的STW时间只需要30ms左右,加完这个参数后却达到了300ms,相差近10倍,这是一个很严重的问题了
于是我去查了oracle关于g1相关的文档,终于找到了答案:
评估和微调 G1 GC 时,请记住以下建议:
年轻代大小:避免使用 -Xmn 选项或 -XX:NewRatio 等其他相关选项显式设置年轻代大小。固定年轻代的大小会覆盖暂停时间目标。
原本参数中设置了-XX:MaxGCPauseMillis=10……
Jackson 2.11.0无法使用@JsonCreator反序列化枚举值
最近升级了spring boot的版本,结果发现原本使用@JsonCreator反序列化枚举值都报错了,报错内容如下:
.w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Input mismatch reading Enum `xyz.jieee.demo.DemoEnum`: properties-based `@JsonCreator` ([method xyz.j……
Spring boot 2.4.2 redisson报错问题排查
这几天我把项目里的spring boot升级到了最新版本:2.4.2,然后启动的时候发现redisson报错了,确切的说是redisson依赖的netty报错了。报错内容如下:
2021-01-31 20:01:30.788 WARN 1764 --- [ main] i.n.r.d.DnsServerAddressStreamProviders : Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. Th……
当NestJS遇上Next.js
Nest (NestJS) 是一个用于构建高效、可扩展的Node.js服务器端应用程序的开发框架。它利用 JavaScript 的渐进增强的能力,使用并完全支持TypeScript(仍然允许开发者使用纯 JavaScript 进行开发),并结合了 OOP (面向对象编程)、FP (函数式编程)和 FRP (函数响应式编程)。
Next.js是一个可用于生产环境的服务端渲染框架。
(ps:这两个框架名字长得还真像,可千万别搞错了)
NestJS更专注一服务端,而Next.js更专注也页面的渲染,如果将这两个框架结合在一起,岂不是完美?本文将介绍如何将这两个框架整合到一起使用。
初始化
首先,……
create-react-app扩展webpack配置
会React的人对create-react-app(下文简称CRA)这个脚手架一定不会陌生,这是react官方推出的一个脚手架。虽然在使用上很方便,但它的webpack配置却是固定的,并没有提供修改的入口,这点正是让人又爱又恨。虽然官方提供了eject这个命令可以弹出所有配置文件,但当你使用了这个命令后,后续如果想升级脚手架,又是一个头痛的问题。本文将介绍如何在不执行eject命令的前提下,拓展CRA的webpack配置。
一、官方支持的配置拓展点
a. CRA支持普通的css文件,同时也支持css module,只需要将css的后缀名命名为*.module.css,就能开启css modu……
Next.js如何接入百度统计
Next.js是一个非常优秀的React服务端渲染解决方案。一般做服务端渲染,大多数因素都是为了SEO,既然做了SEO,那么肯定会嵌入一些网站统计代码,本文将介绍如何在Next.js内使用百度统计代码。
一、获取百度统计代码
这一步就不多介绍了,详细大部分人都知道。
二、嵌入统计代码
next.js并没有像其他react框架一样有一个index.html入口,那么统计代码该放在哪个地方呢?next.js官方提供了这两个入口可以放置一些全局的代码:自定义Document或者自定义App。
官方文档如下:
https://nextjs.org/docs/advanced-features/……
如何拉取k8s.grc.io、quay.io的镜像
最近有好多人问我如何获取k8s.grc.io、quay.io上面的镜像,众所周知,由于网络的限制,国内用户时无法访问这些网站的,这里介绍一种方法将这些镜像同步下来。
准备
首先,需要一个仓库用于放置你需要同步的镜像,可以使用官方的hub.docker.io,这里我推荐使用阿里云的镜像仓库。
创建一个命名空间
获取登录凭证(密码就是你阿里云的登录密码)
至此,镜像仓库准备完毕
拉取镜像
要拉取镜像,那就一定要主备一台国外的服务器了,那如何免费获取一台国外服务器呢?其实现在有很多免费的k8s实验平台,一般可提供几小时的免费主机,我们可以利用这些主机来做镜像同步。
这里我推荐……
k8s删除Terminating状态的namespace
在k8s中,namespace只有两种状态,Active和Terminating,后者一般比较少见,只有当命名空间被删除,而命名空间下还存在运行的资源时,才会出现terminating状态。当命名空间下资源回收后,命名空间会被自动删除。当也存在一些意外情况,导致已经没有相关资源了,而namespace依然在terminating状态下无法删除,这里介绍一种删除方法。
先执行以下命令,获取namespace信息
kubectl get namespace <terminating-namespace> -o yaml
得到以下信息:
apiVersion: v1
kind: Namespace……
使用rook在k8s管理ceph集群
ceph是一种高度扩展的分布式存储方案,能够提供对象、文件和块存储,也可以为k8s提供持久化存储能力。然而,ceph的集群搭建相对还是计较复杂的,而且既然引入了k8s,何不让k8s为我们管理ceph集群呢?
Rook的出现为上面的问题提供了解决方案。Rook是一个自管理的分布式存储编排系统,可以为k8s提供便利的存储解决方案。Rook本身不提供春初,而是在k8s和存储系统之间提供了适配层,简化了存储系统的部署与维护。接下来我们就来使用Rook在k8s上搭建一套ceph集群。
环境准备
这里我准备了4台机器作为存储的设备。
配置信息:
系统类型
IP
Hostname
磁盘
centos-7……