原创 runtime error: invalid memory address or nil defrference goroutine

go routine panic with: invalid memory address or nil defrference goroutine 查看源代碼: 正確的寫法是:    

原创 kubernetes容器底層網絡要求

       容器可能部署在雲上(公有云或者私有云),也可能部署在數據中心物理宿主機上。雲的場景涉及到虛擬網絡,數據中心場景就是傳統的物理網絡,這些環境的網絡架構以及底層技術有着很大的差異,這一節分析下。       不管是雲的場景還是傳

原创 Flannel網絡方案

     這裏講一下Flannel網絡方案,梳理下其工作方式,各個環節配置,以及轉發包流程。     Fannel項目是CoreOS公司主推的容器網絡方案。目前實現的技術有三種,分別是: UDP Vxlan Host-GW 1. UDP方

原创 容器Namespace - 2

      容器通過namespace建立屬於自己的一個相對隔離的環境,從上一篇《容器Namespace - 1》我們知道centos7默認沒有啓用user namespace。              上圖顯示容器的user name

原创 容器Namespace - 1

Namespace是怎麼回事?        Linux namespace,可以理解爲將全局的操作系統資源,邏輯上劃分成功能獨立的單元。如進程號PID,這些個單元有各自獨立的PID空間,還比如網絡棧,這些個獨立的單元有各自獨立的路由表,

原创 非阻塞socket引發的數據不完整

基於Socket的網絡通訊方式,其I/O方式,由下面幾種:       •blocking I/O       •nonblocking I/O       •I/O multiplexing (select and poll) 非阻塞模

原创 go panic (runtime error: slice bounds out of range) 分析

如圖,go程序出現panic 下面來看看這個導致panic的方法:   1)定義了一個nil的切片             var job []string定義的是一個分配了卻未初始化的對象,它的值是nil,上面的方法,如果    

原创 基於spicec的usb redirection技術

1.1 功能框架       Spicec通過usb redirection實現usb 外設訪問,其中涉及usb設備的打開關閉,設備的讀寫,USB traffic的重定向,hypervisor虛擬化US B設備。         1.

原创 k8s環境下etcd分佈式數據庫集羣配置,數據存儲與發現

1. 什麼是etcd?    etcd是一個分佈式一致性鍵值存儲系統,用於共享配置和服務發現,    etcd基於raft協議實現數據同步(K-V數據),集羣由多個節點組成。    raft協議理解起來相比paxos並沒有簡單到哪裏,因爲

原创 Docker容器的capability

linux capability是啥? 資料來源: http://man7.org/linux/man-pages/man7/capabilities.7.html “ For the purpose of performing perm

原创 進程 vs 容器 vs 虛擬機

  進程: 互相隔離的虛擬地址空間 運行中的程序,由操作系統調度執行 共享操作系統管理的資源(內存、網絡棧、I/O) 版本管理、可移植性差 容器:

原创 raw格式的鏡像,如何在網絡傳輸、備份時減少拷貝

     raw 格式的鏡像,不帶matadata,就像一塊空白的磁盤,讀寫效率比qcow2快近10~30%。      本文探討下,在將這個鏡像進行網絡傳輸備份時,如何減少數據拷貝。如果一個近50G大小的文件在網絡中進行傳輸的話,即佔用

原创 socket收包函數 buffer大小的設置

Ip_ssize_t recv(Ip_fd sock, void *buf, Ip_size_t len, int flags); Ip_ssize_t  recvfrom(Ip_fd fd, void *buf, Ip_size_t l

原创 Docker容器及kubernetes網絡

        本文講述下docker容器以及k8s部署環境下,與網絡相關的知識。讀者需要對tcp/ip網絡,交換/路由,網絡虛擬化以及容器技術需要有一定的基礎。   1. 淺談容器網絡         容器container,就是一個被

原创 Calico網絡方案

       Fannel純三層路由的方式實現不同宿主機間的容器通信,這種方式工作的前提是宿主機之間是二層連通的。需要注意的是,宿主機之間二層不連通的情況也是廣泛存在的,這就不得不提到calico網絡方案了。 Calico網絡方案同時解決