K8s 十年回顾(Ten Year Review of K8s)

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。Kubernetes 十年回顾

图片

起源与早期发展

Kubernetes 是一个开源平台,用于自动部署、扩展和管理容器化应用程序,于 2014 年在 Google 诞生。它基于 Google 内部集群管理系统 Borg 的经验教训。Google 于 2014 年 6 月将 Kubernetes 作为一个开源项目推出,并于 2014 年 7 月在 GitHub 上公开发布。“Kubernetes”这个名字来自希腊语,意为“舵手”或“领航员”,反映了它在操纵应用程序容器方面的作用。

首次发布和发展

Kubernetes 的第一个正式版本 1.0 于 2015 年 7 月发布。此时,Google 与 Linux 基金会合作成立了云原生计算基金会 (CNCF),并以 Kubernetes 作为种子技术。这种合作关系大大促进了 Kubernetes 的采用和发展。

2016 年,Kubernetes 开始受到关注,Microsoft Azure、AWS 和 IBM 等主要云提供商都为其提供支持。社区开始迅速发展,为其发展和采用做出了贡献。以下是使用 YAML 文件进行简单 Kubernetes 部署的示例:

图片

主要里程碑

可扩展性、稳定性和安全性

2017 年,Kubernetes 1.6 发布,在可扩展性、稳定性和安全性方面均有改进。此版本还引入了 StatefulSet 等新概念,用于有状态应用程序。以下是 StatefulSet 的示例:

图片

存储和网络

2018 年,Kubernetes 1.10 发布,带来了增强的存储和网络功能。今年,各大云提供商也推出了 Kubernetes 作为托管服务,例如 Google Kubernetes Engine (GKE)、Amazon Elastic Container Service for Kubernetes (EKS) 和 Azure Kubernetes Service (AKS)。

Windows 容器支持

2019 年,Kubernetes 发布了 1.14 版,实现了一个重要里程碑,引入了对 Windows 容器的支持。这扩大了其在不同操作系统上的吸引力和可用性。

数据库操作和有状态工作负载

Kubernetes 最初旨在管理无状态应用程序,但很快就发展到支持数据库等有状态工作负载。2016 年推出的 StatefulSet 和 Operator 概念大大简化了复杂应用程序(包括数据库)的部署和管理。

例如,CrunchyData Operator for PostgreSQL 于 2017 年 3 月首次发布,随后几年又发布了适用于 MySQL、Couchbase 和其他数据库的运算符。以下是如何使用运算符部署 PostgreSQL 数据库的示例:

图片

安全增强功能

多年来,Kubernetes 的安全性得到了显著增强。2017 年,基于角色的原生访问控制 (RBAC) 框架的推出降低了访问控制不足带来的安全风险。后来的改进包括对准入控制的通用表达语言 (CEL) 支持和对 Pod 中基于 Linux 的用户名间距的 beta 支持,这进一步遏制了安全风险。

以下是如何在 Kubernetes 中配置 RBAC 的示例:

图片

与人工智能和机器学习的集成

随着 Kubernetes 进入下一个十年,它将在处理 AI 和机器学习 (ML) 工作负载方面发挥关键作用。Kubeflow 等项目旨在提高运营效率并开创管理数据科学和 ML 运营的新方法。

以下是如何定义Kubeflow管道的示例:

图片

未来方向

随着 Kubernetes 的不断发展,预计几个关键领域将取得重大发展:

多云集群

引入对多云集群的全面支持将使操作节点分布在多个云或数据中心的单个 Kubernetes 集群变得更加容易。

定制和安全

Kubernetes 将继续专注于定制化、安全性和可扩展性。社区正在致力于增强安全措施,例如安全的工具链和供应链,并确保用于训练 AI 模型的数据是安全的。

边缘计算

Kubernetes 有望在边缘计算中发挥作用,在边缘和后端基础设施中部署和管理工作负载,确保整个过程中数据的安全。

