InfraPub 为您找到相关结果 90

WordPress 4.8 Evans 正式版发布

,WordPress 用户无需了解代码知识。只要挂件的正确设置插入图片就可以了。试试添加一张你的头像,或者最新照片,一切都像自动的一样。 视频挂件(小工具) 一个受欢迎的视频,是最棒的宣传网站途径之一。通过这个新的视频挂件,你可以把媒体库里的视频文件轻松添加到视频挂件中。给你的网站访客做个欢迎短片,向访问者们介绍你的网站,或者宣传你最新的促销活动。 音频挂件(小工具) 如果你想成为一个播客、音乐人、或者博客网红,那使用音频文件无疑是最合适的了。上传你的音频文件到媒体库,然后在挂件设置里,选择你的文件,然后准备好播放给你的听众。同时,音频文件也非常适合播放网站的语音欢迎信息。 富文本挂件(小工具) 这绝对是一个极大且实用的功能改进!文本挂件现在拥有了富文本编辑能力。你可以在挂件中快速添加各种的文本内容:列表...阅读全文

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

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

每个人适用同样的规则(环境可能是公平的,因此你需要用自己的方法胜出)。英才制度意味着你需要用自己的方式脱颖而出。有些项目实施英才制度,例如,在邀请开发者加入项目团队之前,通过要求他们作出一些贡献,以表明他们了解项目的代码、规则和文化。确保增加新的开发人员到项目中的过程是众所周知的,并且这些流程是透明的(例如公开投票)。 5、供应商中立 为了实现真正的开放,开发者需要大家认可他们的贡献。如果项目是供应商中立的,那么这更容易实现。供应商中立的项目不由任何组织或机构主导;英才制度应以个人的贡献为基础,不能基于任何特定组织的目标或招聘方法。在供应商中立的基础上托管是实现此目标的一种方式。 6、有良好的定义和文件标准 文档化项目的代码规则(使代码化预设易于访问),对测试覆盖面、开发方法、软件和...阅读全文

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

21款必不可少的Ubuntu桌面应用程序

什么,因为与火狐、LibreOffice和GIMP一样,它大概是世界上最著名的开源软件之一! 这是一款用途广泛的桌面媒体播放器,可以处理你扔给它的几乎任何媒体,播放DVD,甚至还能将视频由一种转码成另一种。 替代方案:SMPlayer(Qt)。 5. Unity Tweak Tool实用工具 Unity Tweak Tool可谓是Ubuntu Unity桌面界的瑞士军刀,它让你可以微调和定制桌面来适合自己的口味。无论你想试用一种新潮的GTK主题、更换图标集、调整应用程序菜单的大小或行为、设置触发角,还是缩小Unity启动器的尺寸,它都能满足要求。 从高级配置选项到普通选项:如果某个项可以调整,那么Unity Tweak Tool很可能有相应的切换开关! 6. Caffeine锁屏...阅读全文

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

从 Debian 安装 Proxmox VE,并配置网络和双硬盘

本文记录如何从 Debian 安装 Proxmox VE,以及配置 IPv4 和 IPv6 网卡,为硬盘分区。 预配置系统装好后,从 NOCIX 后台面板取得 登陆用户名 和 密码。 用户名是 customer密码是一串随机生成的字符串 使用 su 切换到 root 还需要输入密码,这样频繁操作比较麻烦。 免密登陆 root安装 sudo 实现免密 su 12apt updateapt install -y sudo 修改 /etc/sudoers 文件注意:只能用 visudo 交互式来修改 sudoers 文件 这是为了防止被脚本修改,就别想用 echo 来改了 visudo 会验证配置的,如果不验证,而你写的配置有问题,那么你无法切换到 root,而只有 root 用户才能修改...阅读全文

博文 2021-03-01 20:20:31 驱蚊器喵的插座

HTTP状态码详解

