InfraPub 为您找到相关结果 98

内网穿透利器frp部署配置指南

frp是一个使用go语言开发的反向代理服务,可用于内网穿透,支持tcp, udp协议,为http和https协议提供了额外的能力,且尝试性支持了点对点穿透。 由于ngrok 2.x已经闭源,ngrok 1.x已不再维护,所以这里尝试使用frp替代ngrok作为个人的内网穿透工具。 0.前提条件 一台Linux云主机(这里是CentOS 7),并要求具有固定公网IP暴露这台云主机指定端口的能力 有一个域名解析到这个公网IP,如frp.frognew.com和*.frp.frognew.com解析到这个公网IP 1. 下载frp服务端frps和客户端frpc可执行文件 分别在服务器和个人本地机器上,从[https://github.com/fatedier/frp/releases]下载平...阅读全文

博文 2021-02-18 14:42:16 青蛙小白

Debian 环境下安装配置 Gitlab

GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。 它拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。 前言 公司目前的开发架构中,使用了gitlab来统一管理上线发布代码的操作。鉴于是之前的前辈搭建的,所以打算自己手动安装一次,来熟悉相关的配置。 安装 中文版gitlab网站:https://www.gitlab.com.cn/installation/ 英文版gitlab网站:https://about.gitlab.com/downloads/ 选择的操作系统 我这里选择 Debian 9 版本,因为...阅读全文

博文 2017-12-22 19:42:42 debian.cn

OpenSSL 3.0 正式发布,更改许可协议并弃用所有低级别 API

经过 3 年的开发,17 个 alpha 版本,2 个 beta 版本,超过 7500 个提交,以及来自 350 位不同开发者的贡献,OpenSSL 3.0 终于正式发布了。OpenSSL 1.1.1 以来的主要变化主要版本开发者可以从这里下载 OpenSSL 3.0,并升级你的应用程序使之兼容。OpenSSL 3.0 是一个大版本升级,并不完全向后兼容以前的版本。大多数使用 OpenSSL 1.1.1 的应用程序仍然可以正常工作,只是需要重新编译(可能会有关于使用废弃的 API 的编译警告)。还有一些不能完全兼容的应用可能需要进行修改才能正确编译和使用。如果应用程序需要利用 OpenSSL 3.0 中的一些新功能(例如 FIPS 模块),也需要用进行更改。许可证变更在以前的版本中...阅读全文

Facebook 开源的一组 Linux 内核组件与工具

将发生的资源短缺提供早期预警,从而实现更积极主动、细致的响应。 Oomd:https://facebookmicrosites.github.io/oomd/ Oomd 是一个用户空间 OOM(内存不足)进程杀手,可以更好地了解系统上运行的进程的上下文和优先级。它允许配置对 OOM 条件的响应,例如暂停或终止非必需项、重新分配系统中的内存等操作。 详情信息请查看发布公告,以及项目的开源主页。...阅读全文

博文 2018-11-24 09:27:14 debian.cn

如何重启 Kubernetes 中的 Pods

在使用 Docker 时,我们可以使用 docker restart container_id 来非常方便的重启容器,但是在 kubernetes 中并没有重启 pod 的命令。有时 Pod 意外终止时,我们希望重启 pod,来进行排障或者尝试恢复服务。这时我们会发现蛋有点疼,没有一个很直观的方式来重启 pod。 这里我总结了几种重启 Pod 的方式,分两种情况讨论如何重启 K8S 中的 Pod,希望对大家有所帮助。 第一种方式:Deployment方式下重启Pod 大多数生产环境,使用的是 Deployment 方式部署应用。这种场景下,我们可以直接删除的 Pod,让k8s去完成 pod 重建,命令: kubectl delete pod {podname} -n...阅读全文

博文 2020-07-13 21:23:30 debian.cn

Debian下安装搜狗拼音输入法

install python-software-properties安装。这其实只是一个Python脚本。 sudo apt-add-repository ppa:fcitx-team/nightly sudo apt-get update sudo apt-get install sogoupinyin sudo reboot 重启后就可用Ctrl+Space切换出搜狗了。 下载deb安装 如果纯命令安装有误,还可以试试官方的界面安装指南,把Ubuntu的update-manager换成Debian的package就好。 此外,也可以在搜狗输入法 for linux页面,下载的版本,手动安装。 我下载的是sogoupinyin_2.0.0.0068_amd64.deb 本地安装deb,然后安装其依...阅读全文

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

SVN切换分支用法汇总

new_URL 该命令的作用是将版本库中的old_URL目录重命名为new_URL。这个操作如果已经提交到版本库就意味着旧目录不存在了,新目录被创建,并且历史记录中会出现重命名的信息。三、SVN切换分支操作步骤下面为大家介绍一下,如何使用SVN进行切换分支的操作。这里以Windows环境下的操作为例,其他系统只需要将命令替换为系统的命令即可。1. SVN环境配置在使用SVN前,需要先进行环境配置。具体步骤如下:Step 1:下载SVN客户端。下载地址:https://tortoisesvn.net/downloads.html,选择的系统版本即可。Step 2:安装SVN客户端。双击下载后的安装程序,根据指示进行安装。Step 3:配置环境变量。进入系统变量中,将SVN安装路径添加到Path变量...阅读全文

博文 2023-06-09 14:22:35 infras

最全 MongoDB 基础教程

否唯一。指定为true创建唯一索引。默认值为false name string 索引的名称。如果未指定,MongoDB的通过连接索引的字段名和排序顺序生成一个索引名称 dropDups Boolean 3.0+版本已废弃。在建立唯一索引时是否删除重复记录,指定 true 创建唯一索引。默认值为 false sparse Boolean 对文档中不存在的字段数据不启用索引;这个参数需要特别注意,如果设置为true的话,在索引字段中不会查询出不包含字段的文档.。默认值为 false expireAfterSeconds integer 指定一个以秒为单位的数值,完成 TTL设定,设定集合的生存时间 v index version 索引的版本号。默认的索引版本取决于mongod创建索引时运行的...阅读全文

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

Debian、Ubuntu安装源配置文件说明

contrib non-free #deb http://ftp.cn.debian.org/debian-security/ jessie/updates main contrib non-free #deb http://ftp.cn.debian.org/debian-multimedia/ jessie main non-free 各字段说明 第一字段,指示包类型。 取值仅「deb」「deb-src」两个,分别二进制包和源码包。通常仅二进制包有用。 第二字段,指示镜像站点,即「源」! URL 定位到某个目录,该目录下必有「dists」「pool」两个子目录。如:http://ftp.cn.debian.org/debian/、http://ftp.sjtu.edu.cn/ubuntu/。 第...阅读全文

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

bmon:一个强大的网络带宽监视和调试工具

[On Debian/Ubuntu/Mint] 另外,你也可以从 https://pkgs.org/download/bmon 获取你 Linux 发行版的 .rpm 和 .deb 软件包。 如果你想要最新版本(例如版本 4.0)的 bmon,你需要通过下面的命令从源码构建。 在 CentOS、RHEL 和 Fedora 中 $ git clone https://github.com/tgraf/bmon.git $ cd bmon $ sudo yum install make libconfuse-devel libnl3-devel libnl-route3-devel ncurses-devel $ sudo ./autogen.sh $ sudo./configure...阅读全文

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

GlusterFS 和 Ceph 比比看

Ceph 的差异。顾名思义,GlusterFS 是来自 Linux 世界的文件系统,并且遵守所有 POSIX 标准。尽管你可以将 GlusterFS 轻松集成到面向 Linux 的环境中,但在 Windows 环境中集成 GlusterFS 很难。 Ceph 是一种全新的存储方法,于 Swift 对象存储。在对象存储中,应用程序不会写入文件系统,而是使用存储中的直接 API 访问写入存储。因此,应用程序能够绕过操作系统的功能和限制。如果已经开发了一个应用程序来写入 Ceph 存储,那么使用哪个操作系统无关紧要。结果是,Ceph 存储在 Windows 环境中像在 Linux 环境中一样容易集成。 基于 API 的存储访问并不是应用程序可以访问 Ceph 的唯一方式。为了最佳的集成,还有一个...阅读全文

博文 2017-08-09 10:35:29 debian.cn

AWS IAM 基本概念介绍

ComplianceIntegrated with many AWS servicesEventually ConsistentFree to use 基本概念 User 您可以在账户中创建与组织中的用户的各 IAM 用户,而不是与他人共享您的根账户凭证。IAM 用户不是单独的账户;它们是您账户中的用户。每个用户都可以有自己的密码以用于访问 AWS 管理控制台。您还可以为每个用户创建单独的访问密钥,以便用户可以发出编程请求以使用账户中的资源。 Group IAM中,组是 IAM 用户的集合。利用组,可为多个用户指定权限,以便更轻松地管理这些用户的权限。例如,您可能有一个名为 Admins 的组,并向该组授予管理员通常需要的权限类型。该组中的任何用户均自动具有分配给该组的权限。如果有新用户加入您的组织,并且需要管理员权限,则可...阅读全文

博文 2019-06-04 20:22:31 debian.cn

如何在 Linux 上安装 Intel 微代码固件

revision 0x1c, date = 2015-02-26 [ 1.604672] microcode: sig=0x306a9, pf=0x10, revision=0x1c [ 1.604976] microcode: Microcode Update Driver: v2.01 , Peter Oruba 如果你是 CentOS 系列的系统,需要安装的的包名为 linux-firmware 和 microcode_ctl。 如何更新/安装从 Intel 网站上下载的微码 只有在你的 CPU 制造商建议这么做的时候,才可以使用下列的方法去更新/安装微码,除此之外,都应该使用上面的方法去更新。大多数 Linux 发行版都可以通过包管理器...阅读全文

博文 2018-03-07 19:37:47 debian.cn

Stackstorm 入门介绍

可扩展套件,与你的基础环境交互,执行流程如下: 从各个服务系统通过push或pull的方式把event传给sensors, sensors会产生一个trigger到规则配置中查询该trigger的动作或者工作流将来自工作流的Action发送到消息队列(内置rabbitmq)中Actions到达外部的系统后就执行相应的动作日志和审计历史被推送到数据库进行存储(Mongodb)处理后的结果被发送回规则引擎进行进一步处理 Stackstorm的更新非常活跃,最新的发布信息从官方网站上可以看到。目前最新的版本是 2.10.1。 Stackstorm工作原理 目录...阅读全文

AD:为什么说 CoinEx 是一家很有潜力的数字货币交易所?

时代已经到来,这也是为什么公链的代币,币价一直在稳定增长。 相比于 CoinEx 平台的优势,当前的 CET 虽然比较已有增长,当人处于低估状态。在群雄争霸的币圈江湖里凿出登顶之路。那你们觉得这波牛市中CET会是一个百倍币吗? 快速注册 CoinEx 交易所: [http://cet.im](http://cet.im) (本地址仅为方便记忆,做跳转用。注意官方网站为 coinex.com 和 coinexweb.com )...阅读全文

nsenter 及 Linux命名空间 简介

号PID以及需要进入的命名空间后,nsenter会帮我们找到的命名空间文件描述符/proc/PID/ns/FD,然后使用该命名空间运行新的程序。 参考文档 容器内抓包定位网络问题:https://tencentcloudcontainerteam.github.io/tke-handbook/skill/capture-packets-in-container.htmlman-page:nsenter:http://www.man7.org/linux/man-pages/man1/nsenter.1.html#top_of_pageman-page:clone:http://www.man7.org/linux/man-pages/man2/clone.2.htmlman...阅读全文

博文 2020-12-15 11:22:44 debian.cn

APISIX Ingress 如何使用 Cert Manager 管理证书

: RSA encoding: PKCS1 size: 2048 usages: - server auth dnsNames: - "httpbin.org" - "*.httpbin.org" issuerRef: name: issuer kind: Issuer group: cert-manager.io kubectl apply -f httpbin-cert.yaml 此时需要查看 Secrets 是否已经被创建。 kubectl get secrets -n ingress-apisix httpbin NAME TYPE DATA AGE httpbin kubernetes.io/tls 3 2m5s 通过上述验证,该 Secrets 对象的创建事件已经被 Apache...阅读全文

博文 2023-02-09 07:38:06 中文开源技术交流社区

你应该选择Cinnamon作为Linux桌面环境的十个理由

混乱的使用感受。 6. Cinnamon面板。Cinnamon面板作为一款工具栏非常易用,其中提供用于启动程序的菜单、基本系统托盘与应用选择器。右键点击程序图标,选择“Add to panel”即可将应用添加至程序启动栏中。大家还可以将启动图标添加到桌面中以及Cinnamon的“Favorites”启动栏内。另外,进入“Edit”模式即可对各图标进行重新排序。 7. 灵活性。有时候,我们很难找到已经被最小化或者隐藏运行的应用。而Cinnamon提供了我最喜爱的功能之一,即直接拖动运行中的应用按钮,并在选择栏中进行重新排列。这意味着我能更轻松地找到窗口。 Cinnamon桌面还提供一套非常漂亮的弹出菜单,右击即可呼出。其中包含的常用任务包括桌面设置、添加桌面部件选项以及其他多种桌面操作任务...阅读全文

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

项目总结报告应该怎么写

。总结报告的形成明确写报告需要的思维和目的后,我们如何形成报告呢?报告形成步骤如下。​1.明确项目分析维度项目分析的维度不同,后期确定的指标也会不同。一般以项目总结的目的为基准方向,确定分析维度。分析维度可以从产品立项到发布每个阶段作为分析维度,也可以按照项目中的角色为维度进行分析。以输入法的项目总结为例,按照产品、开发、测试的测试角色为横向维度进行分析,然后纵向深入分析每个维度的数据。​2.项目指标抽取我们在进行指标抽取时,会先根据项目分析维度形成一个指标集,如下图。​指标的选取方式有两种:根据问题选取指标和固定通用指标。根据问题选指标是先收集项目中明确感知到的问题,对问题进行归类(归类分组思想),然后选取可以反映此问题的指标进行数据分析,一个问题可能多个指标。以输入法为例,当前版本出现...阅读全文

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

储系统. HDFS 使用多台计算机存储文件,并且提供统一的访问接口,像是访问一个普通文件系统一样使用分布式文件系统。 HDFS文件系统 2. HDFS架构 HDFS架构 HDFS是一个主/从(Mater/Slave)体系结构,由三部分组成: NameNode 和 DataNode 以及 SecondaryNamenode: NameNode 负责管理整个文件系统的元数据,以及每一个路径(文件)所的数据块信息。 DataNode 负责管理用户的文件数据块,每一个数据块都可以在多个 DataNode 上存储多个副本,默认为3个。 Secondary NameNode 用来监控 HDFS 状态的辅助后台程序,每隔一段时间获取 HDFS 元数据的快照。最主要作用是辅助 NameNode 管理元数...阅读全文

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

已知问题规模为n的前提A,求解一个未知解B。(我们用An表示“问题规模为n的已知条件”) 此时,如果把问题规模降到0,即已知A0,可以得到A0->B. 如果从A0添加一个元素,得到A1的变化过程。即A0->A1; 进而有A1->A2; A2->A3; …… ; Ai->Ai+1. 这就是严格的归纳推理,也就是我们经常使用的数学归纳法;对于Ai+1,只需要它的上一个状态Ai即可完成整个推理过程(而不需要更前序的状态)。我们将这一模型称为马尔科夫模型。的推理过程叫做“贪心法”。 然而,Ai与Ai+1往往不是互为充要条件,随着i的增加,有价值的前提信息越来越少,我们无法仅仅通过上一个状态得到下一个状态,因此可以采用如下方案: {A1->A2}; {A1, A2->A3}; {A1,A2,A3...阅读全文

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

Apache Kafka发布 3.0 正式版

Streams 应用程序使用在 Kafka 代理中定义的默认复制因子,因此在它们转移到生产时不需要设置此配置值。请注意,新的默认值需要 Kafka Brokers 2.5 或更高版本。KIP-732:弃用 eos-alpha 并用 eos-v2 替换 eos-beta在 3.0 中不推荐使用的另一个 Streams 配置值是exactly_once作为属性的值processing.guarantee。该值exactly_once于 Exactly Once Semantics (EOS) 的原始实现,可用于连接到 Kafka 集群版本 0.11.0 或更高版本的任何 Streams 应用程序。此EOS的第一实现已经通过流第二实施EOS的,这是由值表示取代exactly_once_beta在...阅读全文

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

分布式运行时 Dapr 知多少

了答案。 从单机到分布式,是追求更快和更高的性能,但也带来了更多的不确定性。比如,不确定计算机何时异常,不确定磁盘何时损坏,不确定网络通信的延迟,也不确定消息是否被正常消费。这些不确定性构成了分布式应用的挑战,简而言之: 异构的机器与网络:稳定性问题普遍的节点故障:可靠性问题不可靠的网络:一致性问题 面对这些挑战,业界提出了诸多的分布式理论、协议,如CAP定理,BASE理论,一致性协议2PC/3PC/ZAB,来保证系统的正常运行。虽然问题貌似是有了解决方案,但是应用的复杂度升高了。应用除了需要实现业务需求,还要兼顾非业务需求,集成诸如服务发现、负载均衡、失效转移、动态扩容、数据分片、调用链路监控等分布式系统的核心功能,用有很强的侵入性,这就是以Spring Cloud为代表的微服务框架的...阅读全文

RabbitMQ 高可用实现镜像队列

于单点失效是有弹性的,但是同时也需要注意:尽管 exchange 和 binding 能够在单点失效问题上幸免于难,但是 queue 和其上持有的 message 却不行,这是因为 queue 及其内容仅仅存储于单个节点之上,所以一个节点的失效表现为其的 queue 不可用。 举例说明,如果一个 RMQ 集群由三个节点组成(RMQ集群节点的模式也是有讲究的,一般三个节点会有一个 RAM,两个 DISK),exchange、bindings 等元数据会在三个节点之间同步,但 queue 上的消息是不会同步的,且不特殊设置的情况下,Queue 只会在一个节点存在。 可能有的同学会提另一个问题,我从三个 RMQ 节点的监控面板,都可以看到这个 Queue?这个是对的,这是由于 Queue 的元...阅读全文

博文 2018-12-30 19:21:59 debian.cn

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

有 30 分钟的时间进行支付,如果 30 分钟之内没有支付成功,那么这个订单将进行异常处理,这时就可以使用延时队列来处理这些订单了。 2)订单完成1小时后通知用户进行评价。 实现思路:发送延时消息时先把消息按照不同的延迟时间段发送到指定的队列中(topic_1s,topic_5s,topic_10s,…topic_2h,这个一般不能支持任意时间段的延时),然后通过定时器进行轮训消费这些topic,查看消息是否到期,如果到期就把这个消息发送到具体业务处理的topic中,队列中消息越靠前的到期时间越早,具体来说就是定时器在一次消费过程中,对消息的发送时间做判断,看下是否延迟到时间了,如果到了就转发,如果还没到这一次定时任务就可以提前结束了。 2.1.6 消息回溯 如果某段时间对已消费消息计算...阅读全文

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

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

,时间复杂度O(1) GET:获取某个key的value,时间复杂度O(1) GETSET:为一个key设置value,并返回该key的原value,时间复杂度O(1) MSET:为多个key设置value,时间复杂度O(N) MSETNX:同MSET,如果指定的key中有任意一个已存在,则不进行任何操作,时间复杂度O(N) MGET:获取多个key的value,时间复杂度O(N) 上文提到过,Redis的基本数据类型只有String,但Redis可以把String作为整型或浮点型数字来使用,主要体现在INCR、DECR类的命令上: INCR:将key的value值自增1,并返回自增后的值。只对可以转换为整型的String数据起作用。时间复杂度O(1) INCRBY:将key的...阅读全文

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

深度解密基于 eBPF 的 Kubernetes 问题排查全景图

应用性能监测的可观测性解决思路。​要采集容器、节点运行环境、应用、网络各个维度的数据挑战非常大,云原生社区针对不同需求给出了 cAdvisor、node exporter、kube-state-metics 等多种方式,但仍然无法满足全部需求。维护众多采集器的成本也不容小觑,引发的一个思考是能否有一种用无侵入的、支持动态扩展的数据采集方案?目前最好的答案是 eBPF。数据采集(eBPF 超能力)1、eBPF 的超能力​eBPF 相当于在内核中构建了一个执行引擎,通过内核调用将这段程序 attach 到某个内核事件上,实现监听内核事件。有了事件我们就能进一步做协议推导,筛选出感兴趣的协议,对事件进一步处理后放到 ringbuffer 或者 eBPF 自带的数据结构 Map 中,供用户态进程...阅读全文

博文 2022-03-21 09:11:51 joseph

王垠:如何掌握所有的程序语言

吗?你不能。你得看看它里面装的是什么型号的处理器,有多少个核,主频多少,有多少 L1 cache,L2 cache……,有多少内存和硬盘,显示器分辨率有多大,显卡是什么 GPU,网卡速度,等等各种“配置”。有时候你还得看各个组件之间的兼容性。 这些配置到程序语言里面,就是所谓“语言特性”。举一些语言特性的例子: 变量定义 算术运算 for 循环语句,while 循环语句 函数定义,函数调用 递归 静态类型系统 类型推导 lambda 函数 面向对象 垃圾回收 指针算术 goto 语句 这些语言特性,就像你在选择一台电脑的时候,看它里面是什么配置。选电脑的时候,没有人会说 Dell 一定是最好的,他们只会说这个型号里面装的是 Intel 的 i7 处理器,这个比 i5 的好,DDR3 的内...阅读全文

博文 2017-07-10 10:13:17 debian.cn

Linux系统诊断-内存基础

inactive list,内核线程kswapd会定期将active list中的页面移至 inactive list中。如果系统的inactive的内存过大,可以通过如下操作对其做回收。sync; echo 3 > /proc/sys/vm/drop_caches虚拟内存========现代x86系统,计算机能够使用的内存会大于其物理内存的上限,依靠的就是虚拟内存机制。Linux支持虚拟内存机制和实模式机制。实模式下,计算机会直接申请物理内存, 虚拟内存机制下,系统会把磁盘当成内存的扩展,已增加可使用的内存大小。并通过映射map的机制,来保存和物理内存的真实关系。在磁盘和内存之间传送Page的活动叫做swapping或者页面调度(paging),被用作虚拟内存的磁盘分区称为swap。可以通过在线添加...阅读全文

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

基于thanos搭建分布式prometheus

: failureThreshold: 10 httpGet: path: /-/ready port: 9090 scheme: HTTP initialDelaySeconds: 60 periodSeconds: 5 successThreshold: 1 timeoutSeconds: 3 terminationGracePeriodSeconds: 60 thanos-querier需要指定反向代理的列表,它支持基于DNS SRV记录的服务发现机制,因为thanos querier部署在K8S集群内,所以直接走coredns的DNS SRV记录发现thanos receive的所有POD地址即可,参数:–store=dnssrv+_grpc._tcp.thanos...阅读全文

博文 2021-03-01 13:02:46 鱼儿的博客

隐私声明

关注册信息后方能使用,如果您无法提供此类信息,可能会不能使用服务。如果您注册了本网站,您可以随时查阅或编辑您提交给本网站的个人信息,但出于安全性和身份识别的考虑,您可能无法修改注册时提供的初始注册信息及其他验证信息。 5. 用户发布信息 本网站的部分服务允许用户发布自己的信息、视频、照片、观点、博客等等,请注意上述内容自发布之时起成为公开信息,请在公布您的联系信息、财务信息或其他个人信息之前做出谨慎判断。我们将无法阻止上述信息以不符合本隐私权声明和适用法律法规的方式被使用。 6. 未成年人的个人信息保护 本网站非常重视对未成年人个人信息的保护。若您是18周岁以下的未成年人,在使用本网站的服务前,应事先取得您家长或法定监护人的书面同意。 7. 隐私权声明的更新...阅读全文

Kubernetes 使用 PodPreset 注入信息到 Pods_哎_小羊的博客

,ValidatingAdmissionWebhook,ResourceQuota,PodPreset` 如果觉得以上命令太复杂,还可以通过修改 Yaml 方式配置,因为 Minikube 通过 Static Pod 的方式用 Kubelet 启动各组件服务,所以可以更改组件的 Yaml 来激活 PodPreset,通过修改 /etc/kubernetes/manifests/kube-apiserver.yaml 文件增加如下配置,修改完成后 Kubelet 会自动重启 kube-apiserver 各组件。 $ vim /etc/kubernetes/manifests/kube-apiserver.yaml - --runtime-config=settings.k8s.io/v1alpha1=true #新增该配置...阅读全文

博文 2021-01-27 18:47:00 CSDN博客

Spinnaker 介绍 – Netflix 的持续交付平台

,Google云,微软云等,后来还支持了容器,但是管理方式还是按照管理基础设施的模式来设计的。 Spinnaker 中管理如下资源: Server Group:最基本的逻辑资源,包括了若干使用相同配置和镜像的虚拟机,若干负载均衡(load balancer),以及安全组。安全组规则(Security Group):就是 AWS 中的安全组,可以理解成防火墙。负载均衡(Load Balancer):AWS 中的 ELB,也可能是安装在虚拟机中的负载均衡。 2. 部署管理 管理部署流程是 Spinnaker 的核心功能,他负责将软件包(可能是手工创建的或者 jenkins 创建的)打成一个镜像,用这个镜像生成的虚拟机,让服务真正运行起来: pipeline 在 Spinnaker 中一个部署流程叫做...阅读全文

博文 2018-12-21 19:30:47 debian.cn

HTTP状态码详解

multipart/byteranges 的多段下载,则每一 multipart 段中都应包含 Content-Range 域用以指示本段的内容范围。假如响应中包含 Content-Length,那么它的数值必须匹配它返回的内容范围的真实字节数。 Date ETag 和/或 Content-Location,假如同样的请求本应该返回200响应。 Expires, Cache-Control,和/或 Vary,假如其值可能与之前相同变量的其他响应的值不同的话。 假如本响应请求使用了 If-Range 强缓存验证,那么本次响应不应该包含其他实体头;假如本响应的请求使用了 If-Range 弱缓存验证,那么本次响应禁止包含其他实体头;这避免了缓存的实体内容和更新了的实体头信息之间的不一致。否则,本响应就应当包...阅读全文

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

Web前端知识体系精简

Web前端技术由html、css和javascript三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言。而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学习新的知识点,因此对于初学者很难理清楚整个体系的脉络结构。本文将对Web前端知识体系进行简单的梳理,的每个知识点点到为止,不作详细介绍。目的是帮助大家审查自己的知识结构是否完善,如有遗漏或不正确的地方,希望共勉。 JAVASCRIPT 篇 0、基础语法 Javascript基础语法包括:变量定义、数据类型、循环、选择、内置对象等。 数据类型有string,number,boolean,null,undefined,object等。其中,string,number和boolean是基础类型,null...阅读全文

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

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

述符递增一。这里之所以传最大描述符,为的就是在遍历fd_set的时候,限定遍历范围。 参数二:readfds,可读文件描述符集合。 参数三:writefds,可写文件描述符集合。 参数四:errorfds,异常文件描述符集合。 参数五:timeout,超时时间。在这段时间内没有检测到描述符被触发,则返回。 下面的宏处理,可以对fd_set集合(准确的说是bitmap,一个描述符有变更,则会在描述符的索引处置1)进行操作: FD_CLR(inr fd,fd_set* set) 用来清除描述词组set中相关fd 的位,即bitmap结构中索引值为fd的值置为0。 FD_ISSET(int fd,fd_set *set) 用来测试描述词组set中相关fd 的位是否为真,即bitmap结构中某一...阅读全文

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

使用 MongoDB 之前应该知道的 14 件事

点 。 日志可以确保数据库在恢复时处于一致状态,它会保存日志写入时的所有数据。日志写入的时间间隔可以使用运行时选项 commitIntervalMs 来配置。 为了确保写入,就要确保 在配置文件中启用日志(storage.journal.enabled),而且提交间隔要和你能够承担的数据丢失相。 无索引排序 在搜索和聚合中,你经常希望排序数据。但愿那是在最后阶段完成的,在结果过滤之后,从而减少需要排序的数据量。即使在那个时候,你需要 一个可以覆盖排序的索引 。单键索引或混合索引都可以。 当没有合适的索引可用时,MongoDB 就不得不在没有索引的情况下排序。对于排序操作中所有文档的总大小, 有 32MB 的内存限制 ,如果 MongoDB 达到了这个限值,它就会产生错误,或者有时候 仅仅...阅读全文

UCloud 叶理灯 谈:Docker、K8S 和 Serverless

Serverless 这个概念可以 FaaS,也可以代表一种架构,也可以代表一种服务的形态,例如 Aurora Serverless 就是把一个数据库的服务变成 Serverless 的。 容器和 Serverless 的区别在于,Serverless 是无容器的,除了不关注服务器,也看不到容器。两者是面向不同场景的,并不是互相替代的关系。FaaS 的特点,接收一个请求拉起一个函数执行,函数是无状态的,它的执行地点也不固定,这意味着延时相对于常驻进程要高,对一些延时敏感的地方它是不合适的,但是有些场景是非常合适的。我举个例子,在 IoT 场景中,有几十万的设备,为了节省电源,它们大部分时候处于睡眠状态,如果用传统的架构去为这几十万设备服务的话,肯定要考虑并发连接的时候,应该有多少计算资源去服务,这很浪费成...阅读全文

博文 2019-06-14 08:28:49 debian.cn

阿里巴巴版 JDK 首发 GA 版 生产环境可用

某些测试用例,启动阶段跑分会有 10% 的提高。该特性在阿里巴巴的双 11 抢购场景中得到了大量验证。目前,阿里巴巴正在社区努力推进,希望通过 JEP 的方式将该功能推到上游 OpenJDK 社区。 下图是阿里一个应用在“双十一”期间使用 JWarmUp 时的效果: 说明:图中蓝线是正常启动 (默认开启分层编译),红线是启用 JWarmUp 的 CPU 使用率。 (1)是开启了 JWarmUp 选项,在应用启动时候,流量进来之前积极加载和编译方法。(2)是流量进来的时刻。(3)是正常模式启动下,CPU 消耗 100% 维持了 70s。(注:作图省略了一部分数据)(4)的绿线是稳定后 CPU 的使用率。 可以看到应用 JWarmUp 后在流量进来的时候 JWarmUp 可以减少大量 CPU...阅读全文

博文 2019-07-11 10:24:52 debian.cn

HTML 5.1 — 14 项新增特性及使用案例

让你可以指定一个多个可选的图像来源,于不同的像素分辨率。它将允许浏览器根据用户设备的不同选择合适质量的实现来进行显示。例如,对于使用网络比较慢的移动设备的用户,显示一张低分辨率的图片会比较好。 你可以使用 srcset 属性并且带上它自有的 x 修饰符来描述每一个图片的像素比例, 如果用户的像素比例等于 3,就会显示 high-res 这张图片。 除了像素比例之外,你也可以选择使用 w 修饰符来指定不同尺寸大小的图片。在如下示例中,high-res 图片被定义成在...阅读全文

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

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

ClusterIP 10.96.0.1 443/TCP 1d 然后删除部署: kubectl delete deployment nginx 运行以下命令以确认这是否有效: kubectl get deployments OutputNo resources found. 结论 在本指南中,您已使用Kubeadm和Ansible成功在Debian 9上设置Kubernetes集群以实现自动化。 如果您想知道如何在群集设置的情况下对群集进行操作,那么下一步就是将自己的应用程序和服务部署到群集上。 这是一个链接列表,其中包含可以指导您完成此过程的更多信息: Dockerizing应用程序 - 列出了详细说明如何使用Docker用程序进行容器化的示例。Pod概述 - 详细描述了Pod如何工作以及它们与其他...阅读全文

博文 2019-05-13 22:57:41 debian.cn

WebAssembly:无需容器的 Docker (下)

ghcr.io/vmware-labs/php-wasm 7.4.32-cli-aot 63460740f6d5 44 minutes ago 5.35MB 这是意料之中的,因为对于 Wasm,我们只需要在容器内添加可执行二进制文件,而对于传统容器,我们仍然需要来自运行二进制文件的操作系统的一些基本库和文件。这种大小差异对于第一次拉取镜像的速度以及进行在本地存储库中占用的空间非常有帮助。Wasm 可移植性Wasm 最大优势之一就是它的可移植性。 当人们想要一个可移植的应用程序时,Docker 已经提供了传统的容器作为一种选择。 然而,除了镜像特别大之外,传统容器还绑定到它们运行的平台架构。 作为程序员,相比许多人都经历过这种坎坷:针对不同的架构,必须构建支持的软件版本,并为每种架构打包镜像...阅读全文

博文 2023-01-03 06:39:46 spider

DPDK Graph Pipeline 框架简介与实现原理

graph 中的 node。注意此处使用的是 graph_node 结构,其中包含了本身的 node(struct node* node)以及其相邻的 node。 struct graph_node vs struct node struct node 结构体的用法仅仅是用来描述的 node,和 graph 是没有关系的。而 struct graph_node 其实就是把 struct node 包装了一层,主要目的就是强调这个 node 在一个 graph 中。 struct rte_graph 接下来介绍 struct rte_graph(rte_*: runtime 时所用到的数据结构)的内存布局,建议先把先前的 graph walk 部分浏览一遍,以更好了解 rte_graph 是如何被...阅读全文

博文 2023-02-09 07:13:55 掘金

三个技巧 大幅减少 Docker 镜像体积

> /bin/sh -c #(nop) CMD ["bash"] 0B /bin/sh -c #(nop) ADD file:1dd78a123212328bd… 123MB 但实际上,生成的镜像多了五个新层:每一个层 Dockerfile 里的一个语句。 现在,让我们来试试 Docker 的多阶段构建。你可以继续使用与上面相同的 Dockerfile,只是现在要调用两次: FROM node:8 as build WORKDIR /app COPY package.json index.js ./ RUN npm install FROM node:8 COPY --from=build /app / EXPOSE 3000 CMD ["index.js...阅读全文

博文 2018-09-06 10:50:29 debian.cn

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

。即使用户空间的占用率提高一倍,其CPU占用率也仅为10%,这也解释了为何7层处理对性能影响有限这一现象。由此,在高端系统上HAProxy的7层性能可轻易超过硬件负载均衡设备。 在生产环境中,在7层处理上使用HAProxy作为昂贵的高端硬件负载均衡设备故障故障时的紧急解决方案也时长可见。硬件负载均衡设备在“报文”级别处理请求,这在支持跨报文请求(request across multiple packets)有着较高的难度,并且它们不缓冲任何数据,因此有着较长的响应时间。地,软件负载均衡设备使用TCP缓冲,可建立极长的请求,且有着较大的响应时间。 二,安装配置HAProxy 以下实验环境均为 Debian i686平台。 1,安装haproxy [root@LB ~]# apt-get...阅读全文

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

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

partition都是有序的,即消息发送到队列的顺序跟消费时拉取到的顺序是一致的。replication:副本。一个topic的分区partition可以有多个副本,多个副本中只有一个为leader,其余的为follower。为了保证数据的高可用性,leader和follower会尽量均匀的分布在各个broker中,避免了leader所在的服务器宕机而导致topic不可用的问题。 (二)kafka2当中zk的作用/admin:主要保存kafka当中的核心的重要信息,包括类似于已经删除的topic就会保存在这个路径下面。/brokers:主要用于保存kafka集群当中的broker信息,以及没被删除的topic信息。/cluster: 主要用于保存kafka集群的唯一id信息,每个kafka集群都会给分配...阅读全文

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

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

了。必须要改变什么来减少交互和预期的数量。面对激增的服务模型和大规模部署的痛点,我们通过Prodspec管理的intent以及Annealing针对该intent的持续执行,来实现生产环境的声明化管理。 在面向工作流的生产管理模型里,生产环境状态的大部分仅仅存在于生产环境里。比如,前端运行的是版本X,因为几天之前你才升级到这个特定版本。 相的,声明式生产意味着编写生产状态的intent——生产环境应该运行版本X——使用某个配置文件或者数据库。生产状态现在是从intent派生出来的。配合持续推进,就可以确保生产状态和用户预期相匹配。 在我们的实践里,intent通常是直观的,很少有歧义。但是,维护intent是困难的,要求大量的逻辑。Prodspec(下一节会更深入地讨论)是这个建模问题的...阅读全文

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

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

源状态时,kube-apiserver 就会调用这些 API 组。每个 API 组都会遍历它的所有组版本,并且将每个 HTTP 路由映射到 REST 路径中。当请求的 METHOD 是 POST 时,kube-apiserver 就会将请求转交给 资源创建处理器。 现在 kube-apiserver 已经知道了所有的路由及其的 REST 路径,以便在请求匹配时知道调用哪些处理器和键值存储。多么机智的设计!现在假设客户端的 HTTP 请求已经被 kube-apiserver 收到了: 如果处理链可以将请求与已经注册的路由进行匹配,就会将该请求交给注册到该路由的专用处理器来处理;如果没有任何一个路由可以匹配该请求,就会将请求转交给基于路径的处理器(比如当调用 /apis 时);如果没有任何一...阅读全文

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