关闭

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...
阅读(10) 评论(0)

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

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

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

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

容器CNI完全解读(一)

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

kubernetes 开发入门之获取pod信息

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

Elasticsearch入门

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

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

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

kubernetes容器启动详解

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

kubernetes 挂载ceph rbd源码解析

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

ceph命令入门

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

reed solomon编码实践

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

kubernetes的Service Account和secret

Service AccountService Account概念的引入是基于这样的使用场景:运行在pod里的进程需要调用Kubernetes API以及非Kubernetes API的其它服务。Service Account它并不是给kubernetes集群的用户使用的,而是给pod里面的进程使用的,它为pod提供必要的身份认证。kubectl get sa --all-namespacesNAME...
阅读(508) 评论(0)

我也来谈微服务(二)

上一篇介绍了微服务基本概念,现在深入说一下。服务拆分微服务中的每个服务单元都是粒度很小、功能单一的,这个小自然是相对的,其设计思想是:与其搞一个大而全的的服务体,我们更倾向于小一些的单一服务。那怎么样的服务粒度是适合的呢?当我们在思考服务的边界问题时,需要平衡好内聚和耦合的关系,高内聚低耦合,相比大家已经相当了解了。一方面为了加强内聚可能将某些服务聚合到一起,另一方面为了解耦,需要对某些服务进更细粒...
阅读(133) 评论(0)

kube-proxy细节分析

其实kube-proxy的代码本身并不复杂,只是有个细节容易被大家忽略,大家可能都知道它有轮询的复杂均衡策略,是通过iptables实现的,那它是怎样控制平均转发的呢?iptables有个random的模块支持,那怎样控制权重呢? 看代码,一步一步分析 { tablesNeedServicesChain := []utiliptables.Table{utiliptables...
阅读(196) 评论(0)

我也来谈微服务(一)

微服务这个理念已经不能算新了,最近这两年在互联网行业一直被广泛应用,之前说的微信就是基于微服务的架构设计的,那么是什么是微服务呢? 在说微服务之前,还是说一下一些相关的基本概念。微服务本质服务作为组件,每个组件可以独立部署,每个组件也可以有自己的编程语言;围绕业务组织团队,正如康威定律,一个组织的设计成果,其结构往往对应于这个组织中沟通和组织结构;基于产品构建,更倾向让团队去负责整个服务的生命周期...
阅读(217) 评论(0)
138条 共10页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:2700102次
    • 积分:9446
    • 等级:
    • 排名:第1713名
    • 原创:138篇
    • 转载:0篇
    • 译文:0篇
    • 评论:14条
    文章分类
    最新评论