可以在没有用户介入的情况下自动提交所需要的后续请求。客户端应当自动监测无限循环重定向(例如:A->A,或者A->B->C->A),因为这会导致服务器和客户端大量不必要的资源消耗。按照 HTTP/1.0 版规范的建议,浏览器不应自动访问超过5次的重定向。 300 被请求的资源有一系列可供选择的回馈信息,每个都有自己特定的地址和浏览器驱动的商议信息。用户或浏览器能够自行选择一个首选的地址进行重定向。 除非这是一个 HEAD 请求,否则该响应应当包括一个资源特性及地址的列表的实体,以便用户或浏览器从中选择最合适的重定向地址。这个实体的由 Content-Type 定义的所决定。浏览器可能根据响应的以及浏览器自身能力,自动作出最合适的选择。当然,RFC 2616规范并没有规定这样的自动选...阅读全文

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

Debian的版本号及distributions

然而然地产生了:如果在/etc/apt/apt.conf中配置这个参数为stable,那么每次apt命令时如果没有指定目标distribution,那么目标distribution就会是stable;当需要操作其他distribution时,只要用-t明确指定就可以了。指定该参数的可以这么写:APT::Default-Release stable; 也可以这么写: APT { Default-Release stable; }; 如果指定了目标distribution(不管是用APT::Default-Release指定还是用-t参数指定),apt用下面的算法来分配优先级: priority 100 to the version that is already installed (if...阅读全文

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

2017年DevOps的5大发展预测

DevOps流程中去以确保合规。对于需要快速推进的DevOps世界来说,将安全放在首位是一种挑战。但是,如果没有这么做,2017年可能会出现由于DevOps推进导致的重要数据泄漏。 Harrison说,“我们可能会看见重大漏洞溯源后和DevOps的使用有关,这将会促成DevOps和安全团队成为亲密伙伴。” 更多自动化代码 上一年,公司开始引入自动化工具以减少为应用程序中寻找缺陷代码的冗长工作。2017年对于开发者会有更多的自动化工具。GitLab产品副总裁Job van der Voort认为,这不是一件坏事,因为自动化将会围绕着代码测试、数据聚合和化、报表和通知展开。 他提到,“由于当前的新硬件和技术(如GPU和并行计算),通过机器学习的自动化编码将比以往更加流行。” 感谢朱昊冰对本文的审校...阅读全文

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

Dubbo 2.7.0发布 分布式RPC服务框架

中心解耦,增加对 Apollo 等第三方专业配置中心的支持,更易于扩展新增应用级别的动态配置规则规则体使用更易读、易用 YAML 外部化配置。支持读取托管在远程的集中式配置中心的 dubbo.properties,实现应用配置的集中式管控。更精炼的注册中心 URL,进一步减轻注册中心存储和同步压力,初步实现地址和配置的职责分离。新增服务元数据中心,负责存储包括服务静态化配置、服务定义(如方法签名)等数据,默认提供 Zookeeper, Redis 支持。此功能也是 OPS 实现服务测试、Mock 等治理能力的基础。异步编程模式增强(限定于 Dubbo 协议)原生 CompletableFuture 签名接口支持服务端异步支持异步 Filter 链新增 Protobuf 序列化协议扩展新增...阅读全文

博文 2019-01-18 09:43:16 debian.cn

Harbor 1.9 发布:新增多项企业级功能

Harbor 1.9 发布了,此版本新功能众多,包括 tag 保留和配额、可与 CI/CD 工具集成的 Webhook 通知、数据复制、Syslog 集成以及 CVE 例外策略等安全功能。 Webhook 如果您是项目管理员,可以通过 Webhook 的通知机制,将 Harbor 的项目与您技术栈的其余部分连接在一起。简言之,如果您配置了 Webhook,Harbor 会就把该项目中发生的某些事件(包括推送、拉取、删除镜像和 Helm Charts、镜像扫描及 CVEanqu 漏洞发现)向 Webhook 端点发出通知。通过这些事件,您可以将 Harbor 与其他系统集成在一起,以简化持续集成和开发过程。理想情况下,获得 Webhook 的端点应具有一个操作侦听器,用于解释 JSON ...阅读全文

博文 2019-10-09 12:12:04 debian.cn

PostgreSQL 13 正式版发布

-ahead logs)之前将其删除,现在可在 PostgreSQL 13 中进行调整,以指定要保留的 WAL 文件的最大数量, 有助于避免磁盘空间不足错误。 PostgreSQL 13 还增加了更多让管理员可以监控数据库活动的方法,包括从 EXPLAIN 中查看 WAL 使用情况的统计信息、流式基础备份的进度,以及 ANALYZE 命令的进度。此外,可以使用新的 pg_verifybackup 命令验证 pg_basebackup 命令输出的完整性。 应用开发 PostgreSQL 13 对来自不同数据源的 PostgreSQL 数据类型进行了优化。此版本在其 SQL/JSON 路径支持中增加了datetime()函数,它可以将有效的时间(如 ISO 8601 字符串)转换为...阅读全文

