Java当中基于ASM进行类元信息的采集


基于ASM实现方法参数名的收集 open class LocalVariableTableParameterNameDiscoverer : ParameterNameDiscoverer { companion object { private val NO_DEB

JDK提供的@Repeatable注解的作用


我们都知道,在一个方法/类/字段上,对于同一个注解,只能添加一个,如果添加重复的注解,那么就会出现如下这样的错误。 那么我们如何实现在一个类上标注多个相同注解?其实有一种方式,比如我们的ComponentScan注解和@ComponentScans注解。在@ComponentScans中定义一个va

JDK11源码构建以及在Clion和VSCode中进行调试


事先说明:本教程不适用于Windows,只适用于macOS、Ubuntu等类Unix系统。 1.下载JDK源码 需要注意的是,编译JDK源码需要一个Boot JDK作为引导,比如JDK12,就要以JDK11或JDK12的环境作为基础,再去编译JDK源码,而且不是每个版本都能成功编译的!推荐使用新一点

Jenkins安装与项目自动构建


1.安装Jenkins Jenkins安装手册 https://www.jenkins.io/doc/book/installing/ Jenkins官方的下载地址: https://www.jenkins.io/download/ 找到合适的版本,使用wget命令进行下载 wget https

JVM Debugger


1.JVMDebugger的实现 package com.wanna.web.debug; import com.sun.jdi.*; import com.sun.jdi.connect.AttachingConnector; import com.sun.jdi.connect.Connect

K8S部署Redis集群

k8s 

permalink: /archives/k8s-install-redis-by-redis-operator categories: k8s tags: 1.使用redis-cluster创建Redis集群 1.1 创建Redis集群 可以基于如下的资源清单,创建K8S的Redis集群: api

K8S部署TiDB数据库

k8s 

在K8S当中,进行TiDB的整体安装过程参考教程:tidb 1. 安装TIDB数据库 可以先创建两个Namespace专门存放TIDB相关的资源,tidb-admin存放TIDB的Operator相关的资源,tidb则存放TIDB数据库相关的资源。 kubectl create namespace

K8S当中持久卷(PV)、持久卷声明(PVC)与StorageClass

k8s 

1.PV和PVC 什么是PV和PVC? PV(PersistentVolume,持久卷),定义一个可以使用的数据卷,供K8S中的各个Pod使用,可以根据网络文件系统、云存储、Ceph存储等去作为持久卷的来源,比如我可以接入阿里云存储并封装成为PV,也可以接入NFS作为持久卷封装成为PV。 PVC(P

K8S集群安装(1)-基于KubeKey安装K8S集群

k8s 

1. 通过KubeKey去安装K8S和KubeSphere 安装流程参考KubeSphere官网提供的教程:https://www.kubesphere.io/zh/docs/v4.1/03-installation-and-upgrade/02-install-kubesphere/02-inst

K8S集群安装(2)-Harbor镜像仓库安装

k8s 

Harbor是一个私有的镜像仓库,可以用于存放Docker镜像,在K8S当中部署一个项目需要从镜像仓库拉取镜像,再去构建Pod。 为什么我们要去部署属于自己的私有镜像仓库Harbor? 1.K8S集群当中进行项目的构建时,如果从DockerHub进行镜像的拉取,因为墙的原因很容易遇到拉取不到镜像的情

k8s-service-internet-expose

k8s 

基于iptables实现80/443端口转发 在K8S集群当中,Ingress的Service默认会在30000-32767端口进行随机分配,但是如果我们想要以HTTP/HTTPS服务的标准端口80/443端口进行启动的话,就需要我们进行额外的端口转发,我们需要将443端口的流量路由到Ingress

k8s-nexus-repository-install

k8s 

1. 创建Nexus的Namespace并准备好PV 1.1 创建Namespace apiVersion: v1 kind: Namespace metadata: name: devops-tools 1.2 创建Nexus的PVC基于StorageClass创建PV 我们这里基于准备好的

K8S集群备份-Velero

k8s 

Velero官网如下:Velero。下面是Velero的官方文档介绍: Velero(原名 Heptio Ark)为您提供了备份和恢复 Kubernetes 集群资源和持久卷的工具。您可以在云提供商处或在本地运行 Velero。Velero 可让您: 备份您的集群并在丢失时恢复。 将集群资源迁移到其

K8S集群安装(3)-基于KubeSphere部署项目(含Ingress-Nginx的部署)

k8s 

1. 创建K8S项目Namespace 1.1 通过KubeSphere创建Namespace 进入到KubeSphere之后,在左侧的项目一栏,选择创建,去新建一个项目(或者说叫namespace),我们这里起名叫wanna-project。 需要注意的是:K8S当中,所有的资源都是namespa

K8S集群部署-ELK日志收集系统采集Pod日志

k8s 

K8S集群中存在有很多的Pod,会产生很多的日志,通过命令的方式去检索日志,往往会比较麻烦,如果需要统一收集日志,此时就可以基于ELK去进行日志的收集并对外提供日志的检索功能。 1.安装ES(ElasticSearch) 1.1 创建持久卷PV(如果使用StorageClass动态创建PV跳过此步骤

K8S集群运维-HPA自动扩缩容与资源限制

k8s 

1. Pod的资源限制 K8S当中,对于Deployment控制器可以通过sepc.template.spec.containers.resource配置去对单个容器所使用的资源进行限制。需要注意的是,这里配置的是容器的资源,而不是Pod的资源,因为一个Pod当中可能存在有多个容器。最终配置的格式应

K8S实现Adguard私有DNS服务器的部署


apiVersion permalink: /archives/k8s-install-adguard categories: k8s linux tags: halo 1. 在K8S当中部署DNS服务器Adguard 我们可以使用如下的K8S的资源清单,进行Adguard服务的部署。 apiVer

K8S项目部署-Git代码仓库服务器Gitea

k8s 

Gitea是一个轻量级的Git代码仓库服务器,和我们见得比较多的Github、Gitee以及Gitlab一样,都是一个Git仓库。对于Github和Gitee都是开源项目的Git仓库,对于公司、企业这样的有私有化的需求的场景下,则通常使用Gitlab/Gitea这样的私有化Git仓库。 目前市面上使

K8S项目部署-Halo个人博客系统

k8s 

1. 创建持久卷供Halo进行持久化 Halo服务,涉及到本地存储,比如说Halo的插件,需要保存到~/.halo2路径下,因此我们需要找一个地方存放文件,供Halo进行访问。 1.1 安装NFS服务器供文件共享 (1) 安装NFS Sever 对于NFS服务器的安装,可以在独立的NFS服务器的机器

K8S项目部署-Jenkins实现自动化

k8s 

基于K8S安装Jenkins,参考官网:jenkins-kubenates。 1.创建Namespace存放Devops相关的资源 创建一个独立的K8S的namespace,用来存放Jenkins相关的K8S资源。 kubectl create namespace devops-tools 2.创