Kubernetes 早期的那些事(不定期更新)
有的人会较真你真是闲得没事干了,呵呵,如果招聘中提到精通k8s,有十年以上的经验,那你就说不可能,完全不可能,k8s才诞生几年? 十年都不到,是的,是这样。同时说精通的人,本身自己就不精通,Kubernetes本身体系太庞杂了,而且涉及到相当多的第三方支持,是都开源啊,但是你可能连一个都弄不好。 所以大家机会是差不多的。 当然也有领跑的如华为早期就参与到Kubernetes社区支持中,肯定也大量培养了相关人才。
Kubernetes 成功依靠了另一项技术有关——那就是 Docker
这里可以看看 docker(2013年诞生)的前身---
https://www.cnblogs.com/aozhejin/p/16196652.html
https://www.cnblogs.com/aozhejin/p/16183046.html
Kubernetes名字从何而来呢?
Kubernetes大行其道的今天,越来越多的人听说和正在使用它,即容器编排的领先产品。但是想搞定它难度确实非常大,不是听说或者搭个台子安装成功这么简单,深入掌握的学习成本确实非常高,当然也是众多工具、组件闹得大家不得安生,话说回来有些人可能还不知道这个名字是如何演变的,它意味着什么,甚至如何发音? 以及相关的历史?
让我们看看创始人怎么说的, Kubernetes(“koo-burr-NET-eez”)是希腊单词 κυβερνήτης ,意思是“舵手”或“飞行员” , k8s的前身是Borg,它是 Google 内部版本 Kubernetes 的代号,Borg 这个名字来自《星际迷航》中虚构的外星人种族,同时是,Google 最初在 2003 年左右创建了 Borg项目 ,Google 的许多 Kubernetes 开发人员以前都是 Borg 项目的开发人员。
2013 年,当时 Google 的三位工程师——Craig McLuckie、Joe Beda 和 Brendan Burns — 提出了构建开源容器管理系统的想法。将 Google 的内部基础设施专业知识引入到了大规模云计算领域中。Borg 旨在与 Google 的搜索引擎一起运行,用于构建 Google 的互联网服务。
2013年,谷歌推出了第二代容器管理系统Omega。Omega 进一步发展了 Borg 生态系统,为大规模计算机集群提供了灵活、可扩展的调度解决方案。也就是在 2013 年,Kubernetes 历史上的关键角色 Docker 登场了
创始人Beda解释说是:“当我们公开 Kubernetes 时,我们不想失去“七”的踪迹。Kubernetes 徽标有七个面。“Hept”是希腊语中“七”的前缀,这是一种将“七”拉过去的方式”。
因为Kubernetes 单词非常长,所以经常将其缩写为“k8s”,您可以将其视为“k 后跟 8 个字母,然后是 s” ,它也叫k8
接着说,2014 年,Kubernetes 作为 Borg 的开源版本首次亮相,微软、RedHat、IBM 和 Docker 成为了 Kubernetes 社区的早期成员。
2015 年7月,在O'Reilly 开源大会 (OSCON)上,Kubernetes 创始人正式推出了 Kubernetes 的扩展和改进版本 — Kubernetes 1.0,该项目显然是一个巨大的里程碑。2015 年之前,Kubernetes 的前身是帮助 Google 运行其庞大的应用程序和微服务网络。在正式起名为Kubernetes前,它是有十三个名字在它之前的,但是都被谷歌的法律部门否掉了。
随着1.0发布,2016年,Google 将 Kubernetes 捐赠给了云原生计算基金会(CNCF创建于2015年),该基金会是非营利性 Linux 基金会的一部分。CNCF由Docker、Google、微软、IBM、Red Hat等全球领先计算公司众多成员共同创建。CNCF 的使命是“让云原生计算无处不在”。
2016年,Kubernetes成为CNCF第一个托管项目,到2018年,Kubernetes成为CNCF第一个毕业的项目。积极贡献的公司数量迅速增加到 700 多家成员,Kubernetes 迅速成为历史上增长最快的开源项目之一。到 2017 年,它超越了Docker Swarm和 Apache Mesos 等竞争对手,成为容器编排的行业标准。 Kubernetes社区贡献者 sig是以兴趣小组的形式开展工作。
谷歌 Kubernetes 项目的两位创始人 Craig McLuckie(左) 和 Joe Beda(右边)
2015 年7 月,McLuckie 创建了cncf(Linux 基金会的一部分)来监督 Kubernetes 的进一步发展。
Google 与 Linux 基金会合作组建了 云原生计算基金会 (CNCF)
好现在我们看下它的简单发展历史....
2014年6月7日 第一个提交版本
2014年9月 github 上出现0.2版本
2014年7月10日,微软、小红帽、IBM、Docker等加入k8s社区
2015年7月21日 Kubernetes1.0发布
2015年11月3日 Deis、OpenShift、华为、Gondor 等加入社区
顺便提一句: 华为将为使用基于Docker的应用程序的客户提供基于公有云中Kubernetes的容器即服务(CaaS)
2015 年 2 月份,etcd 发布了第一个正式的稳定版本 2.0
etcd版本为v3.0.17(2017年v3 版本发布, etcd 提供了一套全新的 API)
etcd 于 2013 年 6 月由 CoreOS(自 2018 年起成为 Red Hat 的一部分)首次发布。自 2014 年在 Kubernetes 中采用以来, etcd 已成为 Kubernetes 集群管理软件设计的基本组成部分,并且 etcd 社区呈指数级增长。etcd 目前已在多家公司的生产环境中使用,包括 AWS、Google Cloud Platform、Azure 等大型云提供商环境以及其他本地 Kubernetes 实施。CNCF 目前拥有32 个符合要求的 Kubernetes 平台和发行版,所有这些平台和发行版都使用 etcd 作为数据存储。
2016年2月23日,Helm首次发布Kubernetes包管理器(helm是帮助你图形化地管理Kubernetes应用)
helm社区地址 : https://github.com/helm/community
2016 年 2 月 23 日 1.2版本引入 Kubemark 性能测试
2016年3月16日,Kubernetes1.2发布包括扩展、简化的应用程序部署和自动化集群管理。
2016年7月minikube(让你在本地部署Kubernetes集群的工具) , 官方地址: https://minikube.sigs.k8s.io/
可以看看 https://kubernetes.io/blog/2016/07/minikube-easily-run-kubernetes-locally/
当时需要安装 VirtualBox
2016年9月8日, Kops 是一个用于管理生产级 Kubernetes 集群的官方 Kubernetes 项目
2016年9月26日 Kubernetes 1.4 引入了一个新工具 kubeadm(更准确说是v1.4.1-beta.2,1.5版本cmd目录下是已经有kubeadm了)
2016年12月23日,开始支持openapi
2017年3月28日,1.6版本发布,默认用etcdv3
2017年9月29日,Kubernetes 1.8 此版本 是基于角色的访问控制 (RBAC) 授权者的一个里程碑,用于控制对 Kubernetes API 访问
后作为了Kubernetes 集群的基本构建模块。
2017年10月, 使用 Docker Swarm 和 Kubernetes 无缝测试和部署它们。
2017年12月21日,kubeflow,专为 Kubernetes 构建的可组合、可移植、可扩展的机器学习堆栈(机器学习+k8s)
2019年 Kubernetes 1.14发布,这是 2019 年的第一个版本
2020年 Kubernetes 1.20 发布,这是我们 2020 年的第三个也是最后一个版本,弃用docker shim ,对 Docker 的支持已弃用,并将在未来版本中删除。Docker 生成的映像将继续在具有所有 CRI 兼容运行时的集群中工作。v1.20 之后, Kubernetes 将不再使用 Docker 作为容器运行时。v1.20中还是继续使用docker作为容器运行时。在docker弃用常见疑问中指出 “没有 dockershim 的最早版本将是 2021 年末的 1.23。 计划在 Kubernetes v1.24 中删除 dockershim”。但是对之前的dockershim还会继续维护。
参考:
https://www.geekwire.com/2016/ever-come-kooky-kubernetes-name-heptio/
https://www.cncf.io/wp-content/uploads/2020/11/CNCF_Survey_Report_2020.pdf
https://www.cncf.io/projects/ 相关的cncf项目
https://www.singlestore.com/blog/kubernetes-101-architecture/
https://kubernetes.io/blog/2015/04/borg-predecessor-to-kubernetes/
https://www.ibm.com/blog/kubernetes-history/
https://www.appvia.io/blog/intro-guide-to-kubernetes
https://www.linkedin.com/pulse/kubernetes-origin-story-steve-libbey
https://www.syseleven.de/en/solutions/kubernetes/
https://kubernetes.io/blog/2015/11/kubernetes-as-foundation-for-cloud-native-paas/
https://www.cnblogs.com/aozhejin/p/16208065.html (Kubernetes变化和规范)
https://www.toddpigram.com/2016/02/improving-kubernetes-scheduler.html
https://kubernetes.io/blog/2023/08/31/legacy-package-repository-deprecation/
https://github.com/kubernetes/kubernetes/blob/2b2f2857771c748f0f0e261f3b8e2ad1627325ce/docs/proposals/kubemark.md
https://kubernetes.io/blog/2023/08/15/pkgs-k8s-io-introduction/ (新的软件包存储库托管pkgs.k8s.io
于 Debian 和 RPM 软件包)
https://kubernetes.io/blog/ (官方博客)
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
https://intuitive.cloud/blog/build-highly-available-kubernetes-v1-7-4-cluster-with-calico-and-docker
https://thenewstack.io/project-calico-now-fully-supports-kubernetes/
https://kubernetes.io/blog/2020/12/08/kubernetes-1-20-release-announcement/#dockershim-deprecation (弃用docker的详细说明)
https://kubernetes.io/blog/2020/12/02/dockershim-faq/ (弃用docker的常见问题解答)