DEVOPS 十二月 10, 2023

SonarQube 项目总览状态导出工具

文章字数 3.8k 阅读约需 3 mins.

随着 SonarQube 上的项目越来越多,我们希望能够对这些项目按照一定的指标进行筛选,比如:

  • SizeLDuplications5% - 10% 之间的项目
  • Coverage ...
查看全文

DEVOPS 九月 24, 2023

Sonar Quality Gates

文章字数 7.5k 阅读约需 7 mins.

SonarQube 简称 Sonar,是一个能够帮助我们编写整洁、安全代码的平台。通过 SonarScanner 对代码进行扫描,之后将扫描结果展现,如 https://next.sonarqube.com/sonarqube/projects

Quality Gates 可译为质量门禁,能够检查新增代码是否满足其中的规则要求,以判断新代码是否达到合并要求。Sonar 中有开箱即用的内置质量门禁规则,也可自定义:

在项目总览页中,可以看到质量门禁状态:

通过质量门禁,可以优先保证新增...

查看全文

DEVOPS 一月 02, 2022

使用 easyctl 在多主机上并行执行脚本

文章字数 5.3k 阅读约需 5 mins.

当有大批量主机,需要进行类似的操作时,推荐一个不需要配置 SSH 免密登录 的简单工具 —— easyctl

上面这个场景,主要使用到了 easyctl 中的 执行指令集 - 跨主机并行执行shell,easyctl 提供的其他功能及使用方式,可见 源码 或文档中的其他部分。

因为 跨主机并行执行 shell 这个功能实际就是通过 ssh 连接到各主机,并行执行指定命令,并将最终直接结果汇总,所以理论上只要支持 ssh 的环境,都可以使用 easyctl 的这个功能,比如 Mac,甚至 Windows...

查看全文

K8S 一月 31, 2021

K8s subPath

文章字数 2.4k 阅读约需 2 mins.

在 K8s 中,VolumeMount 是用来挂载定义好的存储卷的。

其中有个属性 subPath 是这样描述的:

Field Description
subPath
string
Path within the volume from which the container’s volume should be mounted. Defaults to “” (volume’s root).

subPath 所定义的路径,指的是 卷(Volume)内的子路径,用于将卷内 subPath...

查看全文

JAVA 十二月 06, 2020

如何确定装载了哪个类

文章字数 4.3k 阅读约需 4 mins.

某些时候,我们可能希望知道 ClassLoader 里到底装载的是哪个 class,比如当两个 jar 包中存在 package 和 Class 名完全相同的两个类时。

在 java 命令的帮助信息中,有如下内容(部分):

$ java -help
用法: java [-options] class [args...]
           (执行类)
   或  java [-options] -jar jarfile [args...]
           (执行 jar 文件)
其中选项包括:
    -d32      使用 32 位数据模型 (如果可用...
查看全文

K8S 十一月 22, 2020

K8s ConfigMap

文章字数 8.2k 阅读约需 7 mins.

在 k8s 集群中部署第一个应用 中,完成了一个基本的 NGINX 服务的部署,但在真实环境中使用 NGINX 时,一般都需要定制其配置文件,使满足实际代理需求。K8s 提供了一个 ConfigMap 的概念,允许将配置文件与镜像文件分离,以使容器化的应用程序具有可移植性。

可以按字面方式,将 ConfigMap,理解为一个 Config 的 Map:

  • Map 的 Key 为配置标识,可以是文件名等
  • Map 的 Value 为配置内容,可以是字符串、文本内容等

一个 ConfigMap 中可...

查看全文

K8S 十一月 15, 2020

K8s 命名空间

文章字数 2.7k 阅读约需 2 mins.

Kubernetes 支持在一个物理集群上划分多个虚拟集群,这些虚拟集群即 命名空间

  • 在同一个命名空间中,资源名称须保持唯一。但在不同命名空间中,可以存在相同名称的资源。
  • 每一个资源只能隶属于一个命名空间。
  • 但命名空间本身不能属于另一个命名空间。

可以通过如下命令查看哪些资源在或不在命名空间中:

# In a namespace
$ kubectl api-resources --namespaced=true

# Not in a namespace
$ kubectl api-resources...
查看全文

CLOUD 十月 18, 2020

在 k8s 集群中部署第一个应用

文章字数 6.8k 阅读约需 6 mins.

使用 kubeasz 离线安装 k8s 集群 中,我们完成了 k8s 集群的搭建,接下来,可以开始在集群中部署第一个应用了。

在集群中启动一个最简单的 nginx 服务,并能够通过 http 进行访问。

回忆 docker 环境下,要实现这个目标,需要做的事情很简单,一行命令即可:

$ docker run --name some-nginx -d -p 8080:80 nginx

之后便可访问 http://localhost:8080 看到 nginx 的欢迎页面。

也可以使用 docker...

查看全文

CLOUD 十月 04, 2020

使用 kubeasz 离线安装 k8s 集群

文章字数 13k 阅读约需 11 mins.

kubeasz 将 k8s 集群的部署难度降低到了傻瓜相机的级别。
本文以 kubeasz v2.2.1 为例,介绍一下使用 kubeasz 离线安装 k8s 集群的方式。

在一个可联网的环境,按 离线安装集群 文档中内容,将所需文件都下载到本地:

# 下载工具脚本 easzup,举例使用 kubeasz 版本 2.2.1
$ export release=2.2.1
$ curl -C- -fLO --retry 3 https://github.com/easzlab/kubeasz/releases...
查看全文

DEVOPS 八月 23, 2020

子网掩码是神马

文章字数 2.7k 阅读约需 2 mins.

在手动配置 IPv4 地址时,需要配置子网掩码,一般会是 255.255.255.0 这样的形式,或者在 ifconfig 中表示为 netmask 0xffffff00。那么什么是子网掩码?子网掩码为什么一般都是这样的呢?

目前所说的 IP 地址,一般还是指 IPv4 地址。IPv4 是指长度为 32 位(4个字节)的一组数字,为方便记忆及描述,使用十进制表示,并在每个字节之间使用 . 间隔(点分十进制,Dotted decimal notation)。

比如 127.0.0.1 为 IP 地...

查看全文
加载更多
0%