源码编译Kubeadm二进制文件
kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实践做调整,通过实验kubeadm可以学习到Kubernetes官方在集群配置上一些新的最佳实践。
最近发布的Kubernetes 1.15中,kubeadm对HA集群的配置已经达到beta可用,说明kubeadm距离生产环境中可用的距离越来越近了。
受以下消息影响,决定作一次K8S升级的探索。
漏洞详细信息
- Netflix最近宣布了一项安全公告,该公告确定了几个可能影响HTTP/2协议服务器实现的拒绝服务攻击向量,并发布了8个CVE。[1]
- Go受两个漏洞(CVE-2019-9512和CVE-2019-9514)的影响,因此服务于HTTP/2流量(including / healthz)的Kubernetes组件也会受到影响。[2]
- 这些漏洞允许不受信任的客户端分配无限量的内存,直到服务器崩溃。产品安全委员会已将这组漏洞分配为CVSS评分为7.5 [3]
如何解决漏洞?
Go发布了go1.12.8和go1.11.13版本,我们也发布了使用修补版本的Go构建的以下版本的Kubernetes。
- Kubernetes
v1.15.3 - go1.12.9 - Kubernetes
v1.14.6 - go1.12.9 - Kubernetes
v1.13.10 - go1.11.13
升级到上面列出的Kubernetes修补版本。
本文档以kubernetes 1.14.6作为升级目标。由于kubeadm历来是手工下载升级,籍由此次机会,顺便更改证书过期时间,并手工编译成二进制文件。
一,生成编译镜像
1,Dockerfile内容(注意,一定要下载go1.12.9以后版本,才修复了漏洞):
FROM centos:centos7.6.1811 MAINTAINER 4k ENV GOROOT /usr/local/go ENV GOPATH /usr/local/gopath ENV PATH /usr/local/go/bin:$PATH RUN yum install rpm-build which where rsync gcc gcc-c++ automake autoconf libtool make -y \ && curl -L https://studygolang.com/dl/golang/go1.12.9.linux-amd64.tar.gz | tar zxvf - -C /usr/local
2,生成镜像
docker build –t harbor.xxx.cn/4k/build-k8s:centos--k8s- .
二,下载github源码
Github下载地址(注意linux下载tar.gz包,不要下载zip包):
wget https://github.com/kubernetes/kubernetes/releases/download/v1.14.6/kubernetes.tar.gz
三,镜像挂载目录
1,运行docker run 命令,将生成的镜像和下载的源码解压挂载
docker run -it --rm –v \ /build-k8s/kubernetes-:/usr/local/gopath/src/k8s.io/kubernetes \ harbor.xxx.cn/build-k8s:centos--k8s-
四,编译二进制
1,进入容器,在k8s项目根目录下运行如下命令,编译Kubeadm
KUBE_BUILD_PLATFORMS=linux/amd64 make all WHAT=cmd/kubeadm GOFLAGS=-v GOGCFLAGS="-N -l"
五,kubeadm二进制验证
1,运行命令进行验证
./kubeadm version kubeadm version: &version.Info{Major:", GitVersion:"v1.14.6", GitCommit:"96fac5cd13a5dc064f7d9f4f23030a6aeface6cc", GitTreeState:"archive", BuildDate:"2019-09-05T02:41:12Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
2,将此kubeadm二进制下载保存,用于将来升级。
六,kubeadm修改记录(证书100年过期)
1,kubernetes-1.14.6\staging\src\k8s.io\client-go\util\cert\cert.go
2,kubernetes-1.14.6\cmd\kubeadm\app\util\pkiutil\pki_helpers.go
源码编译Kubeadm二进制文件的更多相关文章
- 在Linux下源码编译安装GreatSQL/MySQL
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 本 ...
- Go源码编译安装
参考文档1:https://www.cnblogs.com/majianguo/p/7258975.html 参考文档2:http://www.loongson.cn/news/company/456 ...
- nginx源码编译以及源码编译过程中遇到的问题
本文主要讲nginx安装以及安装过程中遇到的问题. 谈到nginx 必须聊聊它的起源和发展. nginx是由俄罗斯工程师Igor Sysoev 用C语言开发的一个免费开源的Web服务器软件,于2004 ...
- linux下c语言源码编译
一.源码编译过程 源码 ---> 预处理 ---> 编译 ---> 汇编 ---> 链接 --->执行 我们可以把它分为三部分来完成: ./configure ...
- Centos7通过yum跟源码编译安装Nginx
源码编译安装 http://nginx.org/en/download.html 到官网下载,然后用XFTP上传到root目录 把文件解压出来 tar -zxvf nginx-1.16.0.tar.g ...
- Httpd服务进阶知识-LAMP源码编译安装
Httpd服务进阶知识-LAMP源码编译安装 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必大家都知道,动态资源交给fastcgi程序处理,静态资源依旧由httpd服务器处理 ...
- 如何顺利完成Kubernetes源码编译?
为什么要编译源码 ? Kubernetes是一个非常棒的容器集群管理平台.通常情况下,我们并不需要修改K8S代码即可直接使用.但如果,我们在环境中发现了某个问题/缺陷,或按照特定业务需求需要修改K8S ...
- centos7.6环境zabbix3.2源码编译安装版升级到zabbix4.0长期支持版
zabbix3.2源码编译安装版升级到zabbix4.0长期支持版 项目需求: .2版本不再支持,想升级成4.0的长期支持版 环境介绍: zabbix服务端是编译安装的,数据库和web在一台机器上 整 ...
- Dubbo入门到精通学习笔记(十九):MySQL源码编译安装、MySQL主从复制的配置
文章目录 MySQL 源码编译安装(CentOS-6.6+MySQL-5.6) 一.服务器配置: 二.源码安装 MySQL5.6.26: MySQL主从复制的配置 环境 依赖课程 MySQL 主从复制 ...
随机推荐
- Linux安装包生成工具:checkinstall、makeself
关键词:checkinstall.dpkg.deb/rpm.makeself等等. checkinstall记录make install安装的文件,生成相应的(Slackware/RPM/Debian ...
- I2C协议学习笔记
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/wzt_007/article/detai ...
- CodeForces 862B(思维+二分图染色)
题意 https://vjudge.net/problem/CodeForces-862B 给出n个点,n-1条边,求再最多再添加多少边使得二分图的性质成立 思路 因为题目是求的最多添加多少边,所以可 ...
- MATLAB实例:Munkres指派算法
MATLAB实例:Munkres指派算法 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. 指派问题陈述 指派问题涉及将机器分配给任务,将工人分配给 ...
- wbr 标签实现连续英文字符的精准换行你知道吗?
1.一般情况下的换行: word-break:break-all或者word-wrap:break-word <p>大家<wbr>想要<wbr>实现<wbr& ...
- 机器学习--PCA算法代码实现(基于Sklearn的PCA代码实现)
一.基于Sklearn的PCA代码实现 import numpy as np import matplotlib.pyplot as plt from sklearn import datasets ...
- 算法问题实战策略 BOARDCOVER
地址 https://algospot.com/judge/problem/read/BOARDCOVER 解法 DFS 最近似乎在简单DFS上花费太多时间了 首先扫描地图 统计可覆盖的元素个数 如果 ...
- 题解:swj社会摇入魔第五课
题目链接; solution: 根据画图模拟可以知道除第一次纯下降 其余每次都是一半一半的增加 S=h+h+h/2+h/4+h/8+...; 即S=h+2h=3h #include<bits/s ...
- Python 生成器 (generator) & 迭代器 (iterator)
python 生成器 & 迭代器 生成器 (generator) 列表生成式 列表生成式用来生成一个列表,虽然写的是表达式,但是储存的是计算出来的结果,因此生成的列表受到内存大小的限制 示例: ...
- 解决Fiddler在win7系统下的安全证书问题
如果电脑win7系统,一直解决不了Fiddler的证书安装问题,可以试试下面的办法. 在安装证书的时候一直遇到这个问题. 这是因为win7系统的在.net Framework4.0上面的bug引起的. ...