1. 程式人生 > >kubernetes 程式碼編譯

kubernetes 程式碼編譯

編譯系統

[root@kubernetes-build kubernetes]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 

編譯的分支

[root@kubernetes-build kubernetes]# git status
# 頭指標分離於 v1.7.6-custom
無檔案要提交,乾淨的工作區

所需的映象

[[email protected] kubernetes]# docker images
REPOSITORY                                       TAG                           IMAGE ID            CREATED             SIZE
docker.io
/debian jessie 25fc9eb3417f 5 months ago 123.4 MB docker.io/busybox latest 6ad733544a63 5 months ago 1.129 MB gcr.io/google-containers/debian-iptables-amd64 v7 88
cbec663b04 9 months ago 44.99 MB gcr.io/google_containers/kube-cross v1.8.3-1 53561898c32d 11 months ago 1.879 GB

所在編譯目錄

[[email protected]-build kubernetes]# pwd
/root/build/src/k8s.io/kubernetes
[[email protected]-build kubernetes]
# ls -l 總用量 880 drwxr-xr-x. 4 root root 73 12月 1 08:05 api drwxr-xr-x. 13 root root 4096 12月 1 08:05 build lrwxrwxrwx. 1 root root 21 12月 1 07:55 BUILD.bazel -> build/root/BUILD.root -rw-r--r--. 1 root root 808363 12月 1 08:05 CHANGELOG.md drwxr-xr-x. 21 root root 4096 4月 21 15:48 cluster drwxr-xr-x. 23 root root 4096 12月 1 08:05 cmd -rw-r--r--. 1 root root 257 12月 1 07:55 code-of-conduct.md -rw-r--r--. 1 root root 290 12月 1 07:55 CONTRIBUTING.md drwxr-xr-x. 11 root root 205 12月 1 08:05 docs drwxr-xr-x. 31 root root 4096 12月 1 08:05 examples drwxr-xr-x. 13 root root 217 12月 1 08:05 federation drwxr-xr-x. 2 root root 55 4月 21 15:48 Godeps drwxr-xr-x. 11 root root 8192 4月 21 15:48 hack drwxr-xr-x. 2 root root 24 12月 1 08:05 hooks -rw-r--r--. 1 root root 6844 12月 1 08:05 labels.yaml -rw-r--r--. 1 root root 11358 12月 1 07:55 LICENSE drwxr-xr-x. 2 root root 4096 12月 1 07:55 logo lrwxrwxrwx. 1 root root 19 12月 1 07:55 Makefile -> build/root/Makefile lrwxrwxrwx. 1 root root 35 12月 1 07:55 Makefile.generated_files -> build/root/Makefile.generated_files -rw-r--r--. 1 root root 275 12月 1 08:05 OWNERS -rw-r--r--. 1 root root 1292 12月 1 08:05 OWNERS_ALIASES drwxr-xr-x. 41 root root 4096 12月 1 08:05 pkg drwxr-xr-x. 4 root root 55 12月 1 08:05 plugin -rw-r--r--. 1 root root 3242 12月 1 08:05 README.md drwxr-xr-x. 3 root root 122 12月 1 08:05 staging drwxr-xr-x. 12 root root 231 12月 1 08:05 test drwxr-xr-x. 7 root root 97 12月 1 08:05 third_party drwxr-xr-x. 4 root root 68 12月 1 08:05 translations -rw-r--r--. 1 root root 11898 12月 1 07:55 Vagrantfile drwxr-xr-x. 12 root root 204 4月 21 15:48 vendor lrwxrwxrwx. 1 root root 20 12月 1 07:55 WORKSPACE -> build/root/WORKSPACE

開始編譯

