一起来学 Go --(4)常用函数
· ☕ 2 分钟
1. main 和 init 函数 一个 package 里面可以写多个 init 函数,但必须仅包含一个 main 函数。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package main import ( "fmt" ) func init() { fmt.Println("init 1") } func init() { fmt.Println("init 2") } func main() { fmt.Println("main") } // init 1 // init 2 // main 2. defer 函数 Go 不会立即执行 defer 修饰的代码,而是进行标记,在程序退出之前执行。 1 2

Kubernetes 中的 Ceph
· ☕ 4 分钟
1. 不同种类的存储 1.1 文件存储 文件存储是,基于文件的存储。在访问数据时,需要提供相应的查找路径。 适用于,FTP、NFS 等服务。 1.2 块存储 块存储是,将数据拆分成块,并单独存储各个部分。在访问数据时,底层存储软件会将这些分散的数据组装起来。 块存储,通

Kubernetes 之 Volumes
· ☕ 3 分钟
1. Docker 的存储卷 1.2 Docker 中的 Volume Docker Volume 将宿主机目录,挂载到容器中。在容器中修改的文件内容,将会被持久化到宿主机中。即时容器被删除,宿主机中的文件也会被保留。 Docker 使用 /var/lib/docker/volumes/ 存储容器的 Volume。 查看本地 Volume : 1 2 3 4 5 6 7 8 9 tree /var/lib/docker/volumes/ -L 3 /var/lib/docker/volumes/ |-- 714450f353b26b5aa57aa352766c201c0851685e0e28c2e67ae1631f29c465b4 | `-- _data | |-- access.log -> /dev/stdout | `--

Kubernetes 之 Labels、Selectors
· ☕ 2 分钟
1. Labels 1.1 什么是 Labels Labels 是一对关联到对象的键值对。可以在创建对象时,直接添加 Labels ,也可以在创建之后动态修改。 Labels 格式: 1 2 3 4 "labels": { "key1" : "value1", "key2" : "value2" } 格式要求: Key,不能重复 Value,须以字母或数字开头,可以使用字母、数字、连字符、点和下划线,最长63个

开源正在重构商业模式
· ☕ 5 分钟
Adobe 以 16.7 亿美元收购 Magento,微软以 75 亿美元收购 GitHub,IBM 以 340 亿美元收购 Red Hat,开源原来也是一门好生意。本文主要是关于开源的一些记录和思考。 1. 什么是开源 1.1 发展史 1969 年,贝尔实验室将 Unix 代码共享给社区,为开源奠定了重要基础。 1984 年,R