Debian 爱好者社区 为您找到相关结果 570

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

一次VPC IP。 回到UK8S CNI,我们再次分析重现案例日志。这一次有了更进一步的发现,所有kubelet传递给NETNS参数为空字符串的情形都发生在kubelet试图销毁Pod中第二个Sandbox的过程中。反之,kubelet试图销毁第二个Sandbox时,给CNI传入的NETNS参数也全部为空字符串。 到这里,思路似乎清晰了不少,所有泄露的VPC IP都是来自第二个Sandbox容器。因此,我们需要查清楚两个问题: 1. 为什么会出现第二个Sandbox容器? 2. 为什么kubelet在销毁第二个Sandbox容器时,给CNI传入了不正确的NETNS参数? 第二个Sandbox:我为何而生? 在了解的第二个Sandbox的前世今生之前,需要先交待一下kubelet运行的基本原理...阅读全文

Web前端知识体系精简

,但Javascript在函数Function对象中建立了原型对象prototype,并以Function对象为主线,从上至下,在内部构建了一条原型链。 简单来说就是建立了变量查找机制,当访问一个对象的属性时,先查找对象本身是否存在,如果不存在就去该对象所在的原型连上去找,直到Object对象为止,如果都没有找到该属性才会返回undefined。 因此我们经常会利用函数的原型机制来实现JS继承。关于函数原型链可参考博客:JS原型对象和原型链 2、函数作用域 函数作用域就是变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的。在JS中没有会块级作用域,只有函数作用域,因此JS中还存在着另外一种怪异现象,那就是变量提升。关于作用域的介绍请参考博客:函数的作用域和作用域链 3、函数指针...阅读全文

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

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

少。 2、透明 这一点很容易理解:我们要使得社区可以观察和了解你正在做的事情:使用易于查找的可公开访问的源代码存储库,使用面向公众的问题跟踪软件,在社区可以找到的地方公布发布计划,以及在公共论坛捕获会议记录(例如归档邮件列表)。 3、开放 对于很多开源项目来说,“透明度”和“开放性”意味着同一件事,但其实这两个术语的含义截然不同。开放不仅仅指的是“一目了然”(这与透明本质上是一样的)。对于许多人来说,开源的“开放”意味着开放新思想,或开放参与。参与开源项目的规则对于每个人应该是一样的(“公平的竞争环境”):仅仅接受几个补丁是不够的,你必须对新的思路点子开放。总之,你必须允许别人参与你的项目,放弃对项目的绝对控制。 4、保持“公平的竞争环境” 这并不一定意味着你必须让任何人加入项目,而是要确保...阅读全文

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

隐私声明

带类型; 您的IP (Internet Protocol)地址,该地址有时可以显示您所在地理位置; 您在本网站内浏览过的页面、广告和链接; 您访问本网站时发出的访问请求及其日期、时间和引荐网址(如有); 通过Cookie标注您的浏览器的唯一性和在本网站的账户信息(包括您访问本网站的各项活动,浏览习惯等);您可以通过修改浏览器设置的方式拒绝cookie; 我们可能会使用浏览器网络存储(包括 HTML 5)和应用程序数据缓存等机制,在您的设备上收集和存储您所浏览过的网页信息; 如果您需要查询、更正您的个人信息或注销账号,请通过 support@debian.cn 与我们联系并提供您的账号和其他验证信息,我们在核实后会回复您的请求。 2. 信息的使用 我们仅在必要的情况下...阅读全文

什么是线程安全,以及并发需要知道的几个概念

的资源一直不释放的话,那么其他阻塞的线程就都不能工作了。 非阻塞则相反,强调的是线程之间并不互相妨碍,所有的线程都会不断尝试向前执行。 死锁、饥饿和活锁这三种情况表示的是多线程间的活跃状态,对于线程来说,以上的情况都是 “非友好” 的状态。 1、死锁一般是指两个或者两个以上的线程互相持有对方所需的资源,并且永远在等待对方释放的一种阻塞状态。例如有两个线程A和B同时共享临界区的资源C,当A占用C时,B处于阻塞状态,然而A的释放需要用到B的资源,这样一来,就变成了A一直在等待B,B也一直在等待A,互相之间永远在等待对方释放的状态。 一般来说,死锁的发生是由于程序的设计不合理导致,而且死锁很难解决,最好的方式就是预防。 2、饥饿是指某一个或者多个线程因为种种原因无法获得所需的资源,导致一直无法执行...阅读全文