[[email protected] kubernetes]#  build/run.sh make 
+++ [0421 16:15:08] Verifying Prerequisites....
+++ [0421 16:15:08] Building Docker image kube-build:build-f72bf2804a-5-v1.8.3-1
...
Env for linux/amd64: GOOS=linux GOARCH=amd64 GOROOT=/usr/local/go CGO_ENABLED= CC=
+++ [0421 16:41:36] Placing binaries
+++ [0421 16:42:10] Syncing out of container
+++ [0421 16:42:10] Stopping any currently running rsyncd container
+++ [0421 16:42:10] Starting rsyncd container
+++ [0421 16:42:10] Running rsync
+++ [0421 16:42:37] Stopping any currently running rsyncd container
[[email protected] hyperkube]# docker ps 
CONTAINER ID        IMAGE                                    COMMAND             CREATED             STATUS              PORTS               NAMES
4c201b487d3a        kube-build:build-f72bf2804a-5-v1.8.3-1   "make"              22 minutes ago      Up 22 minutes                           kube-build-f72bf2804a-5-v1.8.3-1

編譯很久,大概要半個多小時

打映象

[[email protected] hyperkube]# pwd
/root/build/src/k8s.io/kubernetes/cluster/images/hyperkube
[[email protected] hyperkube]# make VERSION=1.7.6 ARCH=amd64

