InfraPub 为您找到相关结果 774

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

Docker 快速入门之 Dockerfile

用于执行命令,并且是在新的一层上执行,并把执行后的结果提交,也就是生新的一层。基于这个问题,我们在使用 RUN 指令时应该尽可能的把要执行的命令一次写完,以减少最后生的镜像的层数。语法: RUN RUN ["executable", "param1", "param2"] 3.3 CMD CMD 指令用于给容器启动时指定一个用于执行的命令,例如上例中的 nginx 启动命令。 语法: CMD ["executable","param1","param2"] CMD ["param1","param2"] ### 用于给 ENTRYPOINT 指令提供默认参数 CMD command param1 param2 3.4 LABEL LABEL 指令用于为镜像指定标签,可...阅读全文

博文 2017-12-16 13:50:31 debian.cn

Kubernetes常用命令大全(持续更新)

autoscale deployment foo --min=2 --max=10 #### 自动扩展 deployment “foo” 编辑资源 kubectl edit svc/docker-registry #### 编辑名为 docker-registry 的 service KUBE_EDITOR="nano" kubectl edit svc/docker-registry #### 使用其它编辑器 动态伸缩pod kubectl scale --replicas=3 rs/foo #### 将foo副本集变3个 kubectl scale --replicas=3 -f foo.yaml #### 缩放“foo”中指定的资源。 kubectl scale --current-replicas...阅读全文

博文 2020-03-13 12:35:13 debian.cn

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

:#influxdb部分配置文件 #描述:内存快照的冷冻写入周期,默认10m #场景: 当创建新的shard分片开始接受数据之后,上个shard分片进入冷冻期, #冷冻期的shard分片不再接收写入的请求,10分钟之后,会将内存里冷冻shard的cache进行落盘操作 #应用: 本文设置为30分钟。个认为时间越短,会越快释放上个shard的内存cache cache-snapshot-write-cold-duration = "30m" #描述: 使用全量策略压缩冷冻期分片的周期,默认4h #场景: 当shard进入冷冻期后,会经过4h,开始进行全量压缩策略,进一步减少shard落盘数据占用的空间 #与cache-snapshot-write-cold-duration配合使用 #可以从日志中看到,新分片...阅读全文

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

如何使用 journalctl 清理 journal 日志

己专属的日志文件(无论该用户是否拥有登录会话),但系统用户的日志依然记录到系统日志中。这是默认值。 "none" 表示不对日志文件按不同用户进行分割,而是将所有日志都记录到系统日志中。这意味着非特权用户根本无法读取属于自己的日志信息。 注意,仅分割持久保存的日志(/var/log/journal), 永不分割内存中的日志(/run/log/journal)。 RateLimitIntervalSec=, RateLimitBurst= 用于限制日志的生速度(设为零表示不作限制)。 RateLimitIntervalSec= 用于设置一个时间段长度,默认值是30秒。 RateLimitBurst= 用于设置一个正整数,表示消息条数,默认值是1000条。 表示在...阅读全文

博文 2021-02-05 15:43:28 博客园

GitHub 发布10月21日系统故障分析报告

Raft 共识机制之上达共识。Orchestrator 可以实现应用程序无法支持的拓扑,因此必须注意将 Orchestrator 的配置与应用程序级别的期望保持一致。 然而 21 日,在上述网络分区中,Orchestrator 在主数据中心中一直保持活跃,根据 Raft 的共识机制,它开始了一个取消领导选举的过程。美国西海岸数据中心和美国东海岸公有云 Orchestrator 节点能够建立合规数量并开始对群集进行故障转移,以便将写入指向美国西海岸数据中心。Orchestrator 继续组织美国西海岸数据库集群拓扑,当连接恢复时,应用层立即开始将写入流量引导到西海岸站点的新当选者。 美国东海岸数据中心的数据库服务器包含一段短暂的写入时间,但尚未复制到美国西海岸的设施。由于两个数据中心中的数据库集群...阅读全文

Kafka 3.3 使用 KRaft 共识协议替代 ZooKeeper

控制器故障转移接近瞬时。Kafka 社区计划在下一个版本(3.4)中弃用 ZooKeeper,然后在 4.0 版本中完全删除它。此外,Kafka 3.3 还提供了其他一些新特性,比如添加了与元数据日志处理错误相关的指标,允许用户为其他用户创建委托令牌,以及严格统一的粘性分区器,以缩短分区时间。对于 Kafka Streams,这个版本增加了源/接收器指标,如消费/生产吞吐量、暂停/恢复拓扑,并集了 KStream transform()和 process()方法。Kafka Connect 增加了对源连接器的精确一次语义支持。原文链接: https://www.infoq.com/news/2022/10/apache-kafka-kraft/...阅读全文

Debian 8 (Jessie)下面如何安装卸载docker

-https ca-certificates gnupg2 添加新的GPG key. $ apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D 安装 Docker 环境 确保已经按照第一步的操作步骤添加了backports源,然后执行下面的命令。 $ sudo apt-get update $ sudo apt-get install docker-engine 注意这里的包名为 docker-engine,不是系统中自带的那个低版本的 Docker,也不是先前使用的 Docker.io。安装完后,Docker daemon 会...阅读全文

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