博文 2018-12-31 20:44:06 debian.cn

百度运维工程师挖矿实录:四个月用155台服务器挖矿赚10万判3年

近日,百度两年前的一桩诉讼案终于有了答案。中国裁判文书网显示,百度运维员工“安某”从 2018 年1 月底到 5 月底,以技术手段在公司服务器上部署“挖矿”程序,非法控制 150 余台服务器以获取比特币、门罗币等虚拟货币,共获利人民币 10 万余元。 事发后,“安某”不仅被没收了所有获利金额,罚款 11000 元,还背上了三年牢饭,有点惨。 4 个月,占用 155 台服务器,获利 10 万余元。 2017 年“安某”正式入职百度,彼时,比特币的价格飙升到了近 2 万美元,按照当时的汇率,一枚比特币人民币价格将近 13 万。虽然后续的币价有所降低,但挖到一枚,还可以挣几万块,这样的诱惑或许没有几个人会选择无视。 2018 年初,“安某”开始打起了挖矿的主意。 挖矿,是指利用服务器CPU的运算...阅读全文

博文 2020-03-17 20:42:41 debian.cn

说透IO多路复用模型_京东云开发者的博客

作者:京东零售 石朝阳 在说IO多路复用模型之前,我们先来大致了解下Linux文件系统。在Linux系统中,不论是你的鼠标,键盘,还是打印机,甚至于连接到本机的socket client端,都是以文件描述符的形式存在于系统中,诸如此类,等等等等,所以可以这么说,一切皆文件。来看一下系统定义的文件描述符说明: 从上面的列表可以看到,文件描述符0,1,2都已经被系统占用了,当系统启动的时候,这三个描述符就存在了。其中0代表标准输入,1代表标准输出,2代表错误输出。当我们创建新的文件描述符的时候,就会在2的基础上进行递增。可以这么说,文件描述符是为了管理被打开的文件而创建的系统索引,他代表了文件的身份ID。对标windows的话,你可以认为和句柄类似,这样就更容易理解一些。 由于网上对linux...阅读全文

博文 2023-01-01 15:13:50 CSDN博客

Cortex: 高可用和水平扩展Prometheus监控系统

[1] 高可用模式: https://prometheus.io/docs/introduction/faq/#can-prometheus-be-made-highly-available[2] Cortex: https://github.com/cortexproject/cortex[3] CNCF-sandbox: https://github.com/cortexproject/cortex[4]Prometheus: https://prometheus.io[5]Cortex Architechure With Nginx: https://github.com/cortexproject/cortex/blob/master/docs/architecture.md[6...阅读全文

博文 2021-10-09 17:00:22 知乎

粘合万种芯片的“万能胶” 是摩尔定律的续命丹吗? - 硬件

优势的角度来看,尽管AMD、英特尔已经证明了多芯片架构具有一定的经济性,但实际上,与微缩晶体管相比,芯片万能胶并不是在所有时候都能带来最大的成本优势。清华大学交叉院博士研究生冯寅潇和清华大学交叉院助理教授马恺声发表了一篇有关Chiplet成本计算的论文,通过建立Chiplet精算师的成本模型对多芯片集成系统的成本效益进行精准评估。结果发现,现阶段的Chiplets方案只有在800平方毫米的大芯片上才真正有收益,且工艺制程越先进,收益效果越明显。对于5nm芯片系统,当产量达到2千万时,多芯片架构才开始带来回报。戴伟民也表示,不是所有芯片都适合用chiplet的方式,不要为了拆分而拆分,不少情况下单颗集成的系统芯片(SoC), 如基于FD-SOI工艺集成射频无线连接功能的物联网系统芯片,更有价值...阅读全文

