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