总而言之,自 2014 年成立以来,Kubernetes 已经取得了长足的进步。从早期作为管理无状态应用程序的工具到目前作为云原生计算的基石,Kubernetes 不断发展以满足现代应用程序开发和部署的需求。随着进入下一个十年,Kubernetes 将继续推动云原生计算、人工智能和机器学习领域的创新,并将继续成为数字基础设施的重要组成部分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/928680.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大数据新视界 -- Hive 元数据管理:核心元数据的深度解析(上)(27 / 30)

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

Lambda表达式提取字段名

文章目录 前言例子原理writeReplace反序列化对象缓存元数据 写一个工具 前言 实体类:方法这种方式获取字段名&#xff0c;摒弃了字符串拼接方式&#xff0c;避免拼接出现的问题&#xff0c;提高框架维护性和可修改性。 例子 引入Mybatis-Plus <dependency><groupId…

Dataset用load_dataset读图片和对应的caption的一个坑

代码&#xff1a; data_files {} if args.train_data_dir is not None:data_files["train"] os.path.join(args.train_data_dir, "**")dataset load_dataset("imagefolder",data_filesdata_files,cache_dirargs.cache_dir,) 数据&#xff1…

git查看本地库对应的远端库的地址

git查看本地库对应的远端库的地址 git remote -v 如果想要查看特定的远端库的url地址&#xff0c;可以使用如下命令&#xff0c;其中origin是默认的远端库的名称&#xff0c;可以使用其他远端库的名称 get remote get-url origin

传统PID和模糊控制在matlab仿真效果的对比

通过学习汇总和复现&#xff0c;利用matlab和simulink进行对传统PID和添加了模糊控制器的仿真效果进行对比&#xff1a; 上图中红色信号为传统PID仿真信号&#xff0c;比直接作用到对象的信号拟合度好很多PID的积分和比例的作用&#xff0c;直接作用到对象相当于只通过了二阶函…

网络编程(JavaEE)

前言&#xff1a; 熟悉了网络的基本概念之后&#xff0c;接下来就需要针对网络进行一系列的编程&#xff0c;其中可能涉及到新的一些编程操作&#xff0c;需要我们进一步探索&#xff01; 网络编程套接字&#xff1a; 套接字其实是socket的翻译。 操作系统给应用程序(传输层给…

算法第一弹-----双指针

目录 1.移动零 2.复写零 3.快乐数 4.盛水最多的容器 5.有效三角形的个数 6.查找总价值为目标值的两个商品 7.三数之和 8.四数之和 双指针通常是指在解决问题时&#xff0c;同时使用两个指针&#xff08;变量&#xff0c;常用来指向数组、链表等数据结构中的元素位置&am…

Linux-虚拟环境

文章目录 一. 虚拟机二. 虚拟化软件三. VMware WorkStation四. 安装CentOS操作系统五. 在VMware中导入CentOS虚拟机六. 远程连接Linux系统1. Finalshell安装2. 虚拟机网络配置3. 连接到Linux系统 七. 虚拟机快照 一. 虚拟机 借助虚拟化技术&#xff0c;我们可以在系统中&#…

分而治之—利用决策树和规则进行分类

当在几个具有不同薪资和福利水平的工作机会之间做出选择时&#xff0c;很多人会从列出利弊开始&#xff0c;并基于简单的规则来排除选项。比如&#xff0c;“如果我上下班的时间超过1小时&#xff0c;那么我会不高兴”。通过这种方式&#xff0c;通过这种方式&#xff0c;预测一…

【spring mvc】全局处理请求体和响应体

目录 说明实现效果逻辑图 实现步骤创建公共处理的请求和响应的类api接口测试前端请求响应结果 扩展Response响应格式实体ResponseCode 响应状态码RSA工具类 RequestBodyAdvice 介绍使用场景 ResponseBodyAdvice 介绍使用场景 说明 由于项目中需要进行加密传输数据提高项目安全…

