kubernetes本地集群搭建
本篇將講述kubernetes源碼編譯、目錄結構及本地集群搭建,本篇是基於kubernetes1.9.1。
代碼編譯
$ go get -d k8s.io/kubernetes$ cd $GOPATH/src/k8s.io/kubernetes$ make
Makefile
make all 將編譯目錄中包含main的源文件,生成二進位文件可執行文件;
.PHONY: all all:generated_files hack/make-rules/build.sh $(WHAT)
$(WHAT) -> Directory names to build with "main" package
下面的二進位可執行文件將被編譯
cmd/kube-proxy cmd/kube-apiserver cmd/kube-controller-manager cmd/cloud-controller-manager cmd/kubelet cmd/kubeadm cmd/hyperkube vendor/k8s.io/kube-aggregator vendor/k8s.io/apiextensions-apiserver plugin/cmd/kube-scheduler cluster/gce/gci/mounter
Makefile.generated_files
同時,編譯generator代碼,代碼在vendor/http://k8s.io/code-generator中,vendor/http://k8s.io目錄是staging/src的鏈接;
code-generator -> ../../staging/src/k8s.io/code-generator
staging/src下的項目代碼,將定時發布到各自的代碼庫,為了代碼引用,將在vendor/http://k8s.io下建立鏈接;如下是staging/src下的項目列表:
k8s.io/apik8s.io/apimachineryk8s.io/apiserverk8s.io/client-gok8s.io/kube-aggregatork8s.io/code-generatork8s.io/metricsk8s.io/sample-apiserver
構建鏡像
構建kube-build鏡像,構建相應的鏡像
$ git clone https://github.com/kubernetes/kubernetes$ cd kubernetes$ make quick-release
開發集群搭建
可以使用hack/local-cluster-up.sh or cluster/kube-up.sh
local-cluster-up.sh的說明
- 參數:
- -o 指定編譯後的二進位文件的路徑
- -O _output/bin/hyperkube
- 沒有參數將重新編譯
2. 首先檢查:
- etcd
- container_runtime
- 是否啟動模式kubeletonly:可以單獨啟動kubelet,創建pods從配置文件讀取,不用與apiserver交互;
- cfssl
3. 啟動下面的程序:
- start_etcd
- set_service_accounts
- start_apiserver
- start_controller_manager
- start_kubeproxy
- start_kubedns
- start_kubedashboard
推薦閱讀:
※[資料分享]kubernetes實踐指南
※一周IT博文精選TOP10(第八期)
※容器編排Kubernetes之Heapster源碼解讀
※Istio:Google、IBM 和 Lyft 聯合開源的微服務 Service Mesh 框架
※重磅!Docker宣布擁抱Kubernetes
TAG:Kubernetes |