InfraPub 为您找到相关结果 335

influxdb内存消耗分析及性能优化【探索篇】

现过于复杂,所以 go 语言团队在最新1.15版本还没有着手实现。目前根据相关资料,考虑influxdb运行时会占用大规模内存,建议通过如下方式启动influxdb:numactl --interleave=all /usr/bin/influxd -config /usr/bin/influxdb.conf6.读取端优化从系统角度,应该同时关注influxdb写入和读取两个维度。写入端应从具体务场景,提前划分好写入的tags及fields,从而避免产生大量的series导致内存膨胀过快。而读取端,应明确查询时间范围,命中更少的分片数据,来防止加载大量的无用查询结果而导致程序OOM。走查了读取端相关influxdb查询语句,发现几处类似如下消耗内存及性能的语句:#表描述 - 表名...阅读全文

博文 2021-10-27 16:06:30 知乎

六大算法之三:动态规划【转载】

数字相同,dp[i][j] = dp[i-1][j-1]+1;当这两个位置数字不相同时,dp[i][j] = Math.max(dp[i][j-1], dp[i-1][j])。最后二维数组最右下角的值就是最大子串。 public class MaxTwoArraySameOrder { public static int MaxTwoArraySameOrderMethod(String str1,String str2) { int m = str1.length(); int n = str2.length(); /* * 定义一个二维数组保存公共子序列长度 * dp[i][j]表示字符串1从开始长度是i,字符串2从开始长度是j,这两个字符串的最长公共子序列的长度 * 设置数组行列比...阅读全文

博文 2021-07-31 07:18:53 CSDN博客

深入了解Docker背后的namespace技术

namespace中,我们能修改其主机名而不会对他的宿主系统和其宿主系统的其他容器造成影响,他们有隔离的UTS namespace。 让我们在 child_exec 函数中修改hostname。为此,我们需要添加#include 文件使其能访问到sethostname函数,同时还需要添加#include 文件使得 setthostname函数能够调用 strlen 函数。修改完的 child_exec 应该如下: // child_exec is the func that will be executed as the result of clone static int child_exec(void *stuff) { struct clone_args...阅读全文

博文 2015-05-17 10:03:00 debian.cn

运维的未来:云服务兴起,运维人员会“下岗”吗?

衡是非常必要的。 开发团队通常认为运维团队阻碍了创新或者交付。双方都应该相互理解。贬低运维团队很容易,但是更多情况下,他们只是想跟上步伐。不用非得采用每个登上 Hacker News 条的最前沿的科技,也能创新。另一方面,现代运维组织需要意识到他们几乎永远不可能满足人们的要求了。可持续的发展道路——也是传播同理心的道路——是打破孤岛,共担责任。这就是运维的未来。随着运维工作转移到云,它需要给予开发团队更多的权利和信任以重塑自身,而不是“闭关锁国”。 运维长存! 【本文转自 36氪 】...阅读全文

博文 2021-01-28 17:50:31 debian.cn

聊聊很重要的内核技术eBPF

直接集成到应用程序中的高级库。 2:bpftrace bpftrace是Linux eBPF的高级跟踪语言。它的语言受awk和C以及DTrace和SystemTap等以前的跟踪程序的启发。 bpftrace使用LLVM作为后端将脚本编译为eBPF字节码,并利用BCC作为与Linux eBPF子系统以及现有Linux跟踪功能和连接点进行交互的库。 3:Cilium Cilium是一个开源项目,提供基于eBPF的联网,安全性和可观察性。它是从开始专门设计的,旨在将eBPF的优势带入Kubernetes的世界,并满足容器工作负载的新可伸缩性,安全性和可见性要求。 4:Falco Falco是一种行为活动监视器,旨在检测应用程序中的异常活动。 Falco在eBPF的帮助下审核Linux内核层的系统...阅读全文

博文 2020-08-16 11:08:44 debian.cn

使用 tmate 分享你的终端会话

不久前,我们写过一篇关于 teleconsole 的介绍,该工具可用于快速分享终端给任何人(任何你信任的人)。今天我们要聊一聊另一款类似的应用,名叫 tmate。 tmate 有什么用?它可以让你在需要帮助时向你的朋友们求助。 什么是 tmate? tmate 的意思是 teammates,它是 tmux 的一个分支,并且使用相同的配置信息(例如快捷键配置,配色方案等)。它是一个终端多路复用器,同时具有即时分享终端的能力。它允许在单个屏幕中创建并操控多个终端,同时这些终端还能与其他同事分享。 你可以分离会话,让作在后台运行,然后在想要查看状态时重新连接会话。tmate 提供了一个即时配对的方案,让你可以与一个或多个队友共享一个终端。 在屏幕的地步有一个状态栏,显示了当前会话的一些诸如...阅读全文

博文 2017-12-06 10:33:33 debian.cn

Debian Jessie、Stretch 下安装配置 PHP7.2

Surý 是 Debian PHP 软件源的官方维护者之一,所以说稳定性和安全性基本上不是问题。软件源安装的 PHP 默认以 Unix Socket 的状态运行在 /run/php/php7.2-fpm.sock,比使用 TCP 以 localhost:9000 的方式性能更好。 由于 PHP7.2 是新出的版本势必有不少的兼容性问题,我们建议等待开发者通知兼容PHP-7.2后,再进行升级,一些 PECL 扩展可能也不会及时适配该最新版。建议在你的网站务低峰时段更新,并提前做好备份,以及回退的准备。Debian.cn 使用的是 WordPress 4.9 ,已支持 PHP7.2。 添加软件源 添加 GPG wget -O /etc/apt/trusted.gpg.d/php.gpg https...阅读全文

博文 2017-12-16 14:16:25 debian.cn

Java 12 / JDK 12 正式发布

取“半年发布一次版本”的模式。 可访问 http://openjdk.java.net/projects/jdk/13/ 查看 JDK 13 的相关信息。 讨论 留意到不少开发者对 Raw String Literals 特性情有独钟,该特性类似于 JavaScript ES6 语法中的模板字符串,使用它基本可以告别丑陋的字符串拼接。特性详见 http://openjdk.java.net/jeps/326。 该特性原计划于 JDK 12 发布,可惜最后还是被取消了,详见:http://mail.openjdk.java.net/pipermail/jdk-dev/2018-December/002402.html 可能是因为界呼声太高,最近委员会又把这个特性拿出来重新讨论了:https...阅读全文

博文 2019-03-20 12:46:27 debian.cn

开源社区纠纷不断:20 年的 Debian 开发者被排挤出项目

近日,据外媒报道,一位在 Debian 项目中服务超过 20 年的开发者 Norbert Preining 在去年 12 月被降级为维护者,这一行为导致他决定离开该项目。Preining 称,Debian 客户经理团队认为他“多年来一直在欺负项目成员”、“不能与社区团队沟通”。在接受采访时,Preining 表示他现在已经加入了 Arch Linux 项目,将在以后的博文中进行更多的解释。Debian 是一款为数极少的纯社区驱动的 Linux 发行版,而不是由商公司或者政府机构所掌控。虽然 Debian 采用了 Linux Kernel (操作系统的核心),但是大部分基础的操作系统工具都来自于 GNU 工程, 因此又称为 Debian GNU/Linux。DAM 认为 Preining...阅读全文

Hadoop 核心 - HDFS 分布式文件系统详解

1. HDFS概述 Hadoop 分布式系统框架中,首要的基础功能就是文件系统,在 Hadoop 中使用 FileSystem 这个抽象类来表示我们的文件系统,这个抽象类下面有很多子实现类,究竟使用哪一种,需要看我们具体的实现类,在我们实际工作中,用到的最多的就是HDFS(分布式文件系统)以及LocalFileSystem(本地文件系统)了。 在现代的环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称为分布式文件系统。 HDFS(Hadoop Distributed File System)是 Hadoop 项目的一个子项目。是 Hadoop 的核心组件之一, Hadoop 非常适于存储大型数据 (比如 TB 和 PB),其就是使用 HDFS 作为存...阅读全文

Python的闭包和装饰器

的。除此之外,闭包还有很多其他功能,比如用于封装等,另外,闭包有效的减少了函数参数的数目,这对并行计算非常有价值,比如可以让每台电脑负责一个函数,然后串起来,实现流水化的作等。 简而言之:@a 就是将 b 传递给 a(),并返回新的 b = a(b) 目录...阅读全文

博文 2014-07-23 17:06:38 debian.cn

项目总结报告应该怎么写

了10个工作日的延期,那我们会针对这个问题抽取指标分析原因,但如果下个版本此问题不存在,则指标取消。当然,如果目前的指标集不能反映当前问题,我们会根据实际情况扩充指标集。固定通用指标是指界认可的一些评定标准,如开发代码千行代码bug率;或者对于项目人员关注的指标信息我们也会将这类指标抽取出来作为通用指标,如线上遗留问题原因等。以输入法为例,下图是输入法项目总结中的指标集。总结:1)制定的指标可以通过定量的数据衡量;2)制定的指标要项目组三方认知达成一致,且三方都认可。3. 项目数据分析在第二步中选取指标后,我们就要根据指标进行数据分析。在数据分析过程中我们要注意异常数据,对于异常数据我们要进行深入分析,直到找到问题的根本,数据的分析才算到位。总结:1) 对通用指标的数据分析时,一般不少于三...阅读全文

六个开源软件开发的潜规则

孤立地看待问题。这表明,你要对项目各个部分如何与其他人协作交互有比较深入的理解。让你的补丁填坑而不是挖坑。这样你朝成为社区精英的目标上又前进了一大步。 粗枝大叶,自寻烦恼 代码提交完毕后你的工作还没结束。如果代码被接受,还会有一些关于这些更改的讨论和常见的问答,还要做测试。你要确保你可以准时提交,努力去理解如何在不影响社区其他成员的情况下,改进代码和补丁。 和谐相处,助人助己 开源社区不是自相残杀的丛林世界,我们更看重项目的价值而非个体的贡献和成功。如果你想给自己加分,让自己成为更重要的社区成员、让社区接纳你的代码,那就努力帮助别人。如果你熟悉网络部分,那就去复审网络部分,用你的专技能让整个代码更加优雅。道理很简单,顶级的审查者经常和顶级的贡献者打交道。你帮助的人越多,你就越有价值。 八面...阅读全文

博文 2017-05-20 10:27:11 debian.cn

新加坡华侨银行(OCBC) 零门槛开户 使用APP在家即可申请

状态。这一步遇到困难,可以参考这个 Youtube 视频。​6 APP读取的时候会跳出检测,这时候不要动,等待读取完毕。同样需要一些耐心,多试试,不难。​7 给身份证拍个照。点击【下一个】开始给身份证正面拍照。点击【下一个】开始人脸识别,这一步开始人脸验证。注意,不要裸露上身。​8 这些信息填完之后,点击【提供我的详细信息】,开始填写自身国家、职、公司等详细信息。在这之前,首先是检查你之前填写的姓名和邮箱等信息。​9 选择工作类型,选择【受雇】或者【自雇】。填写税务信息。纳税人识别号为自己身份证号。​10 这里选择 【不,我未曾/没有担任重要的公职,也不是一名已/被委托担任公共职务的公共职者 的家庭成员或关系亲近的人】然后,勾选电子邮件和短信,☑️ 勾选 【本人确认懂英文,并同意以英文形式...阅读全文

理解 Linux 的虚拟内存

前不久组内又有一次我比较期待的分享:“Linux 的虚拟内存”。是某天晚上加班时,我们讨论虚拟内存的概念时,leader 发现几位同事对虚拟内存认识不清后,特意给这位同学挑选的主题。 我之前了解一些操作系统的概念,主要是毕后对自己大学四年的荒废比较懊恼,觉得自己有些对不起计算机专出身,于是在工作之余抽出时间看了哈工大在网易云课堂的操作系统公开课,自己也读了一本讲操作系统比较浅的书 《Linux内核设计与实现》,而且去年自己用 C 写简单的服务器时,也追根究底了解了更多的系统底层知识。多亏了这些知识,让我对应用层的知识更有掌控感,也在上次排查问题时(从应用到内核查接口超时)助了我一臂之力。 前几天另一位同事来问另一个虚拟内存相关的问题,我才发现对于虚拟内存,我的理解还不够深刻,一些概念还...阅读全文

博文 2018-11-25 11:03:49 debian.cn

Kafka生产问题总结以及性能优化

定要配置重试要根据务情况而定。也可以用同步发送的模式去发消息,当然acks不能设置为0,这样也能保证消息发送的有序。 kafka保证全链路消息顺序消费,需要从发送端开始,将所有有序消息发送到同一个分区,然后用一个消费者去消费,但是这种性能比较低,可以在消费者端接收到消息后将需要保证顺序消费的几条消费发到内存队列(可以搞多个),一个内存队列开启一个线程顺序处理消息。 如果为了性能好,不允许所有消息只在同一个分区,同时又要保证顺序消费,那么可以给每条消息加一个下标,当消费者拿到消息后先不急着消费,而是先判断下标,然后根据下标以此进行消费; 2.1.4 消息积压 1)线上有时因为发送方发送消息速度过快,或者消费方处理消息过慢,可能会导致broker积压大量未消费消息。 此种情况如果积压了上百万未...阅读全文

博文 2023-01-05 23:16:48 CSDN博客

Web前端知识体系精简

,服务器返回该文件; 如果中引用了外部js文件,则发出js文件请求,服务器返回该文件后开始运行; 渲染引擎继续载入html中的部分的代码,并开始解析前面返回的css文件,然后根据css选择器计算出节点的样式,创建渲染树; 从根节点递归调用,计算每一个元素的大小、位置等,给每个节点所应该出现在屏幕上的精确坐标; 如果body中的引用了图片资源,则立即向服务器发出请求,此时渲染引擎不会等待图片下载完毕,而是继续渲染后面的代码; 服务器返回图片文件,由于图片占用了一定面积,影响了后面段落的排版,因此引擎需要回过来重新渲染这部分代码; 如果此时js脚本中运行了style.display="none", 布局被改变,引擎也需要重新渲染这部分代码; 直到为...阅读全文

博文 2021-01-28 17:50:33 debian.cn

Gitlab CI 配置文件 .gitlab

,将从项目中使用默认值。 可以设置的值有:clone,fetch,和none。 clone是最慢的选项。它会从开始克隆整个仓库,包含每一个job,以确保项目工作区是最原始的。 variables: GIT_STRATEGY: clone 当它重新使用项目工作区是,fetch是更快(如果不存在则返回克隆)。git clean用于撤销上一个job做的任何改变,git fetch用于获取上一个job到现在的的commit。 variables: GIT_STRATEGY: fetch none也是重新使用项目工作区,但是它会跳过所有的Git操作(包括GitLab Runner前的克隆脚本,如果存在的话)。它主要用在操作job的artifacts(例如:deploy)。Git数据仓库肯定是存在的,但...阅读全文

博文 2018-12-12 21:09:02 ci.yaml 详解(下)

最全 MongoDB 基础教程

Select * from ruochen where likes > 100 and likes < 200; 模糊查询 查询title中包含 'py' 的文档 db.ruochen.find({title:/py/}).pretty() 查询title字段以 'p' 开的文档 db.ruochen.find({title:/^p/}).pretty() 查询title 字段以 'p' 结尾的文档 db.ruochen.find({title:/p$/}).pretty() MongoDB $type 操作符 $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果 类型 数字 备注 Double 1 String 2 Object 3 Array 4 Binary data 5...阅读全文

博文 2021-02-22 07:45:45 OSChina

Debian 9 使用kubeadm创建 k8s 集群(上)

本教程使用的是 Kubernetes 1.14版,这是本文发布时的官方支持版本。 有关最新版本的最新信息,请参阅官方Kubernetes文档中的当前发行说明 。 Kubeadm自动安装和配置Kubernetes组件,例如API服务器,Controller Manager和Kube DNS。 但是,它不会创建用户或处理操作系统级依赖关系及其配置的安装。 对于这些初步任务,可以使用Ansible或SaltStack等配置管理工具。使用这些工具可以更加简单地创建其他集群或重新创建现有集群,并且不易出错。 在本指南中,您将使用Ansible和Kubeadm从开始设置Kubernetes集群,然后将容器化的Nginx应用程序部署到它。 目标 您的群集将包含以下物理资源: 一个主节点 主节点...阅读全文

博文 2019-05-13 22:47:39 debian.cn

深入理解Golang之context

消当前timerCtx。WithTimeout与WithDeadline类似,WithTimeout也是创建一个定时取消的context,只不过WithDeadline是接收一个过期时间点,而WithTimeout接收一个相对当前时间的过期时长timeout:func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) { return WithDeadline(parent, time.Now().Add(timeout)) } context的使用首先使用context实现文章开done channel的例子来示范一下如何更优雅实现协程间取消信号的同步:func main...阅读全文

博文 2021-01-27 09:05:27 知乎

kubelet 中垃圾回收机制的设计与实现

) }kl.containerGC.GarbageCollectkl.containerGC.GarbageCollect 调用的是 ContainerGC manager 中的方法,ContainerGC 是在 NewMainKubelet 中初始化的,ContainerGC 在初始化时需要指定一个 runtime,该 runtime 即 ContainerRuntime,在 kubelet 中即 kubeGenericRuntimeManager,也是在 NewMainKubelet 中初始化的。k8s.io/kubernetes/pkg/kubelet/kubelet.gofunc NewMainKubelet(){ ...... // MinAge、MaxPerPodContainer、MaxContainers 分别上文章开提到的与容器垃圾回收有关的 // 三个参数...阅读全文

博文 2021-02-05 17:48:22 知乎

成功运作一个开源项目的15个要点

运作开源项目很容易。所有你需要做的就是让你的源代码可用和开源,对吧?嗯,也许。其实,开源项目是否成功取决于你对项目成功的定义。且不论你是怎么定义的,创建开源项目需要大量的工作。如果你已经有了目标,那么你需要准备投资。虽然开源软件是免费的,但它的创作却不是免费的:你需要往项目中投入时间和精力等宝贵资源。 那么,你如何投资这些资源? 1、定义成功 在考虑运作开源项目之前,你需要明确定义成功的意义。这里有很多因素要考虑。只将代码放入可公开访问的存储库就可以了,还是说你想对你的项目做更多?合作与采用对你来说重要吗?你只是为了打造作为一名软件开发者的声誉吗?你对成功的定义是否包括长期的可行性?你想围绕这个项目发展一个社区吗?你关心商采用吗?你对这些问题的回答可以帮助你确定接下来你需要采纳的建议有多...阅读全文

博文 2017-11-08 09:58:28 debian.cn

WebAssembly:无需容器的 Docker (上)

Linux、Windows 和 macOS 等传统操作系统。 因为无法依赖可用的 JavaScript 引擎,所以他们使用不同的接口与外界通信,例如 WASI(WebAssembly 系统接口)。 这些运行时允许 Wasm 应用程序以与 POSIX 类似(但不完全相同)的方式与其 host 系统交互。 WASI SDK 和 wasi-libc 等项目帮助人们将现有的兼容 POSIX 的应用程序编译为 WebAssembly。你只需将应用程序编译成 Wasm 模块一次,然后这个同样的二进制文件就可以在任何地方运行。Wasm 有什么了不起的?下面这些特性让 Wasm 在浏览器大放异彩,也使得它用在服务端开发颇具优势:🌐 开放 —— 它是界广泛采用的标准。 与过去的浏览器争夺战相反,各大公司正积极合作...阅读全文

博文 2023-01-03 06:35:56 spider

Linux系统诊断-内存基础

用(默认),1表示启用。可以理解为oom机制的开关,默认为禁用——表示要让oom触发器正常执行。其他有兴趣的话,可以自行man proc6. 结语如有纰漏欢迎指正。作者:SRE团队技术小编-小凌原文链接 本文为阿里云原创内容,未经允许不得转载javascriptcss3阅读 176发布于 2 月 9 日赞2收藏2分享本作品系原创,采用《署名-非商性使用-禁止演绎 4.0 国际》许可协议阿里云栖号汇集阿里技术精粹-yq.aliyun.com关注专栏...阅读全文

博文 2021-02-11 14:22:42 SegmentFault 思否

Debian 9.3上安装和配置 Observium 监控平台

装了UFW,使用以下命令启用UFW: ufw enable 接下来,使用以下命令通过UFW防火墙允许端口80: ufw allow 80 一旦配置了防火墙,打开您的网络浏览器并键入你的访问地址,您应该看到以下页面: 在这里,输入您的管理员用户名和密码,然后点击登录按钮,您应该看到Observium默认仪表板。接下来,您将需要创建一个cron作来轮询和发现来自网络的设备。 你可以通过在/etc/cron.d目录下创建一个cron文件来完成这个工作: nano /etc/cron.d/observium 添加以下行: # Run a complete discovery of all devices once every 2 hours 25 */2 * * * root /var/www...阅读全文

博文 2017-12-30 11:35:21 debian.cn

五款流行开源的 HIDS 系统简单介绍

火墙等),OSSEC作为强大的日志分析引擎是一个不错的选择。​后来的发行版增加了用于基于debian的系统的身份验证日志文件,以及用于分析(3.6.0)的非标准Sophos UTM时间戳,用于缩进日志的多行日志收集(3.5.0)以及对多行的其他升级。记录。2. Tripwire顾名思义,这是Tripwire开发的基于主机的免费开放源代码检测系统。该公司也提供商解决方案,但我们将专注于开源HIDS。开源的Tripwire软件包仅在几乎所有Linux发行版上运行。它以确保数据完整性的强大功能而闻名,它可以帮助系统管理员检测对系统文件的更改,并在文件损坏或被篡改时通知他们。要将其安装在Linux主机上,只需使用apt-get或yum实用程序。在安装过程中,系统将要求您添加必需的密码。最好选择一个...阅读全文

博文 2023-01-26 11:07:43 joseph

谷歌公开了内部管理Infra层的两个工具的Paper

随着的逐步成熟,他们会开发更多工具。在Google,我们持续创建新的外部和内部服务,以及支持这些服务的基础架构。 从2013年起,我们开始放弃之前用来更新和维护服务的简单的自动化工作流。每个服务都要求复杂的更新逻辑,并且还需要适应基础架构的变化,经常性的集群的启动关闭等等。配置多个,互相交互的服务的工作流变得难以维护。 我们需要一种全新的方案来适应务的增长以及所涉及到的配置的复杂性。为此,我们开发了声明式的自动化系统,作为统一的控制层,并且取代了工作流。这个系统包括两个主要的工具:Podspec,描述服务基础架构的工具,和Annealing,更新生产环境来匹配Prodspec输出的工具。本文讨论我们解决过的问题,以及我们所选择的架构。 Prodspec和Annealing有一个根本共...阅读全文

博文 2023-01-08 11:23:20 CSDN博客

HAProxy用法详解 最详细中文文档

符。测试服务器端的响应报文时可以使用shdr()。例如下面的例子用于测试首部Connection的值是否为close。 hdr(Connection) -i close 5.1.4 method method 测试HTTP请求报文中使用的方法。 5.1.5 path_beg 用于测试请求的URL是否以指定的模式开。下面的例子用于测试URL是否以/static、/images、/javascript或/stylesheets。 acl url_static path_beg -i /static /images /javascript /stylesheets 5.1.6 path_end 用于测试请求的URL是否以...阅读全文

博文 2014-05-10 17:14:46 debian.cn

Redis 命令、特性介绍与性能调优

,Redis能够确保每个客户端得到的序列值或序列范围都是全局唯一的,绝对不会出现不同客户端得到了重复的序列值的情况。 List Redis的List是链表型的数据结构,可以使用LPUSH/RPUSH/LPOP/RPOP等命令在List的两端执行插入元素和弹出元素的操作。虽然List也支持在特定index上插入和读取元素的功能,但其时间复杂度较高(O(N)),应小心使用。 与List相关的常用命令: LPUSH:向指定List的左侧(即部)插入1个或多个元素,返回插入后的List长度。时间复杂度O(N),N为插入元素的数量 RPUSH:同LPUSH,向指定List的右侧(即尾部)插入1或多个元素 LPOP:从指定List的左侧(即部)移除一个元素并返回,时间复杂度O(1) RPOP:同LPOP,从指...阅读全文

博文 2018-10-27 10:37:55 debian.cn

译:Kubernetes 最佳实践

统中不同组件的交互方式。K8s 官方文档中推荐的 Pod 标签包括名称、实例、版本、组件、部分和管理者。标签也可以以类似于在云环境中对资源使用标签的方式使用,以跟踪与务相关的事物,例如对象所有权和对象应属于的环境。此外,还建议使用标签来详细说明安全要求,包括机密性和合规性。使用网络策略应该使用网络策略来限制 K8s 集群中对象之间的流量。默认情况下,所有容器都可以在网络中相互通信,如果恶意行为者获得对容器的访问权限,从而允许他们遍历集群中的对象,这会带来安全风险。网络策略可以在 IP 和端口级别控制流量,类似于云平台中的安全组的概念,以限制对资源的访问。通常,默认情况下应拒绝所有流量,然后应制定允许规则以允许所需流量。使用防火墙除了使用网络策略来限制 K8s 集群上的内部流量外,还应该在...阅读全文

博文 2022-09-13 19:32:21 atbug.com

Kubernetes源码探疑:Pod IP泄露排查及解决方法

对于云主机与云主机之间,只有轻微差异(小包场景下,pps 会有 3~5% 损耗),而且Pod网络性能各项指标(吞吐量,包量,延迟等)不会随着节点规模增大而削减。而Flannel UDP,VXLan模式和Calico IPIP的模式存在明显的性能消耗。Pod能直通公有云和物理云。对于使用公有云和物理云的用户而言,务上K8S少了一层障碍,多了一份便利。而Flannel的host gw模式下,容器无法访问公有云和物理云主机。 而CNI的工作流程如下所示。 创建Pod网络过程: 删除Pod网络过程: Pod IP 消失问题的排查与解决 为了测试CNI插件的稳定性,测试同学在UK8S上部署了一个CronJob,每分钟运行一个Job任务,一天要运行1440个任务。该CronJob定义如下...阅读全文

译:零信任对 Kubernetes 意味着什么

Foundation 毕的服务网格项目,它提供了一个以简单性为目标和重点的实现,直接从 Kubernetes ServiceAccounts 提取工作负载标识来达到“零配置”,默认开启双向 TLS。同样,Linkerd 的基于 Rust 的微代理提供了一个极简的零信任实现。当然,仅仅在集群中添加一个服务网格并不是万能的。安装后,必须完成定义、更新和评估授权策略的工作。集群运维人员必须小心确保所有新创建的 pod 都与它们的 sidecar 组件配对。当然,服务网格本身必须像集群上的任何软件一样进行维护、监控和迭代。然而,不管是不是灵丹妙药,服务网格确实提供了从集群中默认的未加密、未经身份验证的流量转变为具有强大工作负载身份和丰富授权系统的默认加密、经过身份验证的流量——这是朝着零信任迈出的一大步。总结零信任...阅读全文

Kafka 3.0新特性全面曝光,真香!

,[一致性]、[可用性](Availability)、[分区容错性](Partition tolerance),这三个要素最多只能同时实现两点,不可能三者兼顾(nosql)。分布式系统为了提高系统的可靠性,一般都会选择使用多副本的方式来进行实现,例如hdfs当中数据的多副本,kafka集群当中分区的多副本等,但是一旦有了多副本的话,那么久面临副本之间一致性的问题,而一致性算法就是 用于解决分布式环境下多副本的数据一致性的问题。界最著名的一致性算法就是大名鼎鼎的Paxos,但是Paxos比较晦涩难懂,不太容易理解,所以还有一种叫做Raft的算法,更加简单容易理解的实现了一致性算法。(一)Raft协议的工作原理Raft协议当中的角色分布Raft协议将分布式系统当中的角色分为Leader(领导者...阅读全文

博文 2022-04-28 16:02:11 mp.weixin.qq.com

Apollo 配置中心简单介绍

- 框架类组件配置,比如CAT客户端的配置。虽然这类框架类组件是由其他团队开发、维护,但是运行时是在务实际应用内的,所以本质上可以认为框架类组件也是应用的一部分。这类组件对应的配置也需要有比较完善的管理方式。 2、Why Apollo 正是基于配置的特殊性,所以Apollo从设计之初就立志于成为一个有治理能力的配置管理平台,目前提供了以下的特性: 统一管理不同环境、不同集群的配置 Apollo提供了一个统一界面集中式管理不同环境(environment)、不同集群(cluster)、不同命名空间(namespace)的配置。同一份代码部署在不同的集群,可以有不同的配置,比如zk的地址等通过命名空间(namespace)可以很方便的支持多个不同应用共享同一份配置,同时还允许应用对共享的配置进行覆...阅读全文

博文 2021-04-09 17:53:51 CSDN