第29 期| 2023 年9 月- 技术雷达我们一直是短暂开发分支的倡导者,这些分支经常合并到主代码分支中,主代码分支始终准备好进行部署。这 种主干开发的实践与持续集成密切相关,并且在条件允许的情况下,可以实现最快的反馈循环和最高效的开发 流程。然而,并不是每个人都喜欢这种方法,我们经常根据客户的实践来调整我们的风格。有时,这包括长期 存在的特性分支和拉取请求必须被手动审查和批准,然后才能将它们合并到主分支中。在这些情况下,我们使 用新的 GitHub 合并队列功能。它允许我们自动排队接收的拉取请求,并将它们合并到特殊分支中,按接收顺 序进行排序。然后,我们可以选择自动执行我们自己的“合并检查”,以防止不兼容的提交。这本质上是模拟主 干开发(即使 PR 尚未合并到主代码分支中),允许开发人员在上下文中测试其功能,而无需等待批准拉取请求。 使用 GitHub 合并队列,即使你不能直接提交到主干,也可以获得主干开发的好处。 工具 © Thoughtworks Model(SAM)是一款用于在 AWS 云基础设施上构建无服务器应用的开源框架。此 前入选技术雷达条目的 Serverless Framework 作为一种在各个云服务商上部署无服务器服务的流行框架,主 要用于基于 AWS Lambda 的服务。近来,AWS SAM 因其长足的发展而日益受到欢迎。我们的团队发现 AWS SAM 非常易于配置,并且我们还尝试将其用于测试和调试基于 AWS Lambda0 码力 | 43 页 | 2.76 MB | 1 年前3
Kubernetes开源书 - 周立etes集群的etcd数据提供备份计划。 kube-controller-manager kube-controller-manager 运⾏Controller,它们是处理集群中常规任务的后台线程。逻辑上来讲,每个Controller都是⼀ 个单独的进程,但为了降低复杂性,它们都被编译成独⽴的⼆进制⽂件并运⾏在⼀个进程中。 这些控制器包括: Node Controller:当节点挂掉时,负责响应。 io/docs/concepts/overview/working-with-objects/annotations/ 10-Annotation 30 K8s架构及基本概念 架构图 Master(主节点) K8s⾥的Master指是集群控制节点,⼀个K8s集群需要有⼀个Master节点来负责整个集群的管理和控制,⼀般来说, K8s的所有控制命令都是发送给Master,然后由Master来负责具体的执⾏过程。 ⽤1个CPU单位。 CPU单位 CPU资源以cpu为单位。 在Kubernetes,⼀个cpu相当于: 1 AWS vCPU 1个GCP核⼼ 1 Azure vCore 1个在裸机Intel处理器上的超线程 允许⼩数值。你可以使⽤m后缀来表示“毫”。例如100m cpu,100millicpu和0.1cpu表达的含义其实是相同的。精度不允 许超过1m。 精度不允许超过1m的意思是,你不能指定有5000 码力 | 135 页 | 21.02 MB | 1 年前3
Chaos Mesh让应用与混沌在 Kubernetes 上共舞-杨可奥Pod 3. … 4. 那网络故障呢?磁盘故障呢?恢复呢?如何控制作用范围? 这是一件复杂的事 TBF/NETEM/... 这是一件困难的事 1. 天然的隔离性和安全性 2. Go 的线程模型与 namespace 机制难以融合 3. 要求运行时注入和恢复 4. 和内核打交道通常都是困难的! Kubernetes 上的混沌工程方案 Chaos Mesh Cloud Native0 码力 | 30 页 | 1.49 MB | 9 月前3
2.2.4 基于Kubernetes的私有云实战•和老方式保持一至 •极速发版,快速扩容,自动伸缩 私有云建设收益 上云成果 遇到的问题 问题⼀:上容器后时延变⼤了 问题⼀:上容器后时延变⼤了 • GOMAXPROCS默认会根据CPU数创建调度线程 • 容器内看到的是宿住机的CPU • Go不是NUMA友好的 解决⽅案⼀:Lxcfs • 通⽤⽅案,适合任何语⾔ • 重新mount部署proc⽬录mock机器信息 • 守护进程失败会导致当前运⾏的容器⽆法获取0 码力 | 47 页 | 10.67 MB | 1 年前3
Alluxio 助力 Kubernetes, 加速云端深度学习避免数据震荡 3.避免数据冗余 1 2 3 3. Fuse性能调优 • 选择更高版本的kernel • 设置max_read=131072 • 定制libfuse2代码,支持配置Libfuse线程池 • 延长元数据缓存时间 建议 端到端的优化方案 1252.5 4981.6 9993.6 17441.6 31068.8 1269.5 3266.8 3299.2 64090 码力 | 22 页 | 11.79 MB | 1 年前3
KubeCon2020/微服务技术与实践论坛/Spring Cloud Alibaba 在 Kubernetes 下的微服务治理最佳实践-方剑Agent 2 主动通知 Agent 3 客户端主动刷新 Agent Agent 无损下线: 白天大流量下发布依然丝般顺滑 场景一:某应用发布,灰度几台机器,由于代码逻辑写的有问题,造成线程池满,客户端调用失败。 场景二:某应用运行过程中,某几台机器由于磁盘满,或者是宿主机资源争抢导致load很高,客户端出现调用超时。 客户端摘除 • 实时性高 • 需要关注错误率阈值、隔离机器的比0 码力 | 27 页 | 7.10 MB | 1 年前3
Kubernetes 入門而且假設所有 Pod 都在一個可以直接連線的、扁平的網路空間中。所以不管它們是 否運行在同一個 Node(Host 主機)中,都要求它們可以直接透過對方的 IP 進行存 取。設計這個原則的主要原因是,使用者不需要額外考慮如何建立 Pod 之間的連 線,也不需要考慮將容器連接埠對應到主機連接埠等問題。 實際上在 Kubernetes 的世界裡,IP 是以 Pod 為單位來進行分配的。一個 Pod 的 IP 圖 2.29 Service 的負載平衡轉發規則 存取 Service 的請求,不論是用 Cluster IP + TargetPort 的方式,還是用節點主機 IP+ NodePort 的方式,都會被節點主機的 Iptables 規則重導向到 kube-proxy 監聽 Service 服務代理連接埠。kube-proxy 接收到 Service 的存取請求後,會如何選擇後 e-system/services/ kube-ui/#/dashboard/ 圖 4.6 顯示了 kube-ui 的主頁,展示所有 Node 的資訊,並且每秒更新顯示每個 Node 的 CPU 使用率、記憶體使用情況和檔案系統的使用情況。 圖 4.6 kube-ui 主頁 5-10 Kubernetes 進階案例 5 ~ Grafana:透過 Dashboard 將 InfluxDB0 码力 | 12 页 | 2.00 MB | 1 年前3
Kubernetes平台比較:Red Hat
OpenShift、SUSE Rancher及
Canonical Kubernetes之中的每個節點。針對容器 執行階段評估Kubernetes發行版本時,其中的差異因素在於每個發行版本支援的執 行 階 段 選 項 廣 度 , 以 及 執 行 階 段 實 現 的 使 用 案 例 。 主 要 的 執 行 階 段 選 項 為 Containerd、Kata Containers及CRI-O。 Containerd是高階容器執行階段,可管理完整的容器生命週期,提供簡易性、強健 性及可攜 及Longhorn 12. 監控及作業管理 能夠由單一中央位置監控Kubernetes部署狀態,是非常寶貴的功能。企業可利用各 種有效的監控解決方案,輕鬆追蹤資源使用率、應用程式效能及瓶頸,藉此主動管理 及最佳化Kubernetes叢集。 這三種Kubernetes發行版本開箱後都能立即提供強大的監控及作業管理功能。 OpenShift包含預先設定的Prometheus監控堆疊,並搭配使用Grafana儀表板。同樣 靜態加密以及無需停機的自動安全性更新可確保使用者獲得高度安全的 Kubernetes 部署。企業也能利用Ubuntu livepatching保護主機作業系統,無需停機,可於系統 執行期間修補 Linux 核心的安全性漏洞。最後,Canonical Kubernetes 可利用 AppArmor隔離容器與主機系統。 Red Hat OpenShift提供各種工具用於隔離及保護容器,例如運作方式類似於 AppArmor的SELinux。Red0 码力 | 10 页 | 1.26 MB | 1 年前3
高性能 Kubernetes 元数据存储 KubeBrain 的设计思路和落地效果-许辰(2) K8s 元信息存储的需求 (3) 所以 etcd 为目前 K8s 唯一支持的存储 KubeBrain 架构 Kine KubeBrain KubeBrain 架构 • 主从架构 • 主负责写和事件分发 • 从负责读 • 底层对接分布式强一致性存储 • CAS 事务写 • 快照读 实现架构图 存储层 存储层 – 分布式 KV Store ByteKV • Multi 1. 可靠性 - 不重复、不丢失 2. 顺序性 - 保证最终状态的一致性 3. 实时性 - 高性能 一定有一个单点对消息进行排序 采用主从架构 逻辑层 – Watch(2) 一主多从 1. 仅主节点负责写入和事件生成 2. 从节点只读 逻辑层 – Watch(3) • Master 内存中保留最近写入的 事件 • 写入滑动窗口记录并发写操作的 结果 • 消费滑动窗口中的数据实现有序 Index 序 号 • 根据当前序号进行快照读 • Range 后 Client 通过 Watch 从leader RingBuffer 中获取 增量事件,达到 最终一致性 逻辑层 – 选主 逻辑层 – TSO 接入层 接入层 客户端 客户端 K8s 元信息存储的需求 • 背景介绍 • 设计思路 • 性能优化 • 落地效果 • 未来演进 性能优化 写优化 - 10 码力 | 60 页 | 8.02 MB | 1 年前3
⾸云容器产品Kubernetes操作指南和内存两种资源,防⽌占⽤过 多资源。其中,CPU 资源的单位为 Core(即⼀个核)、内存的单位为 MiB。 Init Container:勾选该项,表示创建⼀个 Init Container,在主容器启动前执⾏,进⾏初始化 ⼯作,详情参考https://kubernetes.io/docs/concepts/workloads/pods/init- containers/。 添加容器:⽀持添加多个容器 和内存两种资源,防⽌占⽤过 多资源。其中,CPU 资源的单位为 Core(即⼀个核)、内存的单位为 MiB。 Init Container:勾选该项,表示创建⼀个 Init Container,在主容器启动前执⾏,进⾏初始化 ⼯作,详情参考https://kubernetes.io/docs/concepts/workloads/pods/init- containers/。 添加容器:⽀持添加多个容器 盘显示时间范围,刷新当前仪表盘等功能 ⾃定义仪表盘,点击左侧功能导航栏的+,点击Dashboard,⻚⾯转换为下图右侧NewPanel 60 点击上图右侧中的AddQuery,跳转⾄设置仪表盘主界⾯ 61 上图中查询数据源选择prometheus,Metrics⾥输⼊PormQL表达式(为prometheus监控系统中⽤于 检索监 控数据的查询语⾔),还可以设置其他⽐0 码力 | 94 页 | 9.98 MB | 1 年前3
共 18 条
- 1
- 2













