標籤:

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/k8s.io/code-generator中,vendor/k8s.io目錄是staging/src的鏈接;

code-generator -> ../../staging/src/k8s.io/code-generator

staging/src下的項目代碼,將定時發布到各自的代碼庫,為了代碼引用,將在vendor/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的說明

  1. 參數:
  • -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 |