cp -r ./* /tmp/hyperkubempQGgn
mkdir -p /tmp/hyperkubempQGgn/cni-bin
cp ../../../_output/dockerized/bin/linux/amd64/hyperkube /tmp/hyperkubempQGgn
chmod a+rx /tmp/hyperkubempQGgn/hyperkube
cd /tmp/hyperkubempQGgn && sed -i.back "s|ARCH||g" Dockerfile
cd /tmp/hyperkubempQGgn && sed -i.back "s|BASEIMAGE|debian:jessie|g" Dockerfile
cd /tmp/hyperkubempQGgn && sed -i.back "s|CACHEBUST|57aaa175-656a-4880-bbc2-ee3c55a7f946|g" Dockerfile
# When building "normally" for amd64, remove the whole line, it has no part in the amd64 image
cd /tmp/hyperkubempQGgn && sed -i "/CROSS_BUILD_/d" Dockerfile
# Download CNI
curl -sSL --retry 5 https://storage.googleapis.com/kubernetes-release/network-plugins/cni-amd64-0799f5732f2a11b329d9e3d51b9c8f2e3759f2ff.tar.gz | tar -xz -C /tmp/hyperkubempQGgn/cni-bin
docker build --pull -t gcr.io/google_containers/hyperkube-amd64:1.7.6 /tmp/hyperkubempQGgn
Sending build context to Docker daemon 267.6 MB
Step 1 : FROM debian:jessie
Trying to pull repository docker.io/library/debian ... 
jessie: Pulling from docker.io/library/debian
3d77ce4481b1: Pull complete 
Digest: sha256:f29d0c98d94d6b2169c740d498091a9a8545fabfa37f2072b43a4361c10064fc
 ---> 4eb8376dc2a3
Step 2 : RUN DEBIAN_FRONTEND=noninteractive apt-get update -y     && DEBIAN_FRONTEND=noninteractive apt-get -yy -q install     iptables     ebtables     ethtool     ca-certificates     conntrack     util-linux     socat     git     jq     nfs-common     glusterfs-client     cifs-utils     && DEBIAN_FRONTEND=noninteractive apt-get upgrade -y     && DEBIAN_FRONTEND=noninteractive apt-get autoremove -y     && DEBIAN_FRONTEND=noninteractive apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # 57aaa175-656a-4880-bbc2-ee3c55a7f946
 ---> Running in b5222dd7c145
Get:1 http://security.debian.org jessie/updates InRelease [94.4 kB]
...
...
...
 ---> 9029eeadb3b1
Removing intermediate container 55c9736c87e5
Successfully built 9029eeadb3b1
rm -rf "/tmp/hyperkubempQGgn"
[root@kubernetes-build hyperkube]# docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
55c9736c87e5        09eb6fed903c        "/bin/sh -c 'apt-get "   2 seconds ago       Up 1 seconds                            ecstatic_bohr

編譯結果

gcr.io/google_containers/hyperkube-amd64:1.7.6 這個映象就是目標映象了

[email protected] hyperkube]# docker images 
REPOSITORY                                       TAG                           IMAGE ID            CREATED             SIZE
gcr.io/google_containers/hyperkube-amd64         1.7.6                         9029eeadb3b1        35 seconds ago      697.6 MB
docker.io/debian                                 jessie                        4eb8376dc2a3        6 weeks ago         126.7 MB
kube-build                                       build-f72bf2804a-5-v1.8.3-1   c8e28704ef8f        7 weeks ago         2.274 GB
docker.io/debian                                 <none>                        25fc9eb3417f        7 months ago        123.4 MB
docker.io/busybox                                latest                        6ad733544a63        7 months ago        1.129 MB
gcr.io/google-containers/debian-iptables-amd64   v7                            88cbec663b04        10 months ago       44.99 MB
gcr.io/google_containers/kube-cross              v1.8.3-1                      53561898c32d        12 months ago       1.879 GB
harbor.enncloud.cn/enncloud/kube-cross           v1.8.3-1                      53561898c32d        12 months ago       1.879 GB

相關推薦

kubernetes 程式碼編譯包 undefined: "k8s.io/kubernetes/pkg/generated/openapi".GetOpenAPIDefinitions 的解決辦法

今天編譯kubernetes某個具體的組建的時候 包了這個錯,報錯詳情如下 ➜ kube-apiserver git:(v1.11.2-custom) ✗ go run apiserver.go # k8s.io/kubernetes/cmd/kube-apiserver/app

kubernetes 程式碼編譯

編譯系統 [root@kubernetes-build kubernetes]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) 編譯的分支 [root@kubern

freeswitch 1.7分支程式碼編譯記錄

1、 執行./bootstrap.sh生成configure等指令碼 2、 openssl 的版本不能太新   也不能太老,最低版本是 1.0.1e,建議只安裝1.0.1e 3、因為open

怎樣學好爬蟲的,選擇自己的程式碼編譯的IDE,爬蟲認知篇(4)

      一個專業的程式猿,必須要有符合自己的IDE環境;這樣,辦公效率會提高了很多。作為一個小白來說,很有必要的。能選專業版本就不選社群版,因為什麼呢?以後啊,你是要拿這個吃飯的!!!!          記

Java 程式碼編譯和執行的整個過程

Java 位元組碼的執行是由 JVM 執行引擎來完成,流程圖如下所示: Java 程式碼編譯和執行的整個過程包含了以下三個重要的機制: Java 原始碼編譯機制 類載入機制 類執行機制 Java 原始碼編譯機制 Java 原始碼編譯由以下三個過程組成: 分析和輸入到符

【視訊】Kubernetes1.12從零開始(六):從程式碼編譯到自動部署

作者: 李佶澳   轉載請保留:原文地址   釋出時間:2018/11/10 16:14:00 說明 kubefromscratch-ansible和kubefromscratch介紹 使用前準備

Java程式碼編譯過程簡述

  程式碼編譯是由Javac編譯器來完成, 這是由.java原始碼檔案轉為 .class二進位制位元組碼檔案的過程。 詳細過程:        原始碼檔案*.java -> 詞法分析器 -> tokens流 -&

Unity 程式碼編譯成dll 更新dll實現熱更程式碼

Unity 程式碼編譯成dll 更新dll實現熱更程式碼 實現流程 程式碼編譯成DLL DLL打包成AssetBundle 載入AssetBundle 載入程式碼程式集 獲取指定類 使用反射賦值 C#程式碼編譯成DLL 使用VS建立類庫專案 模版-&

高通程式碼編譯

1 單獨編譯 LK make aboot –j8 生成在 LINUX/android/out/target/product/msm8909/emmc_appsboot.mbn 2 編譯bootimg make bootimage -j8 生成在 LINUX/andr

【專案知識點彙總】二、JNI程式碼編譯方式camke 和 ndk 方式 -- Android Studio 操作

一、介紹 Android Studio 編譯JNI程式碼有兩種方式:cmake 和 ndk 方式 使用感受: 1、cmake方式會受到所用Android sdk版本的影響,主要是ndk的版本影響,沒有深入去探究原理 2、ndk方式可以跨Android sdk 版本執行

kubernetes原始碼編譯(最新)

假設,你已經擁有正在執行的叢集,相關環境已經配置好。 此處只記錄如何編譯k8s的最新原始碼,用來測試k8s的新功能RunAsGroup。 相關文章後續會更新。。。 1、去github上clone 最新的原始碼,筆者此時是v1.13.0 2、 Branch:

IDEA修改程式碼編譯版本?

控制檯的提示: 這是由於編譯的java版本過低導致的,修改編譯版本的三種方式。 一:如果是maven 工程的 在pom配置檔案中 編寫如下: <properties> <maven.compiler.source>1

go 程式碼編譯顯示 undefined

出錯原因屬於go的多檔案載入問題,採用go run命令執行的時候,需要吧待載入的.go檔案都包含在引數裡面, 正確操作為:  在命令列中:go run *.go 在IDE中,右鍵src,選擇run->go build src

appweb學習記錄---程式碼編譯

1.appweb提供了專用的編譯工具MakeMe,從官網下載編譯即可使用 2.官方demon:https://github.com/embedthis/appweb 3.因為是向arm板移植,所以需要指定編譯器,官網提供的(CC=編譯器 me )的編譯方法並沒有起作用,預設用的還是gcc

Protoc編譯得到的程式碼編譯異常,提示需要匯入DescriptorProtos類

在解決這個問題的時候,於是看過一些博文如下面: https://blog.csdn.net/m_changgong/article/details/7759751 博主在博文中提到:       曾想用下載的原始碼手工編譯jar,但是缺少類Descripto

xmake新增對Cuda程式碼編譯支援

最近研究了下NVIDIA Cuda Toolkit的編譯環境,並且在xmake 2.1.10開發版中,新增了對cuda編譯環境的支援,可以直接編譯*.cu程式碼。 下載安裝好Cuda SDK後,在macosx上回預設安裝到/Developer/NVIDIA

龍芯電腦平臺kubernetes叢集編譯及部署方案

http://ask.loongnix.org/?/article/105  一、環境 作業系統: loongnix 核心: 3.10.84 go版本: go1.9.2 linux/mips64le cfssl(1.2.0) etcd(3.2.12) flannel(0.9.1) k

Linux | GCC如何實現程式碼編譯&&彙編&&連結過程

   正文:       每次我們程式設計師所寫的 程式碼 是給程式設計師看的呢?還是給電腦看的?其實我們所寫的程式碼只是我們程式設計師之間交流的一樣特殊語言,電腦是看不懂的。那麼我們如何實現人機交流呢?這

解決TensorFlow最新程式碼編譯錯誤問題

老是有個習慣,看到開原始碼更新了,總是想更新到最新版,如果置之不理的話,就感覺自己懶惰了或有的不負責任了,這個也可能是一種形式的強迫症吧; 前幾天晚上git pull TensorFlow,完事後也沒去理它,這兩天想起來還是做事有頭有尾吧, 也想把學習重點轉入到TensorFlow,動手玩

SDM670 AMSS程式碼編譯

  Ubuntu16.04系統下AMSS程式碼的編譯 上週高通給的SDM670程式碼剛剛釋放,嘗試進行了modem的編譯工作。 首先是編譯工具的準備,按照高通文件的描述,需要以下工具: 一、工具安裝 1.Snapdragon LLVM Arm toolchain 4.0.3