0%

minikube 介绍

minikube 是 k8s 官方维护的一个单机版的 k8s,通过 minikube 可以很方便的在本地机器上安装一套 k8s 环境用于日常的学习与开发。

安装

环境: 虚拟机中的centos:7操作系统,其它情况可以参考官方文档,主要步骤都是类似的。

阅读全文 »

什么是 SAN

SAN(Subject Alternative Name) 是 SSL 标准 x509 中定义的一个扩展。使用了 SAN 字段的 SSL 证书,可以扩展此证书支持的域名,使得一个证书可以支持多个不同域名的解析。

阅读全文 »

前言

docker 其实是一个 C/S 程序,执行docker命令行其实就是在与docker daemon服务进行通讯,这里主要是记录下linux下的 docker 如何配置可以被远程访问。

服务端配置

linux上 docker 默认是使用unix socket进行通讯的,如果要远程访问是不支持的,对此需要开启 tcp协议,以支持外部访问。

阅读全文 »

介绍

Github Actions是 github 官方推出的一款 CI(持续集成)工具,目前还处于Beta版本,需要申请内测资格才能使用,申请成功之后在自己的代码仓库就可以看到Actions了。

阅读全文 »

前言

当初学习 go 语言的原因之一就是看中了 go 可以直接编译成机器码运行,并且支持跨操作系统的交叉编译,这对开发跨操作系统软件提供了极大的便利,这篇文章目的就是记录下 go 是如何交叉编译的。

交叉编译

go 语言里交叉编译支持非常多的操作系统,可以通过go tool dist list命令来查看支持的操作系统列表。

阅读全文 »

前言

公司的 CI/CD 平台研发要告一个段落了,在此记录一下如何使用 k8s 的客户端工具 kubectl 来进行更新操作的。

更新 Deployment

要知道 kubectl 是不支持 update 操作的,假设有如下Deployment.yaml需要进行部署:

阅读全文 »

前言

go 自带的flag包可以很容易的实现一个命令行程序的参数解析,但是flag包默认只支持几个基本类型的参数解析,如果需要传递slice或者map类型时就要自定义了,这里记录一下。

原理

通过flag.Var()方法传递一个Value接口,即可自定义命令行参数的解析,flag.Value接口:

1
2
3
4
type Value interface {
String() string
Set(string) error
}
阅读全文 »

前言

众所周知 HTTPS 是保证 HTTP 通讯安全的协议,网站启用 HTTPS 可以避免很多安全性的问题, 而且 Chrome 浏览器 从 68 版本开始直接将 HTTP 网站标记为不安全了。

所以把网站升级成 HTTPS 自然是大势所趋,不过启用 HTTPS 有个最重要的问题是 HTTPS 证书要花钱!如果每年额外花钱去购买 HTTPS 证书,那也是一笔很大的开销。那么有没有免费的HTTPS证书可以用呢,查了下资料有个叫Let’s Encrypt的项目就提供了免费签发 HTTPS 证书的服务,这里记录下如何使用Let’s Encrypt来签发证书。

阅读全文 »

前言

websocket 作为现代浏览器的长连接标准,可以很好的解决浏览器与服务器实时通讯的问题,那么在 websocket 出现之前是怎么解决这个问题的呢?首先来回顾一下在此之前浏览器和服务器的”长连接”之路。

回顾

在 websocket 协议出来之前,主要是有三种方向去实现类似 websocket 的功能的。

Flash

flash 支持 socket 通讯功能,基于 flash 可以很简单的实现与服务器建立通讯。

  • 优点:开发简单、兼容性高
  • 缺点:需要浏览器启用 flash 功能,并且逐渐被浏览器淘汰

AJAX Polling

浏览器使用 ajax 去轮询服务器,服务器有内容就返回,轮询也分为短轮询和长轮询。

阅读全文 »

命令格式

1
mvn dependency:get -Dartifact=groupId:artifactId:version:jar:sources

示例

  • 下载jar包

    1
    mvn dependency:get -Dartifact=junit:junit:4.12:jar
  • 下载源码

    1
    mvn dependency:get -Dartifact=junit:junit:4.12:jar:sources