Linux Systemd被爆远程漏洞 CVE-2017

在 Systemd (linux 操作系统流行的 init 系统和服务管理器) 中发现了一个关键漏洞, 这使得远程攻击者有可能触发缓冲区溢出, 从而通过 dns 响应在目标计算机上执行恶意代码。 Systemd是什么 systemd 是一种系统初始化程序。和 sysVinit 以及 upstart 一样,systemd 会为系统开机时启动的第一个进程(至少 PID 是 1),由它掌管计算机接下来要做的事情,例如读取 fstab 挂载磁盘和按照 runlevel 的设定启动各种服务。其安全的重要性不言而喻。 Systemd远程代码执行漏洞 CVE-2017-9445 该漏洞编号 CVE-2017-9445 ,实际上驻留在 " systemd-resolved " 的...阅读全文

博文 2017-07-02 09:39:36 9445 影响多种Linux系统

Raspbian 国内软件源列表

sudo apt-get dist-upgrade #更新系统内核 sudo rpi-update 如果需要,你可以执行以下命令将Raspbian public key加入你的 apt-get keyring : wget http://archive.raspbian.org/raspbian.public.key -O - | sudo apt-key add - 2015.11.23 add a update from comments: 现在版本升级了,版本号要更改,把 wheezy 改 jessie 这样大部分源是在中国,不然像楼上那样升级,大部分源在国外。 2019.3.7 add a update: 添加系统更新源(/etc/apt/sources.d/raspi.list)的步骤。...阅读全文

2021勒索软件报告:平均支付赎金增长171% 黑客最高要价3000万美元

知道他们可以通过勒索软件赚钱,并且在索要赎金方面变得越发大胆。常见的勒索软件攻击包括勒索软件运营商对数据进行加密,并强迫受害者支付赎金以解锁数据。在双重勒索中,勒索软件运营商会加密并窃取数据,进一步胁迫受害者支付赎金。如果不支付,勒索软件运营商就会将数据公布到泄漏网站或暗网,大部分数据泄漏网站都托管在暗网,而这些托管站点由勒索软件运营商创建和管理。在新冠疫情下,医疗行业今年勒索软件最大目标。不法之徒得知医疗机构需要继续营运以治疗新冠患者,无法承担系统被锁定的后果,继而通过勒索软件进行攻击。勒索软件Ryuk在众多勒索软件中尤其猖獗。利用这种手段最多的勒索软件是NetWalker。从2020年1月到2021年1月,NetWalker泄漏了全球113家受害企业的数据(见下图),远远超过了其他勒索...阅读全文

Debian下安装配置 Hadoop 3.1.3 集群

-nameservers 192.168.20.2 dns-nameservers 114.114.114.114 2. 修改/etc/hosts文件,添加如下内容 # Hadoop 192.168.20.101 master 192.168.20.102 slave1 192.168.20.103 slave2 192.168.20.104 slave3 3. openssh-server安装和vim的安装 sudo apt-get install openssh-server vim 4. 生ssh密钥 # 分别在不同的主机上执行`ssh-keygen`命令 # master ssh-keygen -t rsa -C "master" # slave1 ssh-keygen -t rsa -C...阅读全文

博文 2019-11-27 23:04:39 debian.cn

DNS SRV:使用DNS服务器做服务发现

级的记录,按照权重选择,记录的权重越高,被选择的可能性越高。 选择的时候,将所有记录的权重值累加,得到一个选择区间[0,sum],每个记录在[0,sum]中占据一段连续的、长度为自身权重值区间。然后生一个[0,sum]中的随机数,随机数落在的区间所属的记录就是被选择的记录。 注意事项 在使用DNS SRV的时候,要注意DNS Client是否按照预期的方式处理收到的SRV记录。当前DNS SRV只能够负责提供服务地址列表,对这个列表如何解读,完全取决于Client的实现。rfc-1035中规定,通过UDP协议传输DNS响应时,UDP报文的负载不能超过512字节,在添加 SRV 记录的时候,要特别注意。通过TCP传输时没有512字节的限制。当一个服务地址有多个相同优先级的SRV记录的时候...阅读全文

博文 2019-03-05 09:35:34 debian.cn

利用 NAT VPS 进行流量中转

部局域网的 IP 地址。 CentOS 下保存规则1sudo service iptables save Debian & Ubuntu 下 保存规则:123sudo apt install iptables-persistent -ysudo netfilter-persistent savesudo netfilter-persistent start至此,利用 iptables 设置中转的方法介绍完毕。另可根据使用场景,对目标机的防火墙进行配置,令其只接受来自此 NAT VPS 的流量。 使用 socat 进行中转如所需转发的端口数量较少,则个推荐使用此方法。首先安装 socat,此处以 Debian & Ubuntu 系统为例:1sudo apt install socat配置进行...阅读全文

博文 2021-03-11 21:16:11 Silearner

基于thanos搭建分布式prometheus

