首页 文章 精选 留言 我的

精选列表

搜索[k8s],共3940篇文章
优秀的个人博客,低调大师

k8s与caas--容器云caas平台的落地实践

前言 在移动互联网时代,新的技术需要新技术支持环境、新的软件交付流程和IT架构,从而实现架构平台化,交付持续化,业务服务化。容器将成为新一代应用的标准交付件,容器云将帮助企业用户构建研发流程和云平台基础设施。缩短应用向云端交付的周期,降低运营门槛。加速向互联网技术和业务的双转型。容器云将对接各类代码托管库,实现自动化持续集成 和DOCKER镜像构建,为新一代应用交付和开发运维一体化奠定了基础。容器云将支持应用的一键式部署交付,提供负载均衡,私有域名绑定,性能监控等应用生命周期管理服务。是微服务架构,轻量级应用部署和运维的理想平台。未来IT界会以容器化应用作为交付的标准。容器云为开发者和企业提供了一个快速构建、集成、部署、运行容器化应用的平台,从而提高应用开发的迭代效率,简化运维环节,降低运维成本。 对于企业来说,容器云价值体现在: 作为内部技术纽带,多应用统一部署平台,提高开发效率,减少运维成本。 平台产品化过程中,投入少且产出价值高。可依托现有的IaaS平台资源,相对于传统的承接项目获益的方式,容器云会积累宝贵的客户资源及数据资源,这些无形资产最终会为公司赢得巨大战略价值。 增加云企业辨识度,如果只具有IaaS层服务的云平台是不完整的,对用户的云服务是不充分的,应该具有为用户提供全方位的云服务体系,应该具有先进且高附加值的云平台。 应用功能架构 基于Kubernetes实现的容器云平台,就功用而言可以分为四大部分: 自动化容器的部署、升级和复制; 随时扩展或收缩容器规模,实现容器的弹性扩展; 以集群的方式运行、管理跨机器的容器,并且提供容器间的负载均衡; Kubernetes的自我修复机制使得容器集群总是运行在用户期望的状态。 未来容器云也可能会成为云管理平台的统治者,也还会有更多的应用在容器云上原生运行起来。因为对于容器云,它可以把很多分散的物理计算资源抽象成一个大的资源池,利用这些资源来执行用户的计算任务。对于用户来说,操作一个分散的集群资源就像在使用一台计算机。人工智能的集中式爆发,机器学习的训练过程对于快速迭代的高要求,让能够轻量级接入,并且可以对用户提供秒级响应的容器云发挥了巨大的优势。师出同门的Google Tensorflow项目很早也进行了与Kubernetes的集成,人工智能平台上实现了Spark on Kubernetes和 Hadoop on Kubernetes。无论是容器技术,还是DevOps和微服务,都说明灵活、弹性、轻量化的IT应用模式逐渐形成。而这种模式的形成对于复杂产品的快速开发有着积极意义,谷歌等IT巨头对产业的贡献,让初创企业与大型IT企业之间的差距缩短,迎来最好的IT时代。容器云架构方案,具有六大功能模块,每个部分包含对应的容器技术栈。具体架构如下 存储方案 后端存储主要采用 Ceph 驱动。Ceph 独一无二地用统一的系统提供了对象、块、和文件存储功能,它可靠性高、管理简便、并且是自由软件。 Ceph 的强大足以改变贵公司的 IT 基础架构、和管理海量数据。 Ceph 可提供极大的伸缩性——供成千用户访问 PB 乃至 EB 级的数据。 Ceph 节点以普通硬件和智能守护进程作为支撑点, Ceph 存储集群组织起了大量节点,它们之间靠相互通讯来复制数据、并动态地重分布数据。Ceph在容器云中主要应用场景是有状态服务。包括关系型数据库和nosql数据库等数据需要持久化的业务。 网络方案 底层容器网络我们最初使用的是Calico。 Calico基本架构图 Calico是一个纯三层网络,没有引入一个DP,没有封包。在主机内部做另外一个容器,可以三条到达终端,你可以知道是谁出了问题,调试的时候很容易,很好管理。容器内的应用数据传出来,和二层完全隔离,对于我们绝大多数的应用来讲只需要三层就够了,很少有应用处理二层。而且Calico支持丰富的网络策略,可以实现多租户管理,对于未来对外提供容器云服务至关重要。 容器编排方案 Kubernetes是谷歌开源的容器集群管理系统,是Google多年大规模容器管理技术Borg的开源版本,主要功能包括: 1.基于容器的应用部署、维护和滚动升级 2.负载均衡和服务发现 3.跨机器和跨地区的集群调度 4.自动伸缩 5.无状态服务和有状态服务 6.广泛的Volume支持 7.插件机制保证扩展性 Kubernetes发展非常迅速,已经成为容器编排领域的领导者。Kubernetes提供了很多的功能,它可以简化应用程序的工作流,加快开发速度。通常,一个成功的应用编排系统需要有较强的自动化能力,这也是为什么 Kubernetes 被设计作为构建组件和工具的生态系统平台,以便更轻松地部署、扩展和管理应用程序。用户可以使用Label以自己的方式组织管理资源,还可以使用Annotation来自定义资源的描述信息,比如为管理工具提供状态检查等。此外,Kubernetes控制器也是构建在跟开发人员和用户使用的相同的API之上。用户还可以编写自己的控制器和调度器,也可以通过各种插件机制扩展系统的功能。这种设计使得可以方便地在Kubernetes之上构建各种应用系统。目前整个kubernetes集群采用高可用部署,架构如下图: 性能监控方案 容器监控的对象主要包括 Kubernetes 集群(各组件)、应用服务、Pod、容器及网络等。这些对象主要表现为以下三个方面: 1.Kubernetes 集群自身健康状态监控(5个基础组件、Docker、Etcd、Calico等) 2.系统性能的监控,比如:CPU、内存、磁盘、网络、filesystem 及 processes 等; 3.业务资源状态监控,主要包括:rc/rs/deployment、Pod、Service 等; 针对容器的整体运行状况及性能状况监控,采用了自研的监控系统实现整体IT资源的统一监控。 日志收集方案 容器平台的日志系统一般包括:Kubernetes 组件的日志,资源的事件日志及容器所运行的应用的日志。本容器云平台,使用fluentd(以DaemonSet的方式启动)来收集日志,并将收集的日志发送给统一日志平台。 CI/CD方案 CI/CD(持续集成与部署)模块肩负着 DevOps 的重任,是开发与运维人员的桥梁,它实现了业务(应用)从代码到服务的自动上线,满足了开发过程中一键的持续集成与部署的需求。本容器云平台,对接持续集成&发布系统。除此之外,实现服务扩缩容,弹性伸缩(HPA)、负载均衡、灰度发布等,也加入了代码质量检查(Sonar)、自动化测试及性能测试插件等,这些都是 CI/CD PaaS 平台的重要组成部分。 云平台功能 通过可视化界面,可以简单方便的实现对资源的部署、管理与监控,包括:资源编排。可以实现以下功能: 1.全面监控:主机、路由器、硬盘、公网IP、负载均衡器都具备完整全面的历史监控和实时监控信息。 2.开放式的图形化操作: 直观展示主机及其相关资源,并可以直接操作图形,所有改动自动更新。 3.操作日志记录: 记录下用户所有重要操作历史,方便定位和查找。 4.网络拓扑结构展示: 用图形展示复杂的网络拓扑结构,连接私有网络和主机更加方便直观。 5.备份链可视化操作: 对于备份各节点一目了然,同时可直接操作新建备份及回滚到之前的状态。 6.自动伸缩策略: 根据资源监控信息定义自动伸缩策略,调节资源配置或集群规模,无需人工介入。 7.通知列表: 用于接收监控告警通知、定时器任务或自动伸缩策略的执行结果。 8.快速的系统构建: 使用资源编排,可以在短短几分钟内迅速复制一套已存在的拥有复杂拓扑的系统;或者迅速规划您的系统架构并评估成本;还可以实现资源拓扑的跨区域复用。 9.丰富的模板创建方式: 在控制台中,用户可以从无到有构建模板;也可以从系统推荐的常见模板入手创建,或基于已经创建的模板继续完善;还可以将已经存在的资源抽取出一套拓扑关系成为模板。 总结 caas平台衍生出来的整个devops体系是至关重要的。最终实现打通日志,监控和apm数据,算法实现根因分析,也就是AIOPS。能够快速定位故障。快速反馈到运维和开发,形成一个闭环。 Gartner定义的AIOps平台拥有11项能力,包括历史数据管理( Historical data management) 、流数据管理( Streaming data management )、日志数据提取( Log data ingestion) 、网络数据提取( Wire data ingestion )、算法数据提取( Metric data ingestion )、文本和NLP文档提取( Document text ingestion )、自动化模型的发现和预测( Automated pattern discovery and prediction )、异常检测( Anomaly detection )、根因分析( Root cause determination )、按需交付( On-premises delivery )和软件服务交付( Software as a service )等。当然这是后续和正在做的工作。 本文转自SegmentFault-k8s与caas--容器云caas平台的落地实践

