Ubuntu16.04手动部署Kubernetes(2)——Flannel网络部署

在《Ubuntu16.04手动部署Kubernetes(1)——Master和Node部署》一文中,我们已经介绍了Kubernetes的Master和Node的手动部署,而且最后执行kubectl get node也成功看到了一个Node节点。本文接着上文继续部署,这次要部署的是网络。回想一下,Kubernetes有一个非常重要的特性就是任意Pod间都可以通过网络进行彼此访问,不管这些Pod是否在同一个Node上面。Flannel介绍我们知道docker默认的网络模型是创建一个虚拟网桥docker0,然后没创建一个容器,就创建一个虚拟的veth pair,其中一端关联到docker0这个网桥上

Ubuntu16.04手动部署Kubernetes(1)——Master和Node部署

之前在《Kubernetes初体验》中我们使用Minikube快速体验了一把Kubernetes,然后在《Kubernetes架构及资源关系简单总结》一文中我们又简单介绍了Kubernetes的框架以及Kubernetes中的一些关键术语和概念,或者称之为资源、对象。本文主要讲Kubernetes的一种原始部署方式。Kubernetes从开发至今,其部署方式已经变得越来越简单。常见的有三种:最简单的就是使用Minikube方式。下载一个二进制文件即可拥有一个单机版的Kubernetes,而且支持各个平台。从源码安装。这种方式也是简单的进行一些配置,然后执行kube-up.sh就可以部署一个Ku

Golang http server代码原理学习

本文基于Go 1.7.1,所有列的Go标准库的代码均来自于go/src/net/http/server.go文件。代码列的有点多,感觉有点乱,但是感觉代码列不全对于想看代码的人又难受。好吧,其实是写的乱。看起来需要耐心...拨云见雾Go中要实现一个简单的Web server非常的简单:package main import ( "io" "log" "net/http" ) func main() { http.HandleFunc("/", HelloServer)

Kubernetes架构及资源关系简单总结

之前在《Kubernetes初体验》一文中已经简单介绍了Kubernetes的架构和一些基本概念,最近接着学习了一下,觉得Kubernetes的这些资源(或者称为对象)对于理解和学习Kubernetes非常重要,而且因为比较多,所以决定写篇博客来做一下总结,加深记忆。当然,本文不会对每个资源做深入描述,因为每个资源要介绍的比较清楚都需要一篇长篇大论了。后面我会分篇详细介绍每一个资源,当然最好的了解方式还是去看Kubernetes官方对于这些资源的描述:https://kubernetes.io/docs/reference。本文的目标有两个:对Kubernetes的架构做一个简单的介绍。对Ku

编译Mac系统下无流量限制的蓝灯

蓝灯作为一个科学上网工具还是不错的,特别是可以免费试用,不过每个月有800MB流量的限制,对于大多数不看视频的人来说够用了。偶尔看到ilanyu的博客《lantern编译过程》里提到,从源码编译的没有流量限制,于是便想试一试。博客里面讲到了如何编译Linux和Windows版的,但正好我用的是Mac...,只能自己动手,丰衣足食了。ilanyu是通过docker镜像来编译的,这样可以省去搭建环境的麻烦。但是我试了一下,镜像里面应该没有安装编译Mac版依赖的一些东西(这些依赖写在Makefile里面),然后我在容器里面去安装的时候,一直下载不下来,所以我就索性直接在自己本地编译了。所以主要是一些

Go并发模式——Context

Context介绍在Go服务器程序中,每个请求都会有一个goroutine去处理。然而,处理程序往往还需要创建额外的goroutine去访问后端资源,比如数据库、RPC服务等。由于这些goroutine都是在处理同一个请求,所以它们往往需要访问一些共享的资源,比如用户身份信息、认证token、请求截止时间等。而且如果请求超时或者被取消后,所有的goroutine都应该马上退出并且释放相关的资源。Go提供了一个Context包专门用来解决这个问题,本文我们来介绍Context包的基本使用方法。接口了解PostgreSQL源码的应该知道,PG里面也有一个Context,专门用来管理内存等资源,Go

如何让docker daemon默认支持http的docker registry

搭建过docker registry的人都知道,docker默认不支持http的registry,如果一定要支持,就需要配置--insecure-registry选项才可以,而且配置完以后需要重启docker daemon。本文从源代码角度分析docker daemon是如何限制的,以及如何去掉这个限制。我们搭建了一个私有的镜像仓库,地址是http://222.222.222.222,没有配置https。因为要支持http,需要配置docker daemon,所以基本可以判断是docker daemon做的限制。我们通过docker login登录http://222.222.222.222时

从源码编译docker

如果你改docker的源码,那就必然需要自己从源码去编译docker,本文介绍如何从源码编译docker。编译docker的过程很复杂,但是庆幸的是docker官方已经将这个复杂的过程简单化了,它提供了一个Makefile和Dockerfile,将复杂的操作都封装起来了,对于我们可以不去太关注里面的细节。本文主要介绍一下编译流程以及对于中国用户来说如何解决一些源下载慢甚至下载不了的问题。硬件环境。编译docker的过程是挺耗费内存的,如果你使用虚拟机的话,建议至少分2GB的内存。我这里使用的OS是Ubuntu 14.04,硬件是8核16GB的服务器。安装docker。因为docker是在容器里
|