目录
3、执行./docker-build.sh 编译成rpm 包.
首先, 直接通过yum 安装k8s , 遇到最大的问题就是需要翻墙,毕竟是Google 服务器。个人使用蓝灯翻墙之后,发现能访问Google ,但是不能通过linux 命令进行下载,网上查找了些资料,我们可以通过kubernetes release制作k8s 的kubelet、kubeadm、kubectl等rpm包。
本文制作的目前最新版本的K8s 1.14.1版本
操作系统环境:Centos 7
一、准备工作
1、git clone k8s release 项目.
[root@k8s k8s]# git clone https://github.com/kubernetes/release.git
2、下载 对应的K8s版本
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.14.md
因我是Centos7 下载 如下版本.
解压之后, 得到如下文件.
然后再下载如下两个文件:
https://dl.k8s.io/network-plugins/cni-plugins-amd64-v0.7.5.tgz
将以上文件复制到 release/rpm 目录下
[root@k8s rpm]# ll
total 265536
-rw-r--r--. 1 root root 900 Apr 10 17:34 10-kubeadm-post-1.11.conf
-rw-r--r--. 1 root root 1016 Apr 10 17:34 10-kubeadm-post-1.8.conf
-rw-r--r--. 1 root root 856 Apr 10 17:34 10-kubeadm-pre-1.8.conf
-rw-r--r--. 1 root root 17109361 Apr 11 10:37 cni-plugins-amd64-v0.7.5.tgz
-rw-r--r--. 1 root root 7411209 Apr 11 10:37 crictl-v1.12.0-linux-amd64.tar.gz
-rwxr-xr-x. 1 root root 408 Apr 10 17:34 docker-build.sh
-rw-r--r--. 1 root root 244 Apr 10 17:34 Dockerfile
-rwxr-xr-x. 1 root root 984 Apr 10 21:09 entry.sh
-rw-r--r--. 1 root root 39587104 Apr 11 10:37 kubeadm
-rw-r--r--. 1 root root 43115328 Apr 11 10:37 kubectl
-rw-r--r--. 1 root root 127940544 Apr 11 10:37 kubelet
-rw-r--r--. 1 root root 20 Apr 10 17:34 kubelet.env
-rw-r--r--. 1 root root 222 Apr 10 17:34 kubelet.service
-rw-r--r--. 1 root root 9001 Apr 11 10:41 kubelet.spec
-rw-r--r--. 1 root root 36685440 Apr 11 10:37 kube-proxy
二、 制作RPM 包
1、修改entry.sh 文件
注释其他类型,只保留amd64/x86_64 .
2、修改kubelet.spec
修改KUBE_MAJOR、KUBE_MINOR、KUBE_PATCH 为我们需要编译的版本.
修改SOURCE0-7 的URL 地址, 改为引入当前目录的文件,即第一步下载的kubeadm等文件.
3、执行./docker-build.sh 编译成rpm 包.
[root@k8s rpm]# ./docker-build.sh
Sending build context to Docker daemon 271.9MB
Step 1/8 : FROM fedora:24
---> 971e0f0a8b71
Step 2/8 : MAINTAINER Devan Goodwin <[email protected]>
---> Using cache
---> d18891905304
Step 3/8 : RUN dnf install -y rpm-build rpmdevtools createrepo && dnf clean all
---> Using cache
---> 649d23b67339
......
.....
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
----------------------------------------
RPMs written to:
cri-tools-1.12.0-0.x86_64.rpm kubectl-1.14.1-0.x86_64.rpm kubernetes-cni-0.7.5-0.x86_64.rpm
kubeadm-1.14.1-0.x86_64.rpm kubelet-1.14.1-0.x86_64.rpm repodata
Yum repodata written to:
0b7b108295b3378dc8ca5fc11d56d39e24534e9d070108abac8465f9c750e0d7-filelists.xml.gz
4d46219feba6d8b78df772c409fb3b2b221cb1205fba882c79a224080e237ddb-other.xml.gz
9c32575b02baa6f20e75cb10447870ac9503618cf3f245a88a90cddfe8987a1f-other.sqlite.bz2
ceb0b0ec9e5d08a1b834085ff863296633e9b6094a140d17fde047e6122747ac-primary.xml.gz
e08a5a5b5161da93f65a890ba2c188391d2b209015fe281fe552077bf7b47f53-filelists.sqlite.bz2
e6dfa64e4d24f8249f27e44231021fcd8a19897822fcd179c069d993209031de-primary.sqlite.bz2
repomd.xml
进入release/rpm/output/x86_64 查看生成的rpm 包.
至此,我们已经完成了 k8s RPM包的制作.