博文 2020-10-04 20:07:23 debian.cn

Linux 中使用 Fio 测评硬盘性能

Fio(Flexible I/O Tester) 是一款由 Jens Axboe 开发的用于测评和压力/硬件验证的自由开源的软件。它支持 19 种不同类型的 I/O 引擎 (sync、mmap、libaio、posixaio、SG v3、splice、null、network、 syslet、guasi、solarisaio,以及更多), I/O 优先级(针对较新的 Linux 内核),I/O 速度,fork 的任务或线程任务等等。它能够在块设备和文件上工作。 Fio 接受一种非常简单易于理解的文本的任务描述。软件默认包含了几个示例任务文件。 Fio 展示了所有类型的 I/O 性能信息,包括完整的 IO 延迟和百分比。 它被广泛的应用在非常多的地方,包括测评、QA,以及验证用途。它支持...阅读全文

博文 2018-08-15 19:18:24 debian.cn

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

bmon 是类 Unix 系统中一个基于文本,简单但非常强大的 网络监视和调试工具,它能抓取网络相关统计信息并把它们以用户友好的展现出来。它是一个可靠高效的带宽监视和网速估测工具。 它能使用各种输入模块读取输入,并以各种输出模式显示输出,包括交互式文本用户界面和用于脚本编写的可编程文本输出。 在 Linux 上安装 bmon 带宽监视工具 几乎所有 Linux 发行版的默认仓库中都有 bmon 软件包,可以从默认包管理器中轻松安装,但可用的版本可能比较旧。 $ sudo yum install bmon [On RHEL/CentOS/Fedora] $ sudo dnf install bmon [On Fedora 22+] $ sudo apt-get install bmon...阅读全文

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

Go1.16 新特性:一文快速上手 Go embed

" //go:embed hello.txt var s string func main() { print(s) } 我们首先在对应的目录下创建了 hello.txt 文件,并且写入文本内容 “吃煎鱼”。 在代码中编写了最为核心的 //go:embed hello.txt 注解。注解的很简单,就是 go:embed 指令声明,外加读取的内容的地址,可支持相对和绝对路径。 输出结果: 吃煎鱼 读取到静态文件中的内容后自动赋值给了变量 s,并且在主函数中成功输出。 而针对其他的基础类型,Go embed 也是支持的: //go:embed hello.txt var s string //go:embed hello.txt var b []byte //go:embed hello.txt var f...阅读全文

博文 2021-02-17 08:44:12 CSDN

Terraform 学习总结 — Terraform 简介

能生成相关图表的数据(dot 的数据),我们通过 dot 命令来生成可视化的图表,先通过下面的命令安装 dot 程序: $ sudo apt install graphviz 然后生成一个图表: $ terraform graph | dot -Tsvg > graph.svg 上图描述了我们通过 azurerm 驱动创建了一个 Resource Group。 使用 apply 命令完成部署操作 在使用 apply 命令执行实际的部署时,默认会先执行 plan 命令并进入交互模式等待用户确认操作,我们已经执行过 plan 命令了,所以可以使用 -auto-approve 选项跳过这些步骤直接执行部署操作: $ terraform apply -auto-approve 到 Azure 站...阅读全文

Kubernetes v1.21 新特性预览

