k8s源码编译
#### 构建命令
1. 拉取源码
此处如果下载慢,可以在码云上面添加链接,从码云上面下载代码
git clone
https://gitee.com/sguap/kubernetes.git
2. 切换到指定版本,以V1.9.6为例
git checkout -b remotes/origin/release-1.9.6
3. 安装go环境
tar -C /usr/local -xzf go1.11.5.linux-amd64.tar.gz
编辑/etc/profile文件添加如下:
export GOROOT=/usr/local/go
export GOPATH=/usr/local/gopath
export PATH=$PATH:$GOROOT/bin
验证:
go version
go version go1.11.5 linux/amd64
4. 修改源码
vim kubernetes/staging/src/k8s.io/client-go/util/cert/cert.go
107 NotAfter: time.Now().Add(duration365d * 10).UTC(), #107行
152 NotAfter: time.Now().Add(time.Hour * 24 * 3650), #152行
如上,kubeadm生成的证书时间由一年变更为10年
5. 编译
cd kubernetes/ && make all WHAT=cmd/kubeadm GOFLAGS=-v _output/local/bin/linux/amd64/kubeadm version
cd kubernetes/ && KUBE_BUILD_PLATFORMS=linux/amd64 make WHAT=cmd/kubeadm GOFLAGS=-v GOGCFLAGS="-N -l" 推荐
6. 替换kubeadm**【传送到master-1节点】**
mv /usr/local/sbin/kubeadm{,.bak} 待定 无可移动 可能是覆盖之前备份一下原有数据而已
cp _output/local/bin/linux/amd64/kubeadm /usr/local/sbin/kubeadm
chmod +x /usr/local/sbin/kubeadm
====================================================================
#### 备份数据 在执行上面的操作之前做
7. 在[master-1节点]做就可以
cp -r /etc/kubernetes /tmp/
mkdir /tmp/kubernetes/pki-secrets && cd /tmp/kubernetes/pki-secrets
kubectl get secrets -n kube-system apiserver -oyaml > apiserver.yaml
kubectl get secrets -n kube-system apiserver-kubelet-client -oyaml > apiserver-kubelet-client.yaml
kubectl get secrets -n kube-system front-proxy-client -oyaml > front-proxy-client.yaml
kubectl get secrets -n kube-system scheduler.conf -oyaml > scheduler.yaml
kubectl get secrets -n kube-system controller-manager.conf -oyaml > controller-manager.yaml
mkdir pki-secrets-bak && cp * pki-secrets-bak
====================================================================