「 DEVOPS 」 十二月 10, 2023

SonarQube 项目总览状态导出工具

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

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

  • Size 为 L 且 Duplications 在 5% - 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%