Kubernetes 集群(Identity Provider,标识提供者)与外部系统(relying parties, 依赖方)所分发的服务账号令牌。CRIContainerLogRotation 进入稳定版本,kubelet 将会自动为 containerd 等 CRI 容器运行时轮换日志。结构化日志(Structured Logging)进入 Beta,很多组件的日志都改成以 JSON 记录,这样第三方日志处理系统就可以方便地从日志中解析出日志所对应的资源对象和资源属性。EfficientWatchResumption 进入 Beta,kube-apiserver 重启后 watch 缓存将更高效的恢复,更好的支持大规模集群。CSIServiceAccountToken 进入 Beta,使得 CSI...阅读全文

博文 2021-03-30 20:24:36 mp.weixin.qq.com

监控Kubernetes集群证书过期时间的三种方案 - OSCHINA

-certificate-exporter监控集群所有node的 /etc/kubernetes/pki 和 /var/lib/kubelet 下的证书以及 kubeconfig 文件 优势: 可以监控所有 node, 所有 kubeconfig 文件, 以及 所有 tls 的 secret 证书, 如果要监控 Kubernetes 集群以外的证书, 也可以如法炮制; 范围广而全; 需要额外安装: x509-certificate-exporter, 对应有 1 个 Deployment 和 多个 DaemonSet, 对 Kubernetes 集群的资源消耗不少. 可以根据您的实际情况灵活进行选择. 🎉🎉🎉 📚️参考文档 如何使用 Blackbox Exporter 监控 URL? - 东风微鸣技术...阅读全文

博文 2022-12-10 06:49:43 中文开源技术交流社区

CentOS停止维护后,我们应该用什么操作系统?

