关闭

谈谈我对Harbor认识

Harbor是什么第一次听到这个名字应该是2016年初的时候,那是在容器技术已经兴起的,各个容器管理平台正处于群雄逐鹿的时候,mesos、kubernetes、swarm等被国内外各个厂商用来作为容器的管理系统。这个时候突然冒出一个词harbor,港湾,同事是这样介绍的:几个VMware中国的人搞了一个容器镜像仓库。于是变成为harbor的第一批用户,后来也有幸成为contributor。说了半天,...
阅读(9020) 评论(0)

Docker 时区问题定位以及解决

之前在docker启动的服务中,运行的有java和golang的程序,通常会出现时区问题,下面先看个列子 代码很简单,打印出时间package mainimport ( "fmt" "time" )func main() { fmt.Println(time.Now()) }如果运行机器时间没有问题,当然可以正确输出,先看机器时间date Wed Aug 23 07:50:...
阅读(12228) 评论(0)

迪克斯托最短路径算法

迪克斯托最短路径算法的原理很简单,主要是通过多次紧缩,更新两点之间最短距离 只能是单源无环图 Python实现如下:nodes = ('A', 'B', 'C', 'D', 'E', 'F', 'G') distances = { 'B': {'A': 5, 'D': 1, 'G': 2}, 'A': {'B': 5, 'D': 3, 'E': 12, 'F' :5},...
阅读(43) 评论(0)

golang https server

最简单的https server制作证书openssl genrsa -out server.key 2048 openssl req -new -x509 -key server.key -out server.crt -days 365编写程序package mainimport ( "fmt" "net/http" )func handler(w http.ResponseWr...
阅读(12348) 评论(0)

容器CNI完全解读calico实现(三)

上一篇介绍了bridge的实现,这里介绍一下calico的实现。和上一篇的结构一样的,先看add然后看del,具体添加网卡的代码如下:func cmdAdd(args *skel.CmdArgs) error { // Unmarshal the network config, and perform validation conf := NetConf{} if err :...
阅读(12333) 评论(1)

容器CNI完全解读bridge实现(二)

之前介绍CNI基本操作,现在介绍一个bridge的实现。 它也实现了创建和删除接口。 先看创建接口:func cmdAdd(args *skel.CmdArgs) error { n, cniVersion, err := loadNetConf(args.StdinData) if err != nil { return err } if n.Is...
阅读(12329) 评论(0)

容器CNI完全解读(一)

CNI(Container Network Interface)容器网络接口。CNI只专注解决容器网络连接和容器销毁时的资源释放,提供一套框架,所以CNI可以支持大量不同的网络模式,并且容易实现。 执行CNI需要传入一下变量# 添加或者删除网卡 CNI_COMMAND=ADD/DEL# 容器的ID CNI_CONTAINERID=xxxxxxxxxxxxxxxxxxx# 容器网络空间主机映射路...
阅读(12353) 评论(0)

kubernetes 开发入门之获取pod信息

之前写了很多kubernetes源码阅读的文章,今天介绍一下kubernetes开发入门,kubernetes提供了一个client-go,它里面封装了kubernetes的相关操作,分为两种情况,在集群内核集群之外 先说一下集群内package mainimport ( "fmt" "time" metav1 "k8s.io/apimachinery/pkg/apis/me...
阅读(176) 评论(0)

Elasticsearch入门

Elasticsearch 是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。Lucene 都毫无疑问是当今最先进、性能最高和功能最全的搜索引擎框架。但是 Lucene 只是一个框架,要充分使用它的功能,你需要使用 JAVA 作为开发语言,并且在你的程序中集成 Lucene。更糟的是,你需要深入了解相关知识才能明白它是如何运行的,Lucene 确实非常复杂。 Elas...
阅读(129) 评论(0)

密码学习之基本概念(一)

大家可能都以及有了一个基本的概念,那就是在互联网的时间你们没有什么是绝对保密的。任何密码都会有被破译的一天,只是时间长短问题。那么就针对密码学,我们从头到尾梳理一遍,第一篇我想介绍的是一些基本概念。先说一下为啥要加密吧,这个其实很容易理解,就是消息传输过程被窃取或者篡改,导致安全等问题。下面就是一个邮件被窃听的例子。 对称加密与非对称加密加密和解密的算法合在一起叫做密码算法,秘钥就是现实中的钥匙一...
阅读(106) 评论(0)

kubernetes容器启动详解

如果大家对kubernetes组件以及架构相关分析,可以看我之前的源码阅读,今天只从一个函数分析容器的启动过程,这个函数就是SyncPod,这个是创建kubelet里面最核心的一个函数了。这个方法分为五步:// 1. Compute sandbox and container changes. // 2. Kill pod sandbox if necessary. // 3. Kill an...
阅读(782) 评论(0)

kubernetes 挂载ceph rbd源码解析

kubernetes对于第三方存储本身没有管理,只是使用存储,先看一下首先是存储插件的初始化,在这个方法里面,通过Init方法初始化func (pm *VolumePluginMgr) InitPlugins(plugins []VolumePlugin, host VolumeHost) error { pm.mutex.Lock() defer pm.mutex.Unlock()...
阅读(281) 评论(0)

ceph命令入门

ceph命令入门...
阅读(239) 评论(0)

reed solomon编码实践

如果大家对于raid原理有所了解的话,对于这个reed solomon(里德-所罗门码)编码就不陌生。下简单介绍原理 第一步先通过Vandermonde 矩阵编码,如下这样原始的ABCD-MNOP的数据就被编码了。此时选用的parity格式是2,那么允许丢失2行数据,如下 现在通过对Vandermonde矩阵的逆矩阵相乘得到原始的数据,如下: 这个就是演示了一个数据恢复的原理了。 说完原...
阅读(179) 评论(0)

kubernetes的Service Account和secret

Service AccountService Account概念的引入是基于这样的使用场景:运行在pod里的进程需要调用Kubernetes API以及非Kubernetes API的其它服务。Service Account它并不是给kubernetes集群的用户使用的,而是给pod里面的进程使用的,它为pod提供必要的身份认证。kubectl get sa --all-namespacesNAME...
阅读(1204) 评论(0)
141条 共10页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:2796046次
    • 积分:10212
    • 等级:
    • 排名:第1797名
    • 原创:141篇
    • 转载:0篇
    • 译文:0篇
    • 评论:18条
    文章分类
    最新评论