的永久存储和查询能力。 Compactor则是对Bucket里的历史数据进行采样或者清理,有具体需求后再自行研究即可。 上述组件均是可选的,没有历史数据永存需求的可以直接忽略。 方案2:thanos receive + thanos querier thanos提供的另一种方案是计算与存储分离,利用thanos receive组件部署一个分布式存储集群,然后令prometheus通过remote write机制直接写入到thanos receive集群完分布式存储,这样prometheus本身就无状态了。 再利用thanos querier反向代理到thanos receive集群,最终对外提供统一的promql查询入口,这个阶段就没有prometheus什么事了。 这套方案的工作原理如下...阅读全文

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

最全 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

AWS省钱攻略:预留实例怎么玩

m5.2xlarge 类型的 Windows 的标准RI,由于计算需求改变,我们需要 m5.4xlarge 的实例以满足业务需求,那么我们可以将两个 m5.2xlarge 的 RI 合并一个 m5.4xlarge。 同样我们也可以将 m5.4xlarge 进行同实例类型的大小拆分。 场景四:回到上面的场景二,您在新加坡区域有个 m5.4xlarge 的 Windows 实例在运行 ,且当前我有一个 m5.2xlarge 的标准 RI,一个 m5.xlarge 的标准RI,那么这种情况下能不能再购买一个 m5.xlarge 的标准Windows RI 进行合并操作呢?这种情况下则无法通过购买 m5.xlarge 标准 RI 合并为 m5.4xlarge 标准RI。 这里就要提到标准RI拆分合并的限制:标准预留...阅读全文

博文 2019-08-18 18:26:19 debian.cn

Debian下编译安装Golang

拉下来,非常耗时;在GitHub连接不稳定时,也可能会失败。这属于网络问题,读者也需自行解决。 按时间顺序,这里记录了一些相关的坑。如果想直接按照正确的步骤完编译,可以跳到环境配置小节。 首次编译错误 Go不支持在根目录下编译,必须到src目录去。 $ cd src $ ./all.bash ##### Building Go bootstrap tool. cmd/dist ERROR: Cannot find ~/go1.4/bin/go. Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4. 我本来就是因为只有Go1.3,才要从源码安装新版本的。现在找我要Go1.4,这可如何是好? 自举 Go从1.5版本开始实现“自举...阅读全文

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

linux下查看系统socket读写缓冲区_eyucham的专栏

\n",snd_size); printf(" 接收缓冲区大小为: %d 字节\n",rcv_size); close(s); return 0; } 运行后的结果: 发送缓冲区原始大小为: 16384 字节 接收缓冲区原始大小为: 87380 字节 发送缓冲区大小为: 20480 字节 接收缓冲区大小为: 20480 字节 从结果 看出ubuntu系统默认的发送缓冲区大小:16384字节,接收缓冲区87380字节 但是有个问题我设置的接收和发送缓冲区大小为:10*1024=10240字节,但是实际用getoptsock得到却是20480字节加了一倍。改其他大小也是都是加倍。 这是由linux内核的算法决定的。...阅读全文

博文 2021-01-26 16:21:35 CSDN博客

Golang常见的十大算法精简版

最近有时间,都在看Go,感觉Go语言真的不错,具体自行百度。今天简单说一下算法。 什么是算法一系列的计算步骤,用来将输入数据转化输出结果算法的意义用于解决特定的问题解决同一个问题的不同算法的效率常常相差非常大,这种差距的影响往往比硬件和软件方面的差距还要大。 算法在我们编程开发中,还是不可或缺的。下面简单来列举一下go语言常见的十大算法。 BubbleSort(冒泡排序) func Sort(list []int, left, right int) { if right == 0 { return } for index,num := range list { if index < right && num > list[index + 1] { utils.SwapGo(list...阅读全文

博文 2019-09-05 09:31:10 debian.cn

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

kubernetes 中的垃圾回收机制主要有两部分组:一是由 kube-controller-manager 中的 gc controller 自动回收 kubernetes 中被删除的对象以及其依赖的对象;二是在每个节点上需要回收已退出的容器以及当 node 上磁盘资源不足时回收已不再使用的容器镜像;本文主要分析 kubelet 中的垃圾回收机制,垃圾回收的主要目的是为了节约宿主上的资源,gc controller 的回收机制可以参考以前的文章 garbage collector controller 源码分析。kubelet 中与容器垃圾回收有关的主要有以下三个参数:--maximum-dead-containers-per-container: 表示一个 pod 最多可以保存多少个...阅读全文

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

Docker 17.06 社区版发布

Maven来构建应用,但是运行应用却不需要Maven。多阶段构建能大幅度的减小镜像的体积: REPOSITORY TAG IMAGE ID CREATED SIZE maven latest 66091267e43d 2 weeks ago 620MB java 8-jdk-alpine 3fd9dd82815c 3 months ago 来看一个能创建店铺首页的AtSea示例应用: AtSea使用了多阶段构建,并包含两个过渡阶段:用一个node.js基础镜像构建ReactJS应用,用一个Maven基础镜像将Sprint Boot应用编译单个镜像。 FROM node:latest AS storefront WORKDIR /usr/src/atsea/app/react-app COPY...阅读全文

博文 2017-06-30 23:08:57 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 思否