、家庭路由器以及大量单板计算机(SBC)。大量的软件包Debian 拥有大量的软件包(当前的稳定版本:59000 个软件包) ,使用 deb 。不同的发布版本除了我们的稳定版本外,您还可以通过安装测试版或不稳定版本来获得更新版本的软件。公开的错误跟踪系统我们的 Debian 错误跟踪系统(BTS)向所有人公开,任何人都可通过浏览器访问。我们不会隐藏我们的软件错误,您可以轻松提交新的错误报告或参与讨论。Debian 政策和开发人员工具Debian 提供高质量的软件包。欲了解我们的质量标准,请阅读我们的政策,它规定了每个被发行版接受的软件包所必须满足的技术需求。我们的持续集成策略包括 Autopkgtest(对软件包进行测试),Piuparts(测试安装、升级和删除),以及 Lintian(检...阅读全文

如何在 Debian 上添加和删除用户

提供了一个更熟悉的文字编辑体验。使用箭头键移动光标,并搜索如下所示的线: / etc / sudoers root ALL=(ALL:ALL) ALL 在这行下面,复制你在这里看到的,只改变单词“root”来引用你想给sudo权限的新用户: / etc / sudoers root ALL=(ALL:ALL) ALL sammy ALL=(ALL:ALL) ALL 你应该为每个应该给予完全sudo权限的用户添加一个这样的新行。当你完成,你可以保存并通过点击关闭文件CTRL-X其次是Y ,然后ENTER确认。 如何删除用户 如果您不再需要用户,最好删除旧帐户。 您可以删除用户本身,而不删除任何他们的文件,通过键入作为根用户: deluser sammy 如果您以具有sudo权限的其他非...阅读全文

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

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

deployments,而背后的复杂性被隐藏在简单的抽象中。但为了充分理解它为我们提供的价值,我们需要理解它的内部原理。 本指南将引导您理解从 client 到 Kubelet 的请求的完整生命周期,必要时会通过源代码来说明背后发生了什么。 这是一份可以在线修改的文档,如果你发现有什么可以改进或重写的,欢迎提供帮助! 1. kubectl 验证和生成器 当敲下回车键以后,kubectl 首先会执行一些客户端验证操作,以确保不合法的请求(例如,创建不支持的资源或使用错误的镜像名称)将会快速失败,也不会发送给 kube-apiserver。通过减少不必要的负载来提高系统性能。 验证通过之后, kubectl 开始将发送给 kube-apiserver 的 HTTP 请求进行封装。kube-apiserver 与...阅读全文

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

我要彻底放弃 Debian 操作系统!-Michael Stapelberg

库。一个恰当的数据库,或者至少是二进制的可交换都需要花费很大力气。 Debian Code Search希望尽快接受新包。我们曾经用过Debian的fedmsg实例,但似乎现在已经不见了。目前还不清楚从哪里获取新包的通知,以及获取这些包的最佳位置。 复杂的构建堆栈 请参阅我的这篇文章“Debian软件包构建工具”(https://michael.stapelberg.ch/posts/2016-11-25-build-tools/)。让我感到困惑的是其他人不认为工具的蔓延是个问题。 非常痛苦的开发者体验 到目前为止,本文讨论的大多数都是开发Debian的体验,但是正如我最近的这篇文章“Debian中的调试体验”(https://michael.stapelberg.ch/posts...阅读全文

博文 2019-03-22 17:01:23 Michael Stapelberg

Golang 操作 Kafka 样例

务器都是一个代理(Broker). 消费者可以订阅一个或多个话题,并从Broker拉数据,从而消费这些已发布的消息。 5.Partition(分区):Topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列。partition中的每条消息都会被分配一个有序的id(offset) Message:消息,是通信的基本单位,每个producer可以向一个topic(主题)发布一些消息。 复制代码 1.1.5. 消息 消息由一个固定大小的报头和可变长度但不透明的字节阵列负载。报头包含版本和CRC32效验和以检测损坏或截断 1.1.6. 消息 1. 4 byte CRC32 of the message 2. 1 byte "magic...阅读全文

博文 2023-01-10 13:46:09 掘金

协议介绍之深入了解 gRPC

...) ... +---------------------------------------------------------------+ Length:也就是 Frame 的长度,默认最大长度是 16KB,如果要发送更大的 Frame,需要显式的设置 max frame size。 Type:Frame 的类型,譬如有 DATA,HEADERS,PRIORITY 等。 Flag 和 R:保留位,可以先不管。 Stream Identifier:标识所属的 stream,如果为 0,则表示这个 frame 属于整条连接。 Frame Payload:根据不同 Type 有不同的。 可以看到,Frame 的定义还是非常的简单,按照官方协议,可以非常方便的写一个出来。 Multiplexing HTTP/2 通过 stream 支持了连接的多路复用,提高了连接的利用率。Stream 有很多重要特性: 一条连接可以包含多个...阅读全文

博文 2017-06-22 11:08:48 debian.cn

Apollo 配置中心简单介绍

的权限、流程治理等特性。 Apollo支持4个维度管理Key-Value的配置: application (应用)environment (环境)cluster (集群)namespace (命名空间) 同时,Apollo基于开源模式开发,开源地址:https://github.com/ctripcorp/apollo 1.3 配置基本概念 既然Apollo定位于配置中心,那么在这里有必要先简单介绍一下什么是配置。 按照我们的理解,配置有以下几个属性: 配置是独立于程序的只读变量 配置首先是独立于程序的,同一份程序在不同的配置下会有不同的行为。其次,配置对于程序是只读的,程序通过读取配置来改变自己的行为,但是程序不应该去改变配置。常见的配置有:DB Connection Str...阅读全文

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

提问的智慧 – 全文

要参与者 使用易于读取且标准的文件发送问题 本章阅读提示[14]。 如果你将问题搞得复制难以阅读,它多半会被忽略,人们更愿读易懂的问题,所以: 使用纯文本而不是HTML; 发送邮件时如有附件,记得添加附件,同时记得检查附件内容是否能正常打开; 不要发送整段的文字,尝试将文字按主题分段; 发送数据时应该发送原始数据,让回复者看到的东西与你看到的一样; 很多邮件程序并不支持「Quoted-Printable」MIME编码,所以谨慎使用; 不要指望黑客们阅读封闭的文档,诸如微软公司的Word或Excel文件等。大多数黑客讨厌这种文件。即使他们能够处理,也很厌恶这么做; 如果你用Windows操作系统发送电子邮件,关闭微软的「引用」功能,以免在你的邮件中出现乱码; 切勿在在论坛勿滥用...阅读全文

博文 2009-10-01 13:18:00 debian.cn

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

打印“Hello World!”,进而要他们记忆 printf 的各种“字符”的意义,要他们实现各种复杂的打印输出,甚至要求打印到文本文件里,然后再读出来…… 可是殊不知,这种输出输入操作其实根本不算是语言的一部分,而且对于掌握编程的核心概念来说,都是次要的。有些人的 Java 课程进行了好几个星期,居然还在布置各种 printf 的作业。学生写出几百行的 printf,却不理解变量和函数是什么,甚至连算术语句和循环语句都不知道怎么用!这就是为什么很多初学者感觉编程很难,我连 %d,%f,%.2f 的含义都记不住,还怎么学编程! 然而这些野鸡大学的“教授”头衔是如此的洗脑,以至于被他们教过的学生(比如我女朋友)到我这里请教,居然骂我净教一些没用的东西,学了连 printf 的作业都没...阅读全文

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

WebAssembly:无需容器的 Docker (上)

布与 WasmEdge 合作支持 WebAssembly。本文将解释什么是 WebAssembly(Wasm),为什么它与 Docker 生态相关,并提供一些实践示例供大家尝试。 我们假设你已经熟悉 Docker 工具。 我们将使用我们在 PHP 的 WebAssembly 端口上做的工作来演示如何构建 PHP 解释器,将其打包为 OCI 镜像的一部分,并使用 Docker 运行它。请注意,本文专注动手经验,而不是讨论技术细节。WebAssembly 是什么?为什么选它?本节是对 WebAssembly 的基本介绍。 已经熟悉 Wasm 的小伙伴,可以快速重温一下,明天的文章将介绍更多实践。什么是 WebAssembly?WebAssembly 是一种定义二进制指令的开放标准,它支持从不...阅读全文

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

字节跳动开源微服务中间件 CloudWeGo - OSCHINA

/kitex-benchmark。 扩展性:Kitex 设计上做了模块划分,提供了较多的扩展接口以及默认的扩展实现,使用者也可以根据需要自行定制扩展。Kitex 未耦合 Netpoll,开发者可选择其他网络库扩展使用。 消息协议:RPC 消息协议默认支持 Thrift、Kitex Protobuf、gRPC。Thrift 支持 Buffered 和 Framed 二进制协议;Kitex Protobuf 是 Kitex 自定义的 Protobuf 消息协议,协议类似 Thrift;gRPC 是对 gRPC 消息协议的支持,可以与 gRPC 互通。除此之外,使用者也可以扩展自己的消息协议。 传输协议:传输协议封装消息协议进行 RPC 互通,传输协议可以额外透传元信息,用于服务治理,Kitex 支持的...阅读全文

博文 2021-09-09 13:56:42 中文开源技术交流社区

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

4、反序链接关系 rev 属性在 HTML4 里有定义,但是它并没出现在 HTML5 里。W3C 决定在 元素里重新包含 rev 属性。rev 属性标识当前和反向的链接文档的关系。它已经被包含来支持广泛使用数据结构标记,RDFa。 让我们用两个文档来举个例子,每个包含一课程,在它们之间的链接可以使用如下 rel 和...阅读全文

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

Gitlab CI 配置文件 .gitlab

。 environment用于定义job部署到特殊的环境中。如果指定了environment,并且没有该名称下的环境,则会自动创建新环境。 在最简单的中,环境关键字可以定义为: deploy to production: stage: deploy script: git push production HEAD:master environment: name: production 在上面这个例子中,deploy to profuctionjob将会执行部署到production环境的操作。 environment:name 注意 GitLab 8.11 开始引入。 在GitLab8.11之前,环境名称定义为environment:production。现在推荐的做法是定义为name关键字...阅读全文

博文 2018-12-12 21:01:19 ci.yaml 详解(上)

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

register: join_command_raw - name: set join command set_fact: join_command: "{{ join_command_raw.stdout_lines[0] }}" - hosts: workers become: yes tasks: - name: join cluster shell: "{{ hostvars['master'].join_command }} >> node_joined.txt" args: chdir: $HOME creates: node_joined.txt 这是剧本的作用: 第一个play获取需要在worker节点上运行的join命令。 此命令将采用以下: kubeadm join --token...阅读全文

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

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

1440次申请VPC IP和释放VPC IP操作。 然而,经过数天的测试统计,发现通过该CronJob,集群每天申请IP次数高达2500以上, 而释放的的IP次数也达到了1800。申请和释放次数都超过了1440,而且申请次数超过了释放次数,意味着,部分分配给Pod的VPC IP被无效占用而消失了。 CNI:待删除的IP去哪儿了? 仔细分析CNI插件的运行日志,很快发现,CNI在执行拆除SandBox网络动作(CNI_COMMAND=DEL)中,存在不少无法找到Pod IP的情况。由于UK8S 自研的CNI查找Pod IP依赖正确的Pod网络名称空间路径(:/proc/10001/net/ns),而kubelet传给CNI的NETNS环境变量参数为空字符串,因此,CNI无法获取待释放的VPC...阅读全文

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

}cgc.evictPodLogsDirectoriescgc.evictPodLogsDirectories 方法会回收所有可回收 pod 以及 container 的 log dir,其主要逻辑为:1、首先回收 deleted 状态 pod logs dir,遍历 pod logs dir /var/log/pods,/var/log/pods 为 pod logs 的默认目录,pod logs dir 的为 /var/log/pods/NAMESPACE_NAME_UID,解析 pod logs dir 获取 pod uid,判断 pod 是否处于 deleted 状态,若处于 deleted 状态则删除其 logs dir;2、回收 deleted 状态 container logs 链接目录,/var/log/containers 为 container log 的默认目录,其会软链...阅读全文

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

