如何构建一个 Java 工程
· ☕ 5 分钟
首先,编译器需要将 .java 文本文件编译为 .class 字节码,然后 JVM 执行 .class 字节码文件。流程并不复杂,本文主要记录一些在编译、运行时的相关过程。 1. 单个文件源代码 新建文本文件 Hello.java 1 2 3 4 5 public class Hello { public static void main(String[] args) { System.out.println("Hello, world!"); } } 编译源码 1 javac Hello.java 执行字节码 1 java Hello 2. 多个源码文件 使用

KubeSpray 安装 Kubernetes 报错 ip in ansible_all_ipv4_addresses
· ☕ 2 分钟
使用 KubeSpray 安装 Kubernetes 时,报错 1 2 3 4 5 6 fatal: [node0]: FAILED! => { "assertion": "ip in ansible_all_ipv4_addresses", "changed": false, "evaluated_to": false, "failed": true } 查看 inventory.ini 配置 1 2 3 4 5 6 7 cat inventory.ini # ## Configure 'ip' variable to bind kubernetes services on a # ## different ip than the default iface # ## We should set etcd_member_name for etcd cluster. The node that is not a etcd member do not need to set the value, or can set the empty string value. [all] node0 ansible_host=139.168.12.4 ip=139.168.12.4 ... 查找报错信息来源 kubespray/extra_playbooks/roles/network_plugin/calico/tasks/pre.yml 1 2 3 4 5 6 7 8 9 ---

基于 Kubernetes 和 Jenkins 搭建自动化测试系统
· ☕ 4 分钟
1. 测试分层 测试的目的是为了验证预期的功能,发现潜在的缺陷。测试增强了交付合格产品的信心,也给敏捷迭代带来了可能。可以说,测试决定了产品的开发进度。 网络模型有七层的 OSI 、四层的 TCP,而开发模式有 MTV、MVC、MVP、MVVM 等。高内聚、低耦

在 Kubernetes 上动态创建 Jenkins Slave
· ☕ 5 分钟
1. Jenkins 的工作模式 Jenkins 是一个单 Master,多 Slave 架构。Master 负责分配任务、管理服务。 Slave 负责执行具体任务。 即使部署了多个 Master,这些 Master 之间依然相互独立,无法协同调度。在高可用的 Jenkins 方案中,需要借助外部的任务分发框架,协调多 Master 之间的调度,比

使用 Jenkins 进行服务拨测
· ☕ 3 分钟
1. 为什么要拨测 对于系统中的一些关键服务,我们通常会配置监控服务。当故障发生时,能够尽快被检测到,发送通知给关注人。当故障发生后,能够有效地追溯故障过程。 拨测是监控系统中的一个重要环节,能够检测服务的网络质量,并提供实时告警。 在公有云上,云厂