博文 2022-04-08 07:35:46 cnBeta.COM

分布式运行时 Dapr 知多少

制以完成诸如服务发现、流量控制、重试熔断、安全访问等,而这相关的网络控制功能就是集成在Dapr的Sidecar中,以对应用透明的方式集成进来的。整体的服务调用流程如下图所示: PS:如果对Istio熟悉的同学需要注意,二者虽然都是通过Sidecar的模式进行网络控制,但二者是有有区别的。Dapr是以API的方式,而Istio是以代理的方式(不改变HTTP请求URI)。 2. State management(状态管理) 在进行微服务开发时,绕不开的话题就是服务间的状态共享、并发一致性问题。对于状态共享,你可能会说,各个服务连接到同一个Redis实例就OK了。是,但不得不考虑潜在的更新冲突的问题。Dapr 以更友好的HTTP API的方式进行状态的存储和读取,同时支持通过ETags进行并发控制...阅读全文

在 Kubernetes 上扩展 TensorFlow 模型

CRD。这里是一个分布式训练作业的[基本例子](https://github.com/kubeflow/tf-operator/blob/master/examples/v1/mnist_with_summaries/tf_job_mnist.yaml),它依赖于两个 worker,在没有 Chief 和 Parameter Server 的情况下进行训练。这种方法适用于实现 TensorFlow 同步训练策略,如 MirroredStrategy。 你看,除了标准的 Kubernetes 资源和服务(例如卷、容器、重启策略)之外,规范还包括一个 **tfReplicaSpecs**,其中你定义了一个 worker。在容器化的 TensorFlow 代码中,将 worker 副本计数设置为 2...阅读全文

Apache Kafka发布 3.0 正式版

重置工具添加“ ”选项通过kafka-streams-application-reset添加新的命令行参数,应用程序重置工具的 Streams 使用变得更加灵活:–internal-topics. 新参数接受逗号分隔的主题名称列表,这些名称对应于可以使用此应用程序工具安排删除的内部主题。将此新参数与现有参数相结合,–dry-run允许用户在实际执行删除操作之前确认将删除哪些主题并在必要时指定它们的子集。MirrorMakerKIP-720:弃用 MirrorMaker v1在 3.0 中,不推荐使用 MirrorMaker 的第一个版本。展望未来,新功能的开发和重大改进将集中在 MirrorMaker 2 (MM2) 上。KIP-716:允许使用 MirrorMaker2 配置偏移同步主题的...阅读全文

博文 2021-09-26 14:13:03 joseph

案例:Redis命令不当 引起数据库雪崩 造成数百万损失

Redis的一些开发规范和建议: 1.冷热数据分离,不要将所有数据全部都放到Redis中 虽然Redis支持持久化,但是Redis的数据存储全部都是在内存中的,成本昂贵。建议根据业务只将高频热数据存储到Redis中【QPS大于5000】,对于低频冷数据可以使用MySQL/ElasticSearch/MongoDB等基于磁盘的存储方式,不仅节省内存成本,而且数据量小在操作时速度更快、效率更高! 2.不同的业务数据要分开存储 不要将不相关的业务数据都放到一个Redis实例中,建议新业务申请新的单独实例。因为Redis为单线程处理,独立存储会减少不同业务相互操作的影响,提高请求响应速度;同时也避免单个实例内存数据量膨胀过大,在出现异常情况时可以更快恢复服务! 在实际的使用过程中,redis最大的瓶颈一般是...阅读全文

博文 2018-10-27 10:18:18 debian.cn

处理器架构消亡史

是英特尔客户的Compaq决定淘汰Alpha,转而采用即将推出的Itanium架构,并于2001年将所有Alpha知识产权出售给了英特尔。除此之外,惠普公司所推出的精简指令集架构PA-RISC也没逃得出被淘汰的命运。它也是20世纪80年代中的一员,它首次出现于1986年2月26日,被应用于HP 3000 930系列以及HP 9000 840模式处理器之中。后来,这种架构被惠普公司与英特尔联合开发的Itanium架构所取代。这样看起来,英特尔的Itanium或成为最大的赢家,但事实证明,在市场的发展过程中,没有哪一种处理器架构能够永远合适市场的需求——这款于1999年被命名的64位架构,自从2017年之后就再也没有更新了,2019年英特尔发布通知称安腾9700处理器开始退役,2021年7月最后...阅读全文

一位五年工作经验架构师的感悟

,生存不易,这些经历同样丰富了我,内心也变得越来越强大。这些年影响我最大的一些思想有: 1、不要给自己设限:不在把自己禁锢在舒适区,不要怕前面有挡着你的人 2、缩小自己的反馈环: 3、不断以小的正能量,不断积累成就感。 4、不要怕做决定:错误的决定,比没有决定好。 渐渐地,我从不说的人,变成了比较能说的人,能说可能还不是会说。会说更考验技巧,情商。 渐渐地,周围的人又说我是段子手。 渐渐地,变成了一个经常黑人的人。哈哈。 不断去思考,总结,提炼做事模式,思考方式,这些方式可以指导你持续成功。 视野,越大,收获越多,站在全局去看问题,这也是一个架构师需要的。 所以,保持开放心态,视野决定格局,格局改变命运。 写在最后 如果大家能看到最后,首先谢谢。 有的人要骂:标题就是唬人的,一点都没有讲技术...阅读全文

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

Sam Altman的成功学|OneFlow

样,比如说资本、技术、品牌、网络效应和做管理。 专注于将你所定义的成功指标增加十倍是有用的,这些指标可以是赚钱、社会地位、世界级影响力或者其他东西。我乐意接受挑战,愿意在各种项目上花时间以解锁下一个项目。但是我希望在每一个项目上都能取得最大成就,创造职业生涯新高度。 但是大多数人都被困于线性发展的泥潭,往往捡了芝麻丢了西瓜,我们要学会抓大放小,寻求跳跃式提升。 在我看来,无论是企业还是个人,最大的竞争优势就是要把目光放长远。我们要打开眼界,看出世界上不同体系之间交融互动的方式。复合增长最重要的就是眼光要尽可能放长远,这样的人才能抢占市场先机,获得最大回报。 要相信指数曲线,耐心坚持下去,最后一定会有惊喜。 2 要有绝对自信 自信拥有不可思议的力量,就我认识的人来说,最成功的往往都是那些自信到...阅读全文

Apollo 配置中心简单介绍

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

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

kubectl 创建 Pod 背后到底发生了什么?—探寻 Kubectl 创建 Pod 的原理

会把这些信息填充到将要发送的 HTTP 请求头中: x509 证书使用 tls.TLSConfig 发送(包括 CA 证书)。bearer tokens 在 HTTP 请求头 Authorization 中发送。用户名和密码通过 HTTP 基本认证发送。OpenID 认证过程是由用户事先手动处理的,产生一个像 bearer token 一样被发送的 token。 2. kube-apiserver 认证 现在我们的请求已经发送成功了,接下来将会发生什么?这时候就该 kube-apiserver 闪亮登场了!kube-apiserver 是客户端和系统组件用来保存和检索集群状态的主要接口。为了执行相应的功能,kube-apiserver 需要能够验证请求者是合法的,这个过程被称为认证。 那么...阅读全文

博文 2022-04-18 16:18:04 CSDN

HTTP状态码详解

端在收到错误信息后继续向服务器发送数据,服务器的TCP栈将向客户端发送一个重置数据包,以清除该客户端所有还未识别的输入缓冲,以免这些数据被服务器上的应用程序读取并干扰后者。 400 1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。 2、请求参数有误。 401 当前请求需要用户验证。该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以询问用户信息。客户端可以重复提交一个包含恰当的 Authorization 头信息的请求。如果当前请求已经包含了 Authorization 证书,那么401响应代表着服务器验证已经拒绝了那些证书。如果401响应包含了与前一个响应相同的身份验证询问,且浏览器已经至少尝试了一次验证,那么浏览器应当...阅读全文

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