分布式运行时 Dapr 知多少

,但不完全是。比如nodeapp暴露了一个API:http://10.0.0.2:8000/neworder,按照传统的方式,直接HTTP POST这个API访问就得了,但在Dapr中,其提供了服务间方法调用的接口规范,需要按照POST/GET/PUT/DELETE http://localhost:/v1.0/invoke//method/进行访问。那假设pythonapp需要访问nodeapp的方法,就需要POST一个请求到http://localhost:3500/v1.0/invoke/nodeapp/method/neworder。你可能会想为何多此一举呢?此举的意义何在呢?目的很简单,就是为了实现对服务间网络通信的控...阅读全文

译:Kubernetes 最佳实践

。控制平面是 K8s 的核心,这些组件保持系统运行,因此对于正确 K8s 操作至关重要。 Kubernetes API、kubelet、etcd、controller-manager、kube-proxy 和 kube-dns 组成了控制平面。控制平面组件可以以最常见的 K8s 监控工具 Prometheus 兼容的输出指标。应该使用自动监控工具而不是手动管理告警。可以在启动 kube-apiserver 时打开 K8s 中的审计日志记录,以便使用选择的工具进行更深入的调查。audit.log 将详细记录向 K8s API 发出的所有请求,并应定期检查集群上可能存在的任何问题。Kubernetes 集群默认策略在 audit-policy.yaml 文件中定义,可以根据需要进行修改...阅读全文

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

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

