kubernetesのhyperkube方式インストールドキュメント-コードコンパイル(一)
31585 ワード
システム
docker gitのインストール
cloneコード
ブランチの切り替え
コンパイル
コンパイル時に生成されるミラーおよび開始コンテナ
コンパイル完了時に生成されたバイナリファイルは
ミラーリングhyperkubeミラーリング
生成されたミラー
このときはtag対応のミラーウェアハウスを打つことができます.次はミラーウェアハウスを建てることです.参考:hyperkube
[root@kubernetes-build k8s.io]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
docker gitのインストール
yum install docker git -y
cloneコード
[root@kubernetes-build k8s.io]# git clone https://github.com/kubernetes/kubernetes.git
'kubernetes'...
remote: Counting objects: 779809, done.
remote: Compressing objects: 100% (155/155), done.
remote: Total 779809 (delta 87), reused 61 (delta 61), pack-reused 779593
: 100% (779809/779809), 554.88 MiB | 1.61 MiB/s, done.
delta : 100% (533318/533318), done.
Checking out files: 100% (16584/16584), done.
ブランチの切り替え
[root@kubernetes-build kubernetes]# git checkout v1.10.4
Note: checking out 'v1.10.4'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b new_branch_name
HEAD 5ca598b... Merge pull request #64631 from msau42/automated-cherry-pick-of-#64351-upstream-release-1.10
[root@kubernetes-build kubernetes]# git checkout v1.10.4
HEAD 5ca598b... Merge pull request #64631 from msau42/automated-cherry-pick-of-#64351-upstream-release-1.10
[root@kubernetes-build kubernetes]# git status
# v1.10.4
,
コンパイル
[root@kubernetes-build kubernetes]# ./build/run.sh make
+++ [0616 11:33:29] Verifying Prerequisites....
+++ [0616 11:33:29] Building Docker image kube-build:build-7dd30f62df-5-v1.9.3-2
...
...
Go version: go version go1.9.3 linux/amd64
+++ [0616 11:39:02] Building the toolchain targets:
k8s.io/kubernetes/hack/cmd/teststale
k8s.io/kubernetes/vendor/github.com/jteeuwen/go-bindata/go-bindata
+++ [0616 11:39:02] Generating bindata:
test/e2e/generated/gobindata_util.go
No changes in generated bindata file: test/e2e/generated/bindata.go
No changes in generated bindata file: pkg/generated/bindata.go
+++ [0616 11:39:03] Building go targets for linux/amd64:
cmd/kube-proxy
cmd/kube-apiserver
cmd/kube-controller-manager
cmd/cloud-controller-manager
cmd/kubelet
cmd/kubeadm
cmd/hyperkube
cmd/kube-scheduler
vendor/k8s.io/kube-aggregator
vendor/k8s.io/apiextensions-apiserver
cluster/gce/gci/mounter
cmd/kubectl
cmd/gendocs
cmd/genkubedocs
cmd/genman
cmd/genyaml
cmd/genswaggertypedocs
cmd/linkcheck
vendor/github.com/onsi/ginkgo/ginkgo
test/e2e/e2e.test
cmd/kubemark
vendor/github.com/onsi/ginkgo/ginkgo
test/e2e_node/e2e_node.test
Env for linux/amd64: GOOS=linux GOARCH=amd64 GOROOT=/usr/local/go CGO_ENABLED= CC=
...
...
Env for linux/amd64: GOOS=linux GOARCH=amd64 GOROOT=/usr/local/go CGO_ENABLED= CC=
+++ [0616 12:04:02] Placing binaries
+++ [0616 12:04:34] Syncing out of container
+++ [0616 12:04:34] Stopping any currently running rsyncd container
+++ [0616 12:04:34] Starting rsyncd container
+++ [0616 12:04:35] Running rsync
+++ [0616 12:05:14] Stopping any currently running rsyncd container
コンパイル時に生成されるミラーおよび開始コンテナ
[root@kubernetes-build kubernetes]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
kube-build build-7dd30f62df-5-v1.9.3-2 2d1a97d8f7fa 4 minutes ago 2.19 GB
gcr.io/google_containers/hyperkube-amd64 1.7.6 9029eeadb3b1 35 hours ago 697.6 MB
docker.io/debian jessie 4eb8376dc2a3 6 weeks ago 126.7 MB
k8s.gcr.io/kube-cross v1.9.3-2 32285b178de2 4 months ago 1.743 GB
[root@kubernetes-build kubernetes]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
097a29cd2847 kube-build:build-7dd30f62df-5-v1.9.3-2 "make" 25 minutes ago Up 25 minutes kube-build-7dd30f62df-5-v1.9.3-2
コンパイル完了時に生成されたバイナリファイルは
_output
フォルダにあります[root@kubernetes-build kubernetes]# ls -l
344
drwxr-xr-x. 4 root root 73 6 16 11:32 api
drwxr-xr-x. 13 root root 4096 6 16 11:32 build
lrwxrwxrwx. 1 root root 21 6 16 11:10 BUILD.bazel -> build/root/BUILD.root
-rw-r--r--. 1 root root 268499 6 16 11:32 CHANGELOG-1.10.md
-rw-r--r--. 1 root root 994 6 16 11:32 CHANGELOG.md
drwxr-xr-x. 13 root root 4096 6 16 11:32 cluster
drwxr-xr-x. 22 root root 4096 6 16 11:10 cmd
-rw-r--r--. 1 root root 148 6 16 11:10 code-of-conduct.md
-rw-r--r--. 1 root root 493 6 16 11:10 CONTRIBUTING.md
drwxr-xr-x. 7 root root 131 6 16 11:32 docs
drwxr-xr-x. 34 root root 4096 6 16 11:32 examples
drwxr-xr-x. 2 root root 69 6 16 11:32 Godeps
drwxr-xr-x. 11 root root 4096 6 16 11:32 hack
-rw-r--r--. 1 root root 7604 6 16 11:10 labels.yaml
-rw-r--r--. 1 root root 11358 6 16 11:10 LICENSE
drwxr-xr-x. 2 root root 4096 6 16 11:10 logo
lrwxrwxrwx. 1 root root 19 6 16 11:10 Makefile -> build/root/Makefile
lrwxrwxrwx. 1 root root 35 6 16 11:10 Makefile.generated_files -> build/root/Makefile.generated_files
drwxr-xr-x. 4 root root 38 6 16 12:04 _output
-rw-r--r--. 1 root root 279 6 16 11:32 OWNERS
-rw-r--r--. 1 root root 3650 6 16 11:32 OWNERS_ALIASES
drwxr-xr-x. 34 root root 4096 6 16 11:32 pkg
drwxr-xr-x. 3 root root 44 6 16 11:32 plugin
-rw-r--r--. 1 root root 3329 6 16 11:10 README.md
drwxr-xr-x. 3 root root 61 6 16 11:32 staging
-rw-r--r--. 1 root root 1376 6 16 11:10 SUPPORT.md
drwxr-xr-x. 13 root root 245 6 16 11:32 test
drwxr-xr-x. 7 root root 129 6 16 11:32 third_party
drwxr-xr-x. 4 root root 82 6 16 11:32 translations
drwxr-xr-x. 11 root root 199 6 16 11:32 vendor
lrwxrwxrwx. 1 root root 20 6 16 11:10 WORKSPACE -> build/root/WORKSPACE
ミラーリングhyperkubeミラーリング
[root@kubernetes-build kubernetes]# cd cluster/images/hyperkube/
[root@kubernetes-build hyperkube]# make build VERSION=1.10.4 ARCH=amd64
...
...
Digest: sha256:cc782ed16599000ca4c85d47ec6264753747ae1e77520894dca84b104a7621e2
---> 7812d248bfc9
Step 2 : RUN ln -s /hyperkube /apiserver && ln -s /hyperkube /controller-manager && ln -s /hyperkube /kubectl && ln -s /hyperkube /kubelet && ln -s /hyperkube /proxy && ln -s /hyperkube /scheduler && ln -s /hyperkube /aggregator && ln -s /hyperkube /usr/local/bin/kube-apiserver && ln -s /hyperkube /usr/local/bin/kube-controller-manager && ln -s /hyperkube /usr/local/bin/kubectl && ln -s /hyperkube /usr/local/bin/kubelet && ln -s /hyperkube /usr/local/bin/kube-proxy && ln -s /hyperkube /usr/local/bin/kube-scheduler
---> Running in 0744f54015d6
---> a5cbad5c6b03
Removing intermediate container 0744f54015d6
Step 3 : COPY hyperkube /hyperkube
---> 25e37d2cd8ec
Removing intermediate container d4a1aa86b79a
Successfully built 25e37d2cd8ec
rm -rf "/tmp/hyperkubeVQKZAU"
生成されたミラー
[root@kubernetes-build hyperkube]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
staging-k8s.gcr.io/hyperkube-amd64 1.10.4 25e37d2cd8ec About a minute ago 664.1 MB
kube-build build-7dd30f62df-5-v1.9.3-2 2d1a97d8f7fa 35 minutes ago 2.19 GB
このときはtag対応のミラーウェアハウスを打つことができます.次はミラーウェアハウスを建てることです.参考:hyperkube