优秀的个人博客,低调大师

TKE 体验升级:更快上手 K8s 的24个小技巧

作者 王孝威,腾讯云容器产品经理,热衷于为客户提供高效的 Kubernetes 使用方式,为客户极致降本增效服务。 背景 “功能“解决是产品有或者没有一个能力的问题,有了“功能”之后,如何通过良好的引导、提示,以及交互来帮助用户更“流畅”的使用产品是一个值得思考的问题。 例如:乐高已经有了超过 3700 种不同的模块,这些模块可以拼出无限种模型。然而,不同模型的呈现完全不一样,有可能只是几个小模块的位置的改变就能带来意想不到的效果。 进过几年的努力,TKE 在功能层面提出了大量新特性:例如:通过 LB 直连 Pod 提升性能,集群原地升级,虚拟节点,动态调度器,更多可参考容器服务产品动态。 此外,TKE 也重视用户的整体使用体验,为此拜访了多家公司,收集了很多需求,并根据用户重视分层,进行了优化和工具的开发,用户可以利用这些优化的小技巧,更顺滑的来体验容器服务,更“接地气”的降低产品使用门槛,提升产品使用体验。 提升列表 集群/节点相关 推荐:节点搜索能力增强 节点搜索支持通过 Label/IP/是否封锁/节点状态 等多维度的搜索。 Label 搜索格式与原生 Kubernetes 相同:"k1=v1,k2=v2" IP 多值搜索时仅支持精确查询,单 IP 搜索支持模糊查询 使用方式:节点管理 -> 节点 -> 搜索 或者 节点池详情页 -> 下拉到节点列表 -> 搜索 ​ 推荐:节点初始化错误展示优化 【CVM 发货失败 相关错误细化展示】如果因为 CVM 发货失败导致节点购买失败,除了报 LAUNCH_FAILED(即发货失败), 还会显示详细发货失败的原因:比如 VPC 子网 IP 不足/磁盘资源不足/余额不足/置放群组配额不足等等。 【节点初始化 相关错误细化展示】会详细在节点列表展示节点初始化失败的步骤以及对应信息:比如挂盘失败、核心组件异常等等。 使用方式:节点管理 -> 节点 -> 在状态栏点击查看状态即可查看错误 ​ 节点池节点操作标准化:支持封锁/驱逐 节点池内节点操作支持封锁/驱逐,已与集群内节点列表操作保持完全同步,您可以在节点池内高效管理节点。 使用方式:节点池详情页 -> 下拉到节点列表 -> 在操作列对单节点进行操作 或者 选中批量节点后进行批量操作(点击上方【更多操作】按钮可批量封锁/取消封锁节点) ​ 删除保护逻辑优化 客户反映:如果创建集群时开启了误删选项,开启后假如创建失败,客户也无法删除。 现在您可以在【集群列表页】为集群关闭删除保护功能。 使用方式:集群管理 -> 集群操作列表 -> 更多 -> 关闭集群删除保护 ​ 公网 IP 展示优化 有些客户反馈公网IP的配置入口过于隐蔽,默认带宽值过小,无法满足业务需要。 我们采取图形化的形式(拖动条)来代替输入框,强化显示效果。 👉🏻 使用方式:新建节点/新建节点池 -> 选择机型 -> 拖拽到底部 -> 设置公网带宽 ​ 节点池展示信息结构化 / 高级参数展示 增加节点池核心定义/功能的概览,让客户快速了解节点池的使用场景 ​ 节点池信息结构化展示(按模块聚合展示,同时显示了更多的高级参数,提高了可观测性) 节点池基本信息(弹性伸缩相关配置、节点数量等信息) 节点配置详情(节点模板相关配置、节点池扩容节点自动继承的配置) ​ 节点直接跳转 CVM 优化 旧版本的跳转 CVM 按钮显示不稳定,并且入口不突出。 使用方式:鼠标悬浮到节点 ID 处(如果您直接点击节点 ID, 会跳转到 Node 详情页) -> 点击 “跳转到 CVM 实例详情页” -> 会跳转到 CVM 实例详情页。 ​ 创建节点时增加了容器网络 IP 校验 创建节点前,会根据您的容器网络配置(网络模式、网段等)来判断容器网络是否可以满足这批节点创建的要求。考虑到某些特殊场景下您可能不需要校验容器网络,我们提供了参数skip可以供您跳过校验。(参数的详细说明可参考API文档) 使用方式:新建节点/添加已有节点/新建节点池 -> 更多设置 -> 设置skip参数 ​ 集群添加已有节点时支持填写挂载分区/LVM 名 在添加已有节点时如果您对磁盘做了分区/LVM,请在挂载分区填写想要挂载的分区名/LVM名,如果磁盘未分区或 LVM,无需填写挂载分区,只需填写挂载点。 使用方式:添加已有节点 -> 选择节点 -> 勾选数据盘挂载 -> 填写挂载分区以及挂载点 ​ Kubernetes 对象相关 推荐:批量导入键值对:配置管理 & 环境变量优化 支持一次性从剪切板导入批量的键值对。变量名为空时,在变量名称中粘贴一行或多行 key=value 或 key: value 的键值对可以实现快速批量输入。 使用方式1:工作负载 -> 新建负载 -> 实例内容器 -> 环境变量 ​ 使用方式2:配置管理 -> 新建ConfigMap/Secret -> 内容 ​ ​ 推荐:CronJob 支持保留数量/暂停/手动触发/显示由 Cronjob 生成的 Job 列表 保留成功Job数:防止Job无限生成,影响集群性能 保留失败Job数:防止Job无限生成,影响集群性能 暂停:会停止 Cronjob 的运行,不再会生成新的 Job。支持恢复运行 手动触发:无需等到 Cronjob 设置的 Crontab 时间就支持利用 Cronjob 里的 Job 模板生成一个新的 Job 使用方式:工作负载 -> Cronjob -> 新建 -> 保留成功Job数/保留失败Job数 ​ 使用方式:工作负载 -> Cronjob 列表 -> 更多-> 手动触发/暂停 ​ 点击上图中的 CronJob 的名称,就可以查看到由 CronJob 生成的运行中的 Job 列表: ​ HostAliases 产品化 HostAliases 用于为 Pod 的 /etc/hosts 文件中添加条目,可以在 Pod 级别覆盖对主机名的解析。以增加 Pod 的 DNS 配置。 使用方式:工作负载 -> 新建负载 -> 高级设置 -> 主机别名 ​ lifecycle 产品化 lifecycle : 容器的生命周期事件挂接处理函数。 容器可以为每个事件指定一个处理程序,当一个容器启动后,Kubernetes 将立即发送 postStart 事件;在容器被终结之前, Kubernetes 将发送一个 preStop 事件。 使用方式:工作负载 -> 新建负载 -> 实例内容器 -> 生命周期 ​ Service 默认 “仅在集群内访问”;Service 类型解释增加对应英文名词 “仅在集群内访问”访问方式符合使用习惯 中英文名词对照减少用户的理解成本,符合 Kubernetes 原生使用习惯 ​ 一键“重新部署” 在 Deployment、StatefulSet 和 DaemonSet 上支持 和 Deployment 一样,StatefulSet 和 DaemonSet 现在支持一键重新部署了,免去删除后重新配置的烦恼。 使用方式:工作负载 -> 负载列表 -> 更多 -> 重新部署 ​ Ingress 证书支持继承 LB 的证书 支持直接使用 CLB 的证书自动创建 Ingress 的 HTTPS 证书,省去繁琐的 Secret 创建流程。 使用方式:服务与路由 -> Ingress -> 新建Ingress -> 监听端口勾选Https:443 -> 新建密钥 -> 选择服务器证书 ​ Secret 支持 TLS 类型 除了 CLB 证书,您有时会使用自己的证书,保存证书需要使用 TLS 类型的 Secret 使用方式1:配置管理 -> Secret -> 新建Secret -> TLS证书 ​ 使用方式2:服务与路由 -> Ingress -> 新建Ingress -> Nginx负载均衡器 -> 监听端口勾选Https:443 -> 新建密钥 ​ subPathExpr 在控制台上支持配置 subPathExpr,支持将环境变量映射到 Volume 里的一个子路径 使用方式:新建负载 -> 使用数据卷 -> 增加环境变量 -> 使用挂载点 -> 选择 subPathExpr ​ kube-system、kube-node-lease、kube-public 里的资源支持在控制台支持修改 以前为了防止用户误触,在控制台限制了这些命名空间里资源的修改,但事实上有些用户本身就具有这些命名空间的资源管理权限,因此新版本在控制台去掉了这些限制,权限逻辑交给后台判断,若您没有相关命名空间的权限,修改资源也会报错。 使用方式:新建负载 -> 选择命名空间 -> 修改资源配置 ​ 使用方式:授权管理 -> 选择任意一个入口 -> RBAC策略生成器 -> 选择子账号 -> 选择命名空间/权限 ​ 增加多处悬浮提示 所有的资源列表页的字段名增加悬浮提示,更适应屏幕较小的用户 ​ 工作负载里的日志入口容器名增加悬浮提示,更适应屏幕较小的用户 ​ 运维能力相关 推荐:日志采集支持根据日志样例自动提取正则表达式 当在日志采集规则中选择单行完全正则、多行完全正则的提取模式时,可根据用户自己的日志样例自动生成正则表达式,并自动提取相应的键值对,无需用户自己去学习并配置正则表达式 使用方式:1.集群运维 -> 2.日志规则 -> 3.新建 -> 4.输入日志采集规则名字 -> 5.提取方式选取“单行-完全正则” -> 6.输入日志样例 -> 7.点击正则表达式自动生成 -> 8.移动光标选取需要被正则的字符串 -> 9.输入key -> 10.确认 ​ ​ ​ ​ 推荐:日志采集支持根据日志样例自动验证是否可正常提取日志 对于用户自己填写的正则表达式、分隔符等,支持按照用户日志样例进行验证,自动提取所有value,以验证是否可以正常解析日志,避免在检索日志时发现表达式配置错误。 使用方式:1.集群运维 -> 2.日志规则 -> 3.新建 -> 4.输入日志采集规则名字 -> 5.提取方式选取“单行-完全正则” -> 6.输入日志样例 -> 7.手动输入正则表达式 -> 8. 验证 ​ ​ 日志采集支持多行正则提取模式 支持多行正则的解析模式(适用于java程序等多行日志以键值对去检索日志的需求) 注意:使用多行正则提取模式需要联系后端升级采集组件版本 使用方式:新建日志采集规则->第二步提取模式中选择“多行-完全正则模式” ​ 托管 Prometheus 支持新加坡、弗吉尼亚等地域 云原生监控(托管 Prometheus)灰度上线新加坡/弗吉尼亚等地域,欢迎使用。 ​ 总结 Kubernetes 本身功能强大,但模块复杂,上手成本较高,TKE 致力于功能和体验的升级,如果您有任何 【腾讯云原生】云说新品、云研新术、云游新活、云赏资讯,扫码关注同名公众号,及时获取更多干货!!

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册