消费消息需要紧急处理,可以修改消费端程序,让其将收到的消息快速转发到其他topic(可以设置很多分区),然后再启动多个消费者同时消费新主题的不同分区。 2)由于消息数据变动或消费者程序有bug,导致消费者一直消费不成功,也可能导致broker积压大量未消费消息。 此种情况可以将这些消费不成功的消息转发到其它队列里去(类似死信队列,kafka没有死信队列,需要自己写),后面再慢慢分析死信队列里的消息处理问题。 2.1.5 延时队列 kafka没有延时队列,需要自己实现;延时队列存储的对象是延时消息。所谓的“延时消息”是指消息被发送以后,并不想让消费者立刻获取,而是等待特定的时间后,消费者才能获取这个消息进行消费,延时队列的使用场景有很多, 比如 : 1)在订单系统中, 一个用户下单之后通常...阅读全文

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

Monit:开源服务器监控工具

不指向目录,monit将禁用对此条目的监视。如果Monit在被动模式下运行或者没有定义启动方法,Monit只会在错误时发送警报。 远程主机 CHECK HOST ADDRESS 主机地址可以指定为主机名字符串或点分十进制的IP地址字符串。例如,tildeslash.com或“64.87.72.95”。 系统 CHECK SYSTEM 的唯一的名称通常是本地主机名,而是可以使用任何描述性名称。如果使用变量$ HOST作为名称,它将扩展为主机名。此检查允许监控一般系统资源,如CPU使用率,总内存使用或负载平均。该唯一名称在邮件警报中用作系统主机名,在M/Monit中用作主机条目的初始名称。 自定义...阅读全文

