摘要:代碼分析參考博客源碼分析下載源碼可以從上下載編譯環境代碼下載到任意目錄,這里是設置環境變量,這里為這個目錄名很重要,的包都是以這個為基礎的鏈接到源碼目錄即可通過編譯
[TOC]
minikube代碼分析參考博客: minikube 源碼分析
下載minikube源碼可以從github上下載:
git clone git@github.com:kubernetes/minikube.git編譯
環境:Ubuntu 16.04
# 代碼下載到任意目錄,這里是 /opt/kube/minikube > export GOPATH=~/gol/ # 設置GOPATH環境變量,這里為 ~/gol > mkdir -p ~/gol/src/k8s.io/ # k8s.io這個目錄名很重要,minikube的包都是以這個為基礎的 > cd ~/gol/src/k8s.io/ > ln -s /opt/kube/minikube/ minikube # 鏈接到源碼目錄即可 > make # 通過Makefile編譯 CGO_ENABLED=1 go build -tags static_build -ldflags="-X k8s.io/minikube/vendor/k8s.io/kubernetes/pkg/version.gitCommit=d6f433224538d4f9ca2f7ae19b252e6fcb66a3ae -X k8s.io/minikube/vendor/k8s.io/kubernetes/pkg/version.gitVersion=v1.6.4 -X k8s.io/minikube/vendor/k8s.io/kubernetes/pkg/version.gitTreeState=clean -X k8s.io/minikube/vendor/k8s.io/kubernetes/pkg/version.buildDate=2017-07-06T18:19:23Z -X k8s.io/minikube/pkg/version.version=v0.20.0 -X k8s.io/minikube/pkg/version.isoVersion=v0.20.0 -X k8s.io/minikube/pkg/version.isoPath=minikube/iso -s -w -extldflags "-static"" -o ./out/localkube ./cmd/localkube GOBIN=/home/stack/gol//bin go get github.com/jteeuwen/go-bindata/... /home/stack/gol//bin/go-bindata -nomemcopy -o pkg/minikube/assets/assets.go -pkg assets ./out/localkube deploy/addons/... CGO_ENABLED=1 GOARCH=amd64 GOOS=linux go build --installsuffix cgo -ldflags="-X k8s.io/minikube/pkg/version.version=v0.20.0 -X k8s.io/minikube/pkg/version.isoVersion=v0.20.0 -X k8s.io/minikube/pkg/version.isoPath=minikube/iso -X k8s.io/minikube/vendor/k8s.io/kubernetes/pkg/version.gitCommit=d6f433224538d4f9ca2f7ae19b252e6fcb66a3ae -X k8s.io/minikube/vendor/k8s.io/kubernetes/pkg/version.gitVersion=v1.6.4 -X k8s.io/minikube/vendor/k8s.io/kubernetes/pkg/version.gitTreeState=clean -X k8s.io/minikube/vendor/k8s.io/kubernetes/pkg/version.buildDate=2017-07-06T18:19:23Z" -a -o out/minikube-linux-amd64 k8s.io/minikube/cmd/minikube cp ./out/minikube-linux-amd64 ./out/minikube
輸出信息要點:
minikube 0.20.0默認使用kubernetes v1.6.4
從https://github.com/jteeuwen/go-bindata/下載了一個go-bindata
編譯的文件在out目錄下,體積都不小:
> ls -lh minikube/out total 267M -rwxrwxr-x 1 stack stack 116M 7月 6 18:33 localkube* -rwxrwxr-x 1 stack stack 76M 7月 6 18:35 minikube* -rwxrwxr-x 1 stack stack 76M 7月 6 18:35 minikube-linux-amd64*文件
cmd目錄下是localkube和minikube程序的入口
cmd/minikube/cmd下是所有minikube子命令的實現,每個文件對應一個子命令
使用cobra庫來支持形如git的參數處理
Go項目一覽
項目 | 描述 |
---|---|
Kubernetes | 十分鐘帶你理解Kubernetes核心概念 |
Hugo | 使用hugo搭建個人博客站點 |
rkt | 三年后,我們從 Docker 轉到了 RKT |
etcd | etcd是什么東西?它和ZooKeeper有什么區別? |
Moby | 對于Docker改名Moby ,大家怎么看? |
OpenShift | OpenShift 3,紅帽將容器的力量交給了開發者 |
Delve | Golang / Go調試工具delve |
GopherJS | 將GO編繹成JavaScript,用GO語言來寫前端代碼 |
CockroachDB | CockroachDB —— 像小強一樣堅不可摧的數據庫 |
Bleve | full-text search and indexing for Go |
ProjectAtomic | 容器OS的選擇與使用 |
GiantSwarm | 容器生態圈項目一覽 |
Nanopack | The ideal platform for developers |
rclone | Rclone: 超好用的網盤 / VPS 數據同步、備份工具 |
參考文檔:minikube/docs/contributors/updating_kubernetes.md
> ~/gol/src/k8s.io/minikube # 先進入到 minikube 代碼目錄 > go get github.com/tools/godep # 需要godep,默認下載到$GOPATH/bin > ./hack/godeps/godep-restore.sh # 下載KubernetesGo語言簡介 3 - 數據類型
Go的類型分為四類:
基本類型: 數字、字符串和布爾值
聚合類型: 數組和結構體
引用類型: 指針、列表、字典、函數和管道
接口類型: 接口
Go的數學、邏輯和比較運算符跟C相同,優先級也一樣
不同類型之間要做顯式轉換,mismatched types int32 and int16
任何類型都支持轉換操作T(x)
rune是支持Unicode的單個字符類型
float類型通過math包支持IEEE 754規范(一如既往的詭異)
原書給了一個{{BANNED}}的例子演示生成三維曲面,用go get gopl.io/ch3/surface/可以拿下來看看...(書中還附帶講了一下三維空間和等軸投影,這樣真的適合用在基礎語言教程里么...TLTD;)
支持復數(例程是用代碼生成mandelbrot分形...這是圖形學的書吧)
bool類型和數字類型0, 1之間沒有隱式轉換
字符串是字節的集合,可以包含0,默認UTF-8編碼
字符串支持切分,如s[:5], s[7:], s[:],跟Python類似
轉義字符跟C一樣,解釋也一樣 ...
`` 反引號表示原義字符,沒有轉義,可以用于正則、模板等
bytes, strings, strconv, unicode是字符串操作特別重要的四個包
常量支持布爾、字符串和數字
iota是常量生成器,初始為0,其余每一項遞增
type Weekday int const ( Sunday Weekday = iota // 0 Monday // 1 Tuesday // 2 ... Wednesday Thursday Friday Saturday )
常量可以無類型,運算時適配當前類型
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/32567.html
摘要:閑言最近需要看簡寫為和相關的技術資料,順帶學一下語言。語言始于年月的三個工程師,年月正式宣布。項目包括語言工具和標準庫,以及一切從簡的理念。語言本身成熟且穩定,并且保證向下兼容。 [TOC] 閑言 最近需要看Kubernetes(簡寫為k8s)和docker相關的技術資料,順帶學一下Go語言。 嘗試了通過minikube部署遇到鏡像下載和網絡配置等等各種問題。雖然k8s很火熱,但是資料...
摘要:打開終端執行,再開一個終端輸入輸出,則表示該服務沒有問題。將服務打包成鏡像,然后將鏡像實例化并運行,方便部署。此處以我的賬號為例,需要推送到你自己的賬號。是一種自動化運維工具,本文主要需要了解,,三個概念。至此成功使用部署應用。 本文將以一個簡單的示例演示如何使用 Docker 與 Kubernetes 部署應用上線。 Http Service 首先使用 Go 語言搭建一個簡單的 Ht...
摘要:打開終端執行,再開一個終端輸入輸出,則表示該服務沒有問題。將服務打包成鏡像,然后將鏡像實例化并運行,方便部署。此處以我的賬號為例,需要推送到你自己的賬號。是一種自動化運維工具,本文主要需要了解,,三個概念。至此成功使用部署應用。 本文將以一個簡單的示例演示如何使用 Docker 與 Kubernetes 部署應用上線。 Http Service 首先使用 Go 語言搭建一個簡單的 Ht...
閱讀 3416·2021-10-08 10:15
閱讀 5642·2021-09-23 11:56
閱讀 1480·2019-08-30 15:55
閱讀 458·2019-08-29 16:05
閱讀 2740·2019-08-29 12:34
閱讀 2052·2019-08-29 12:18
閱讀 927·2019-08-26 12:02
閱讀 1662·2019-08-26 12:00