Python酷库之旅-第三方库Pandas(255)

目录 一、用法精讲 1206、pandas.tseries.offsets.SemiMonthEnd.is_on_offset方法 1206-1、语法 1206-2、参数 1206-3、功能 1206-4、返回值 1206-5、说明 1206-6、用法 1206-6-1、数据准备 1206-6-2、代码示例 1206-6-3、结果输出 1207、pandas.tseries.offsets.S…

matlab conv函数和vivado fir ip对应输出什么时候相等

1&#xff09;下变频中&#xff0c;“matlab conv函数抽取”“vivado fir ip”。 2&#xff09;matlab conv函数的输入数据和输出数据的对应关系。 3&#xff09;vivado fir ip的输入数据和输出数据的对应关系。 与matlab conv函数一致&#xff0c;如上图。 不同的是&#xff…

大数据新视界 -- Hive 数据湖集成与数据治理(下)(26 / 30)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

Linux获取文件属性

目录 stat函数 获取文件属性 获取文件权限 实现“head -n 文件名”命令的功能 编程实现“ls -l 文件名”功能 stat/fstat/lstat的区别&#xff1f; stat函数 int stat(const char *path, struct stat *buf); 功能&#xff1a;获取文件属性 参数&#xff1a; path&…

容器运行应用及Docker命令

文章目录 一、使用容器运行Nginx应用1_使用docker run命令运行Nginx应用1 观察下载容器镜像过程2 观察容器运行情况 2_访问容器中运行的Nginx服务1 确认容器IP地址2 容器网络说明3 使用curl命令访问 二、Docker命令1_Docker命令获取帮助方法2_Docker官网提供的命令说明3_docker…

网络(TCP)

目录 TCP socket API 详解 套接字有哪些类型&#xff1f;socket有哪些类型&#xff1f; 图解TCP四次握手断开连接 图解TCP数据报结构以及三次握手&#xff08;非常详细&#xff09; socket缓冲区以及阻塞模式详解 再谈UDP和TCP bind(): 我们的程序中对myaddr参数是这样…

如何将快捷指令添加到启动台

如何将快捷指令添加到启动台/Finder/访达&#xff08;Mac&#xff09; 1. 打开快捷指令创建快捷指令 示例创建了一个文件操作测试的快捷指令。 2. 右键选择添加到程序坞 鼠标放在待添加的快捷指令上。 3. 右键添加到访达 鼠标放在待添加的快捷指令上。 之后就可以在启…

4.5 TCP 报文段的首部格式

欢迎大家订阅【计算机网络】学习专栏&#xff0c;开启你的计算机网络学习之旅&#xff01; 文章目录 前言1 TCP 报文段的基本结构2 固定部分2.1 源端口与目的端口2.2 序号2.3 确认号2.4 数据偏移2.5 保留字段2.6 控制位2.7 窗口2.8 检验和2.9 紧急指针 3 可变部分3.1 选项3.2 填…

计算机视觉——相机标定(Camera Calibration)

文章目录 1. 简介2. 原理3. 相机模型3.1 四大坐标系3.2 坐标系间的转换关系3.2.1 世界坐标系到相机坐标系3.2.2 相机坐标系到图像坐标系3.2.3 像素坐标系转换为图像坐标系3.2.4 世界坐标转换为像素坐标 3.3 畸变3.3.1 畸变类型3.3.1.1 径向畸变&#xff08;Radial Distortion&a…

线程条件变量 生产者消费者模型 Linux环境 C语言实现

只能用来解决同步问题&#xff0c;且不能独立使用&#xff0c;必须配合互斥锁一起用 头文件&#xff1a;#include <pthread.h> 类型&#xff1a;pthread_cond_t PTHREAD_COND_INITIALIZER 初始化 初始化&#xff1a;int pthread_cond_init(pthread_cond_t * cond, NULL);…