细数k8s支持的4种类型的container - 侃豺小哥
:9f1003c480699be56815db0f8146ad2e22efea85129b5b5983d0e0fb52d9ab70 Port:
:9f1003c480699be56815db0f8146ad2e22efea85129b5b5983d0e0fb52d9ab70 Port:
在用 Golang 开发过程中,我们一定能在代码里很多函数或方法都会传递 context, 也会经常遇到这样的报错 context deadline exceeded。你有想过或去探究过 context 到底是什么吗,为什么会遇到上述的报错。在这里我们就分析一下 context 是什么及用途。 首选 Golang 中的 context 值得是 context.Context 接口,Golang 在 1.7 版本中引入标准库的接口。context 主要用来在 goroutine 之间传递上下文信息,包括:取消信号、截止时间、key-value 等。 Context 定义 Context 接口定义如下 1 2 3 4 5 6 7 8 9 10 type Context interface...阅读全文
塞队列性能更好的 Mpsc (多生产单消费)队列,它使用大量的 long 类型字段来做内存区域填充,用空间换时间解决了伪共享问题,减少了并发情况下的写竞争来提高性能。 在流量高峰时期,链路数据的发送队列这一块的性能从火焰图上看 CPU 占比平均小于2%,日常服务CPU整体水位与0采样相比几乎没有明显差距,因此我们经过多方面压测对比后,决定在生产环境客户端侧开放链路数据的全量上报,实现了在得物技术史上的全链路 100% 采样,终结了一直以来因为低采样率导致问题排查困难的问题,至此,在第三阶段,得物的全链路追踪技术正式迈入 Trace2.0 时代。 得益于 OpenTelemetry 整体的可插拔式 API 设计,我们二次开发了 OpenTelemetry Java...阅读全文
。CI_COMMIT_REG_NAME就是一个很好的例子,它的值表示用于构建项目的分支或tag名称。除了在.gitlab-ci.yml中设置变量外,还有可以通过GitLab的界面上设置私有变量。 更多关于variables。 cache Gitlab Runner v0.7.0 开始引入。 cache用来指定需要在job之间缓存的文件或目录。只能使用该项目工作空间内的路径。 从GitLab 9.0开始,pipelines和job就默认开启了缓存 如果cache定义在jobs的作用域之外,那么它就是全局缓存,所有jobs都可以使用该缓存。 缓存binaries和.config中的所有文件: rspec: script: test cache: paths: - binaries/ - .config 缓存git中没有被跟踪的文件...阅读全文
。Kubernetes 管理员的一个问题是在 Linux 主机上分配进程 ID(PID)。以往没有什么可以阻止容器内的进程创建 PID。如果 PID 的系统资源耗尽,即使其它资源不受约束,也可能导致主机不稳定。管理员现在可以为每个 pod 的 PID 数设置默认值,并在 pod 中为每个节点保留多个可分配的 PID。 Pod 优先级和抢占支持 现在可以为 pod 分配优先级,以便 Kubernetes 控制器可以在集群资源不足时做出更好的决策。可以删除不太重要的 pod,为更重要的 pod 创建空间。 Discovery API 从 RBAC 基础架构中删除 默认情况下,有一组 API 允许未经身份验证的访问。在 v1.14 中,已从该集中删除了 Discovery API,以提高隐私和安全性...阅读全文
Mac下终端工具iTerm2安装一、iTerm2简介: Mac OS自带的终端,用起来虽然有些不太方便,界面也不够友好,iTerm2是一款相对比较...司空123阅读 263,357评论 23赞 205...阅读全文
Apache APISIX Ingress Controller 是一款以 Apache APISIX 作为数据面的 Kubernetes Ingress Controller 开源工具,目前已经更新到 v1.3 版本,实现了如证书管理、负载均衡、金丝雀发布等功能。 长久以来,证书管理都不是一件简单的事情,虽然 Apache APISIX Ingress Controller 支持从 Kubernetes Secrets 资源中提取证书和私钥,并转换为 Apache APISIX 可识别的 SSL 对象,但这只是整个证书管理链中的一部分,证书的颁发、轮转、吊销逻辑依然需要管理员执行,尤其当证书数量比较多时,工作量往往并不小,因而会占用管理员不少的时间。 Cert Manager 是一款致力...阅读全文
我们确定了日志文件的路径后,就可以使用 echo 等命令清空了。 查找日志路径可以使用命令, `docker inspect --format='{{.LogPath}}' 1e1897500f00` 一键清理多个容器日志的命令,就可以这样写, ```docker inspect --format='{{.LogPath}}' `docker ps -q` | xargs -i cp /dev/null {}```...阅读全文
Linux、MX Linux等等。 03 技术当道,管理缺失 除了“超标”的个体自由之外,Debian 还从骨子里存在一种“唯技术倾向”。 当初,Debian 创始人 Ian Murdock 之所以开始做 Linux 新版本,是因为他十分不满 SLS(Softlanding Linux System,被称为最古老的 Linux 发行版),就对 SLS 进行改进,结果改进了太多东西,足够发布一个新的版本了。 这一出发点就非常极客 —— 用技术去创造自己想要的东西。因此,尽管 Debian 内部因为 systemd 吵得不可开交,但多数争论都是围绕技术本身。 从基因上,Debian 社区基本就是一个技术构建的空间,关于技术的道德契约才是凝聚 Debian 的核心力量,而这也注定了Debian 内部的平衡...阅读全文
读取。用户态进程读取这些数据后,进一步关联 Kubernetes 元数据后推送到存储端。这是整体处理过程。eBPF 的超能力体现在能订阅各种内核事件,如文件读写、网络流量等,运行在 Kubernetes 中的容器或者 Pod 里的一切行为都是通过内核系统调用来实现的,内核知道机器上所有进程中发生的所有事情,所以内核几乎是可观测性的最佳观测点,这也是我们为什么选择 eBPF 的原因。另一个在内核上做监测的好处是应用不需要变更,也不需要重新编译内核,做到了真正意义上的无侵入。当集群里有几十上百个应用的时候,无侵入的解决方案会帮上大忙。但作为新技术,人们对 eBPF 也存在些许担忧,比如安全性与探针性能。为了充分保证内核运行时的安全性,eBPF 代码进行了诸多限制,如最大堆栈空间当前为 512、最...阅读全文
9 月 8 日,字节跳动正式宣布开源 CloudWeGo。这是一套以 Go 语言为核心、专注于微服务通信与治理的中间件集合,具有高性能、可扩展、高可靠的特点。 据介绍,作为项目维护方,字节跳动基础架构团队已推进项目以 CloudWeGo 开源库为主进行迭代,未来团队将坚持内外维护一套代码,统一迭代演进,并逐步分享更多内部微服务最佳实践。 项目地址:https://github.com/cloudwego 项目官网:www.cloudwego.io CloudWeGo 第一批开源了四个项目,以 RPC 框架 Kitex 和网络库 Netpoll 为主。 Kitex Kitex 是一个 Golang 微服务 RPC 框架,具有高性能、强可扩展的特点。 字节跳动使用 Golang 作为主要业务开...阅读全文
iptables在Linux发行版本如Centos、Debian、Ubuntu、Redhat等的配置内容基本一致,但是配置方式有所不同。由于工作日常用的是Centos 6.x,它的配置较简单。下面对Debian上配置iptables做一个说明。 配置步骤 使用用户名/密码登录系统 root@localhost:~# 安装iptables root@localhost:~# apt-get install iptables 安装成功后查看iptables端口开放情况 root@localhost:~# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy...阅读全文
2017 年 7 月 20 日,Canonical 结束了 对 去年 10 月发布的 Ubuntu 16.10 的支持。也就说,从现在开始,Ubuntu 16.10 用户将不会再收到任何安全更新和软件更新。该版本只支持 9 个月时间,Ubuntu 16.10 用户需要更新到新版本如 17.04。 将 Linux 作为工作电脑系统的用户,不应该考虑此类支持时间很短的版本,他们应该选择 Ubuntu 的 LTS 版本,或者 Debian stable 或 CentOS,喜欢体验最新功能的用户则可以考虑滚动更新版本。你有很多选择。...阅读全文
API:POST/PUT http://localhost:
?如果你是 Oracle JDK 8 的用户,原 License 尚可免费使用,但之后若希望得到持续安全更新则需要为此付费。如今,在 Oracle 主导下的 Java 大环境已经发生变化。作为最大的 Java 的用户之一,阿里巴巴几乎拥有世界最大规模的 Java 应用集群,肯定需要为此采取一些行动。 基于此,阿里巴巴决定开源 OpenJDK 长期支持版本 Alibaba Dragonwell,一是因为其自身拥有大量 Java 客户和业务需求,阿里巴巴希望他们可以继续免费享受到 JDK 的所有功能;二是考虑到不少开发者可能会做出新的选择,阿里巴巴决定开源该项目,为开发者提供一个新的参考。 在过去三个月时间内,阿里巴巴方面对该项目进行了持续维护和更新。据了解,本次 GA 版本的主要目的是让...阅读全文
获取数据时的延迟。此功能在大规模的应用程序上十分重要,因为数据离应用程序越近,程序就能更快获取到数据。 antirez 受 Ben Malec 演讲的启发,他想到可以将大部分需要频繁存和取的数据直接放在服务器的内存中,以便让 Redis 为客户端完成部分工作,并使客户端缓存更简单、更有效。这个就是 Client side caching(客户端缓存)的概念。 不过这个思路有一个需要解决的问题是,如何控制数据的有效时间?在程序允许的情况下,虽然可以直接设置数据的有效时间,让数据在一段时间后失效。但 antirez 表示,大多数的应用程序无法接受提供过时的数据的风险,因此必须找到更理想的方案来控制数据的失效时间。 所以 antirez 决定开发新的协议 RESP3,在协议中加入新特性来支持客户端...阅读全文
NVMe 设备和命名空间。我用它在 /dev/nvme0n1 找到了一个 NVMe 驱动器。下面是命令输出结果:$ sudo nvme listNode SN Model Namespace Usage Format FW Rev--------------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------/dev/nvme0n1 S42GMY9M141281 SAMSUNG MZVLB256HAHQ-000L7 1214.68 GB / 256.06 GB 512 B + 0 B...阅读全文
U 盘上安装多个 Linux 发行版的方式呢?我们将在本教程中看到如何做到这一点。 如何创建有多个 Linux 发行版的可启动 USB 我们有一个工具正好可以做到在单个 U 盘上保留多个 Linux 发行版。你所需要做的只是选择要安装的发行版。在本教程中,我们将介绍如何在 U 盘中安装多个 Linux 发行版用于现场会话live session。 要确保你有一个足够大的 U 盘,以便在它上面安装多个 Linux 发行版,一个 8 GB 的 U 盘应该足够用于三四个 Linux 发行版。 步骤 1 MultiBootUSB 是一个自由、开源的跨平台应用程序,允许你创建具有多个 Linux 发行版的 U 盘。它还支持在任何时候卸载任何发行版,以便你回收驱动器上的空间用于另一个发行版。 下载...阅读全文
本周日,谷歌在全球范围内遭遇了大规模中断,包括Gmail、YouTube和Google Drive在内基于谷歌云架构服务的诸多谷歌服务均受到影响。本次宕机北京时间6月3日凌晨2点58分开始,用户访问谷歌服务出现各种错误提醒,并且用户无法访问电子邮件、上传YouTube视频等。 根据谷歌官方状态页面显示,包括Gmail, Calendar, Drive, Docs, Sheets, Slides, Hangouts, Meet, Chat和Voice在内的谷歌服务均无法使用。那些依赖于谷歌云架构的第三方服务同时也受到影响,目前谷歌官方并没有完全恢复的预估时间,也没有公布关于本次宕机事件的根本原因。 苹果的iCloud服务也受到轻微影响,苹果报告称有不到1%的用户出现了响应时间低于正常值的情况...阅读全文
channel通道golang的并发模型是序列通信处理CSP(communicating sequential process)——使用通信来共享内存 ,避免goroutine因竞争共享内存频繁加锁产生的性能问题。基本数据结构golang中提供了一个特殊的类型channel实现goroutine之间的通信。channel类似于队列,先进先出。channel数据结构源码在src/runtime/chan.go下。chan 使用 hchan 表示,它的传参与赋值始终都是指针形式,每个 hchan 对象代表着一个 chan。hchan 中包含一个缓冲区 buf,它表示已经发送但是还未被接收的数据缓存。buf 的大小由创建 chan 时的参数来决定。qcount 表示当前缓冲区中有效数据的总量...阅读全文
或bpftrace等项目间接使用eBPF,这些项目在eBPF之上提供了抽象,并且不需要直接编写程序,而是提供了指定基于意图的定义的功能,然后使用eBPF实施。 如果不存在更高级别的抽象,则需要直接编写程序。 Linux内核希望eBPF程序以字节码的形式加载。虽然当然可以直接编写字节码,但更常见的开发实践是利用LLVM之类的编译器套件将伪C代码编译为eBPF字节码。 在编写eBPF程序之前,需要简单了解几个概念。 1)map(映射) :BPF最令人着迷的方面之一是,内核上运行的代码和加载了该代码的程序可以在运行时使用消息传递相互通信。 BPF映射是驻留在内核中的键/值存储。任何BPF程序都可以访问它们。在用户态中运行的程序也可以使用文件描述符访问这些映射。只要事先正确指定数据大小,就可以在映射...阅读全文
谷歌帐户来登录,在Linux和你使用的其他操作系统之间同步书签、扩展和应用程序。 其他替代方案:Vivaldi(Chromium)、GNOME Web(GTK)和QupZilla(Qt)。 3. GIMP照片编辑器 GIMP的全称是“GNU图像处理程序”,它是一款免费开源的Photoshop替代工具。虽然它缺少Adobe的一些比较花哨的功能,但是GIMP在常用功能方面与Adobe不相上下,有些方面甚至更胜一筹! 无论你是想快速自动修饰自拍照头像、创建可以在网上共享的多层次文化基因,还是作为摄影业余爱好的一部分,搞些专业的修饰工作,都要打量一下GIMP。 替代方案:Photomatix(收费版)、Pinta(GTK)和Shotwell(GTK)。 4. VLC媒体播放器 你不需要我告诉VLC是...阅读全文
每次将 Mac OS X 升级到新版本时,你只能干等着,看进度条慢慢变化,是不是觉得很无奈。最近有用户在 Reddit 中发帖,和其他用户共享了只需一个终端指令就能够让 macOS 升级变得更快。 这名用户表示,自己通过 App Store 升级 macOS 前后通常需要半个小时。macOS 已经内置了一个软件升级实用工具,它能够让系统升级变得更快。而且还支持用户一边升级一边使用设备。 这名用户表示自己通过这个办法升级 macOS 12.6 最新版本时只需要 10 分钟,升级过程中因为需要重启设备,有大约 2 分钟的时间无法使用设备。这名用户在帖子建议使用一下两条命令行即可执行更新: softwareupdate -ia 这个命令会执行安装更新的任务。升级过程时会收到提示,用户需要重启设备...阅读全文
gRPC是一个高性能、开源、通用的RPC框架,面向移动和HTTP/2设计,是由谷歌发布的首款基于Protocol Buffers的RPC框架。 gRPC基于HTTP/2标准设计,带来诸如双向流、流控、头部压缩、单TCP连接上的多复用请求等特性。这些特性使得其在移动设备上表现更好,更省电且节省空间占用。gRPC 1.0版本是2015年面世以后的第一次版本发布,开发者可以把该版本用于生产。API现在也是很稳定的。 Bugsnag(注:一家云端bug监控服务商)每天处理数以亿计的错误信息,为了处理这些数据,考虑优先构建一个可扩展,性能强大的后端系统,并从中学到很多有挑战性的技术。最近,我们推出了新版本的仪表板,这个项目要求扩展系统,来处理服务呼叫的显著增加,这些呼叫是跟踪用户发布和会话所需的...阅读全文
API收集堆栈跟踪和跟踪内存分配,因而其可以和OpenJDK、Oracle JDK和其他基于HotSpot JVM的Java应用在运行时协同工作。 Github项目链接地址:https://github.com/jvm-profiling-tools/async-profiler Async-profiler可以跟踪以下类型的事件: CPU周期; 硬件和软件性能计数器,如缓存未命中、分支未命中、页面错误、上下文切换等; Java堆中的分配; 满足的锁定尝试,包括Java对象监视器和可重入锁; 支持的平台Linux / x64 / x86 / ARM / AArch64macOS / x64注意:macOS分析仅限于用户空间代码。 生成的火焰图,绿色代表用户栈,黄色代表jvm,红色代表内核;横坐标...阅读全文
Grafana 6.4.4 发布了,Grafana 是一个功能丰富的指标标准仪表板和图形编辑器,用于分析和监控 Graphite、Elasticsearch、OpenTSDB、Prometheus 和 InfluxDB。 新版本更新说明如下: Bug Fixes DataLinks:修复模糊问题 #19883Docker:使解析 Docker 镜像中的时区成为可能 #20081LDAP:即使其中一个返回连接错误,也应尝试所有 LDAP 服务器 #20077LDAP:不再根据调试页面中的角色显示不正确匹配的组 #20018Singlestat:修复无数据/空值映射 #19951 详细更新说明:https://github.com/grafana/grafana/releases/tag...阅读全文
如果要了解一两个 ip 的一些简单的情况,比如 ls -l /data | wc -l,以前是要写到 inventory 文件中的, ansible -i hosts all -m shell -a "ls -l /data0/ | wc -l" 也可以这样,一台机器最后面要有一个逗号, ansible all -i 192.168.1.1, -m shell -a "ls -l /data0/ | wc -l" 两台机器用逗号隔开,并且不能有空格, ansible all -i 192.168.1.1,192.168.1.2 -m shell -a "ls -l /data0/ | wc -l" 参考: http://stackoverflow.com/ 除了上面的 shell 模块,还...阅读全文
基于 Debian 的 Parsix 发行版已经宣布将会在 Debian Stretch 发布六个月后终止。官方表示 Parsix GNU/Linux 8.15 (Nev) 在这段时间里会得到完全的支持,用户应该可以把他们的安装升级到 Debian Stretch 而不会有重大的问题。官方也会进行有必要的更改和更新,以确保能平滑过渡到 Debian Stretch。 下面是官方的公告全文: Parsix GNU/Linux 项目终止公告 — 2017.5.19 Parsix GNU/Linux 项目将在 Debian GNU/Linux 9.0 a.k.a Stretch 发布六个月后关闭。 Parsix GNU/Linux 8.15 (Nev) 在此期间将得到完全的支持,用户应该能够将其...阅读全文
消,将返回nil。Err 如果Done返回的channel没有关闭,将返回nil;如果Done返回的channel已经关闭,将返回非空的值表示任务结束的原因。如果是context被取消,Err将返回Canceled;如果是context超时,Err将返回DeadlineExceeded。Value 返回context存储的键值对中当前key对应的值,如果没有对应的key,则返回nil。可以看到Done方法返回的channel正是用来传递结束信号以抢占并中断当前任务;Deadline方法指示一段时间后当前goroutine是否会被取消;以及一个Err方法,来解释goroutine被取消的原因;而Value则用于获取特定于当前任务树的额外信息。而context所包含的额外信息键值对是如何存储的呢...阅读全文
以 TICK 监控方式为例,查询最近三天的,CPU 空闲率超过 90% 的主机列表, ``` SELECT usage_idle FROM (SELECT min("usage_idle") as usage_idle FROM "cpu" WHERE ("cpu" = 'cpu-total') AND ("time" > now() - 3d) GROUP BY "host") WHERE usage_idle > 93 GROUP BY "host" ```...阅读全文
平台用户在交易时可直接使用CET抵扣等价值的交易手续费,并享受专属费率优惠。 ** 3、享受VIP服务 ** 持有一定数量CET可以成为平台VIP客户,成为平台VIP可以获得费率折扣、提现加速、专享活动、专享客服等特权。 ** 4、专项活动权益 ** CET持有用户可享有平台市场推广活动的专项权益,如参与代币空投、投票上币、优质项目投资机会等。 ** 5、CoinEx Smart Chain(CSC)内置代币 ** CoinEx Smart Chain(CSC)是 CoinEx 即将推出的全新一代支持智能合约的智能链。CET将作为CSC的内置流通代币和其燃料使用。 ** 6、更多流通场景 ** 除了在CoinEx生态内部进行流通以外,CoinEx还将会推动CET在更多外部场景下进行使用和流通...阅读全文
果这个asset不健康,它仅仅会导致某个集群的运行中断,还是会影响全球的服务?插件还给用户特定的数据提供了空间,而不用占用负载的定义。 asset一般少于1kb数据,通常少于10kb,我们的最大值限制的是150kb。这个限制是为了让asset更容易被使用。这样,工具可以在内存里加载asset,无需担心这么做会造成过多的消耗。这个方案是受实体-组件系统[4]的启发。 asset的内容提供了足够的信息来构建建模资源的完整状态。具体来说,应该可以重新创建生产状态,而不必查看当前的生产状态——这是一个单向过程。 但是,所有的配置必须在asset里。比如,我们肯定有些情况需要MB级别的配置。这时,可以保存对外部数据源(比如包,数据库和版本控制)的引用。这些引用必须指向不可变外部数据。 在...阅读全文
时间对未使用的 images 列表进行排序;4、遍历未使用的 images 列表然后调用 im.runtime.RemoveImage 删除镜像,直到回收完所有未使用 images 或者满足空闲率;k8s.io/kubernetes/pkg/kubelet/images/image_gc_manager.go:328func (im *realImageGCManager) freeSpace(bytesToFree int64, freeTime time.Time) (int64, error) { // 1、获取已经使用的 images 列表 imagesInUse, err := im.detectImages(freeTime) if err != nil { return 0...阅读全文
Chrony 是一个多功能的 NTP (Network Time Protocol) 实现,类 Unix 系统上 NTP 客户端和服务器的替代品。它可以通过 NTP 服务或者类似 GPS 时钟接收器的硬件级参考时钟来同步系统时钟,具有更好的时钟准确度,并且对于那些间歇性互联网连接的系统很有帮助。Chrony 是免费开源的,并且支持 GNU/Linux 和 BSD 衍生版、Solaris 等。 Chrony 有两个核心程序:一个是 chronyd 守护进程,主要用于调整内核中运行的系统时间和时间服务器同步。它确定计算机增减时间的比率,并对此进行调整补偿。另一个是 chronyc,它提供一个用户界面,用于监控性能并进行多样化的配置。chronyc 可以在 chronyd 实例控制的计算机上工作...阅读全文
-Thin 会相对有点麻烦。 需要指定容量,末尾还要留点容量,因为 convert 到 thin-pool 后需要占用少量空间来存放一些元数据 metadata,2 MB,但这个容量不会从你创建的 lv 中去获取,所以这个容量要留有,分区不能全部划完。 1234[email protected]:/var/lib/vz/template/iso# vgs VG #PV #LV #SN Attr VSize VFree hdd 1 1 0 wz--n- 2.73t 2.63t s163941-vg 1 2 0 wz--n- 223.33g 0 vgs 看到剩余容量是 2.63T,我也指定 2.63T,实际上也留有一部分小数. 从名为 hdd 的 vg 中创建大小为 2.63T,名字叫 vm-data...阅读全文
表明他在 Debian Live 项目上的努力一直没有被重视或没有被足够重视。最具决定性的因素是因为在「包的含义」上存在冲突, R.Learmonth 申请了新的包名,而这侵犯了在 Debian Live 上使用的命名空间。 考虑到最主要的 Debian Live 包之一被命名为 live-build ,而 R.Learmonth 申请的新包名却是 live-build-ng ,这简直是对 live-build 的挑战。 live-build-ng 意为一种围绕 vmdebootstrap(LCTT 译注:创造真实的和虚拟机Debian的磁盘映像)工具的外部包装,这种包装是为了创造 live 介质(光盘和USB的插入),也是 Debian Live 最需要的的部分。但是当 Baumann...阅读全文
config --global credential.helper store store为永久存储,当然也可以设置临时的: git config –global credential.helper cache 默认为15分钟,如果想设置保存时间的话,可以输入: git config credential.helper 'cache --timeout=3600' 这样就设置了一个小时的有效时间。 执行完后查看 %HOME% 目录下的 .gitconfig 文件,会多了一项: [credential]helper=store 重新开启git bash会发现git push时不用再输入用户名和密码。在 Debian 等 Linux 系统中方法一致,只需要在自己的 $HOME 下创建 .git...阅读全文
Tmux 简单来说就是终端里的『窗口管理器』,如果我使用终端登录到远程主机并运行前台程序,那么这个窗口等于就被占用了,想要看一下 CPU 的使用率,就得再连接一次。但是如果在远程主机上运行 tmux,那么就可以开启多个控制台(类似于窗口),相当高效,比方说可以像下面这样: 需要注意的是,这里是在我本地使用 tmux,最好在远程主机也安装 tmux,这样就只需要连接一次。 Hello World 前面提到的窗口管理只是 tmux 功能的一小部分,另一个很有用的功能就是,连接到远程主机之后,一旦断开,那么当前账户登录的任务就被取消了,但是使用 tmux 可以在断开之后继续工作,下次登录可以查看。其他的功能还有: 窗口切换,每个窗口里还可以分割面板 配置方便,可以使用脚本 类似 vim 的双层操...阅读全文
服务。如果cortex有许多的查询,则可以扩展Querier或Query Frontend微服务。高可用性– Cortex可以在实例之间复制数据replicate data。这样可以防止数据丢失,并避免度量标准数据出现间断,即使发生机器故障and/orpod被驱逐。多租户–多个不受信任的parties可以共享同一群集。Cortex在从ingester到querying的整个生命周期中提供数据隔离。这对于为多个单元或应用程序存储数据的大型组织或运行SaaS服务的人员非常有用。长期存储– Cortex将数据分块存储并为其生成索引。可以将Cortex配置为将其存储在自托管或云提供商支持的数据库或对象存储中。Cortex的需求Prometheus高可用性和数据去重Prometheus默认情况下不具有...阅读全文
。此外,不要错过 Kafka Connect 任务重启增强、KStreams 基于时间戳同步的改进以及 MirrorMaker2 更灵活的配置选项。常规变化KIP-750:弃用 Kafka 中对 Java 8 的支持在 3.0 中,Apache Kafka 项目的所有组件都已弃用对 Java 8 的支持。这将使用户有时间在下一个主要版本 (4.0) 之前进行调整,届时 Java 8 支持将被取消。KIP-751:弃用 Kafka 中对 Scala 2.12 的支持对 Scala 2.12 的支持在 Apache Kafka 3.0 中也已弃用。与 Java 8 一样,我们给用户时间来适应,因为计划在下一个主要版本 (4.0) 中删除对 Scala 2.12 的支持。Kafka 代理、生产者、消...阅读全文
许匿名用户有创建目录的权利 dirmessage_enable=YES 是否显示目录说明文件,默认是YES但需要收工创建.message文件 xferlog_enable=YES 是否记录ftp传输过程 xferlog_file=/var/log/vsftpd.log 设置日志文件的路径 connect_from_port_20=YES 是否确信端口传输来自20(ftp-data) idle_session_timeout=600 设置默认的断开不活跃session的时间 data_connection_timeout=120 设置数据传输超时时间 max_clients=Number 如果以standalone模式起动,那么只有$Number个用户可以连接,其他的用户将得到错误信息,默认是...阅读全文
Ubuntu 19.10 生命周期将在今年 7 月结束,之后一段时间内最大的版本则是 Ubuntu 20.04 LTS,其重大更新和改进将在 2030 年前终止。 20.04 是 Ubuntu 的第 8 个 LTS 版本,计划于明年 4 月 23 日发布。Canonical 会为 10 份月发布的版本制定 25 周时间表和 4 月发布的版本制定 27 周时间表来指导 LTS 的发展,Ubuntu 20.04 的开发生命周期遵循的正是 27 周的发布时间表。如 Ubuntu wiki 所示, 从这个表中我们可以看到几个关键节点: 2 月 27 日:特性冻结 Ubuntu 团队停止引入新特性、程序包和 API,他们开始专注于修复开发版本中的 bug。 3 月 19 日:冻结用户界面 此时,用户...阅读全文
Kiwi TCMS 是一个集测试计划、测试运行和测试用例于一身的管理系统,用 Python 和 Django 编写。7.1 版本如下: 支持的升级路径: 5.3 (or older) -> 5.3.1 5.3.1 (or newer) -> 6.0.1 6.0.1 -> 6.1 6.1 -> 6.1.1 6.1.1 -> 6.2 (or newer) Improvements 将 Django 从 2.2.5 更新到 2.2.6将 python-GitLab 从 1.11.0 更新到 1.12.1pygithub 从 1.43.8 更新到 1.44psycopg2 从 2.8.3 更新到 2.8.4在所有遥测页面中添加帮助工具提示添加超链接验证 Fixes Issue #1147 API...阅读全文
间,响应大小。主要做统计用,设置分位数的值,会实时返回该分位数上的值。 Golang中集成 Prometheus 程序库 提供了一个用 Golang 写成的健壮的插桩库,可以用来注册,收集和暴露服务的指标。在讲述如何在应用程序中暴露指标前,让我们先来探究一下 Prometheus 库提供的各种指标类型。 下载 Prometheus go 客户端 go get github.com/prometheus/client_golang/prometheus/promhttp. Golang应用中集成 Prometheus HTTP 服务器 package main import ( "net/http" "github.com/prometheus/client_golang/prometheus...阅读全文
欧盟一般数据保护条例(GDPR)和加州消费者隐私法案(CCPA)是欧美两大经济体所出台的两部具有代表意义的个人数据保护方面的法规,代表欧美监管机关对于个人数据保护两种不同的管控取向。 本文选取了“个人数据或信息的类型与范围界定”、“法律的管辖范围”、“数据跨境传输管控”、“儿童数据的保护”、“数据主体的反对权和被遗忘权”等关键概念,对GDPR和CCPA的部分要点进行比较分析。 1. “个人数据”或“个人信息”的范围界定 1.1 GDPR对个人数据的定义——侧重用抽象概念定义,实践中存在很大解释空间 除了对少数“特殊种类个人数据”(如宗教信仰、种族、工会成员信息、健康状况等)进行了零星列举以外,《欧盟一般个人数据保护条例》(GDPR)主要用抽象概念对其所管辖的“个人数据”的范围进行界定。 根...阅读全文
RabbitMQ 3.8.8 已经发布。RabbitMQ 是一个 Advanced Message Queuing Protocol(AMQP)的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 编写而成,因此它也继承了这些优点。 此版本最大亮点是引入了一种新的节点操作模式,称为维护模式。 当将节点放下进行维护并处于维护模式时,该节点将无法用于服务客户端流量,并且将尝试尽可能实际地转移其职责使其安全。当前,这涉及以下步骤: 挂起所有客户端连接侦听器(不接受新的客户端连接)关闭所有现有的客户端连接:应用程序应重新连接到其它节点并恢复所有经典镜像队列的主副本托管在传输目标节点上所有仲裁队列的主要副本托管在传输目标节点上,并阻止它们参与随后触发的 Raft 选举将节点标记为关闭以进行维...阅读全文
。 默认情况下,job artifacts 只正对成功的jobs收集。 artifacts用于指定成功后应附加到job的文件和目录的列表。只能使用项目工作间内的文件或目录路径。如果想要在不通的job之间传递artifacts,请查阅依赖关系。以下是一些例子: 发送binaries和.config中的所有文件: artifacts: paths: - binaries/ - .config 发送所有没有被Git跟踪的文件: artifacts: untracked: true 发送没有被Git跟踪和binaries中的所有文件: artifacts: untracked: true paths: - binaries/ 定义一个空的dependencies可以禁用artifact传递: job...阅读全文
动态主机配置协议(DHCP)是一种用于使主机能够从服务器自动分配 IP 地址和相关的网络配置的网络协议。DHCP 服务器分配给 DHCP 客户端的 IP 地址处于“租用”状态,租用时间通常取决于客户端计算机要求连接的时间或 DHCP 服务器配置的时间。 DHCP 如何工作? 以下是 DHCP 实际工作原理的简要说明: 一旦客户端(配置为使用 DHCP 的机器)连接到网络后,它会向 DHCP 服务器发送DHCPDISCOVER数据包。 当 DHCP 服务器收到DHCPDISCOVER请求报文后会使用DHCPOFFER包进行回复。 然后客户端获取到DHCPOFFER数据包,并向服务器发送一个DHCPREQUEST包,表示它已准备好接收DHCPOFFER包中提供的网络配置信息。 最后,DHCP...阅读全文
使用 Linux 进行命令行操作时,一不留神 SSH 客户端就断开了连接,如何配置 SSH 客户端保持连接? 第一种:修改配置文件 /etc/ssh/ssh_config 在文件末尾添加: ``` TCPKeepAlive yes ServerAliveInterval 300 ``` 第二种 在 iTerm2 的 Perferences > Profiles > session 中设置找到选项, 勾选 When idel, send ASCII code就可以了 ``` ☑️ When idle, send ASCII code 0 every 60 seconds ``` ASCII和时间间隔可自定义。通过这个配置,可以达到保持 SSH 连接的目...阅读全文
有这条性质,动态规划算法同其他算法相比就不具备优势) 动规解题的一般思路 动态规划所处理的问题是一个多阶段决策问题,一般由初始状态开始,通过对中间阶段决策的选择,达到结束状态。这些决策形成了一个决策序列,同时确定了完成整个过程的一条活动路线(通常是求最优的活动路线)。如图所示。动态规划的设计都有着一定的模式,一般要经历以下几个步骤。 初始状态→│决策1│→│决策2│→…→│决策n│→结束状态 图1 动态规划决策过程示意图 (1)划分阶段:按照问题的时间或空间特征,把问题分为若干个阶段。在划分阶段时,注意划分后的阶段一定要是有序的或者是可排序的,否则问题就无法求解。 (2)确定状态和状态变量:将问题发展到各个阶段时所处于的各种客观情况用不同的状态表示出来。当然,状态的选择要满足无后效性。 (3...阅读全文