博文 2023-04-12 15:21:43 阿里云开发者社区

最全的 DevOps 工具集合

Groovy 的领域特定语言,替代 Apache Maven 使用的 XML 来声明项目配置。 MSBuild Microsoft Build Engine(通常称为 MSBuild)是用来托管代码及原生 C++ 代码的免费开源构建工具集,它之前是.NET Framework 的一部分。Visual Studio 依赖 MSBuild(反之则不然)。 Rake Rake 是一个软件任务管理和自动化构建工具。它允许用户指定任务并描述依赖关系。你也可以对命名空间中的组任务执行这些操作。 JFrog Artifactory JFrog Artifactory 这款工具可用来存储构建过程的二进制输出,以备分发和部署之用。Artifactory 支持许多软件包,如 Maven、Debian、npm...阅读全文

博文 2021-05-26 14:35:21 博客园

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

controller节点要么是Active状态,或者就是standBy状态。Process.Roles使用KRaft模式来运行kafka集群的话,我们有一个配置叫做Process.Roles必须配置,这个参数有以下四个值可以进行配置:Process.Roles=Broker, 服务器在KRaft模式中充当Broker。Process.Roles=Controller, 服务器在KRaft模式下充当Controller。Process.Roles=Broker,Controller,服务器在KRaft模式中同时充当Broker和Controller。如果process.roles没有设置。那么集群就假定是运行在ZooKeeper模式下。如果需要从zookeeper模式转换成为KRaft模式,那么需要进行重新...阅读全文

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

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

个基础架构提供者的。 但是没有两个服务是完全相同的,服务有很多类型,有时候称其为服务模型。服务模型可能构成像Shakespeare服务的简单服务:有前端,负载均衡器以及数据库。服务模型仅需要知道运行哪个二进制文件,在多少集群里运行它,以及数据库schema。服务模型的逻辑随后扩展该服务的配置。比如,服务模型能够将集群列表转化为负载均衡器基础架构的配置。 实际上,服务模型可能就是简单的一段脚本,将一个配置文件扩展为基础架构所需要的东西;服务模型也可能是复杂的pipeline。 如果你在处理多个服务模型以及多个基础架构提供者,就不得不维护N个服务模型和M个基础架构提供者之间的集成。这样的集成包括为每个提供者生成特定的配置并且部署它们——这个程序对于不同的提供者可能大不相同。 我们称之为NM问...阅读全文

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

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

Cluster中的任意一个分片,如果操作的key不在此分片负责的Slot范围内,Redis Cluster会自动将请求重定向到正确的分片上。 hash tags 在基础的分片原则上,Redis还支持hash tags功能,以hash tags要求的明明的key,将会确保进入同一个Slot中。例如:{uiv}user:1000和{uiv}user:1001拥有同样的hash tag {uiv},会保存在同一个Slot中。 使用Redis Cluster时,pipelining、事务和LUA Script功能涉及的key必须在同一个数据分片上,否则将会返回错误。如要在Redis Cluster中使用上述功能,就必须通过hash tags来确保一个pipeline或一个事务中操作的所有key都位于同一个...阅读全文

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