Questions tagged «coreos»

容器Linux(以前称为CoreOS)是一种基于Linux的轻量级操作系统,旨在支持构建运行docker容器化应用程序的机器集群。

4
使Docker应用程序写入标准输出
我正在按照12要素咨询意见部署第3方应用程序,其中之一是应将应用程序日志打印到stdout / stderr:然后集群软件可以收集它。 但是,该应用程序只能写入文件或syslog。我该如何打印这些日志?

3
如何删除缺少的systemd单元?
我在弄清楚如何删除不再具有文件的systemd单元时遇到了麻烦。他们似乎仍然以某种方式徘徊在系统中。 我要删除的旧的损坏的单元: core@ip-172-16-32-83 ~ $ systemctl list-units --all firehose-router* UNIT LOAD ACTIVE SUB DESCRIPTION <E2><97><8F> firehose-router@02.service not-found failed failed firehose-router@02.service <E2><97><8F> firehose-router@03.service not-found failed failed firehose-router@03.service LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The …
40 systemd  coreos 

2
将Docker卷存储在glusterfs中是一个好主意吗?
我目前正在考虑将我们的某些服务器和应用程序迁移到coreOS环境。我在这里看到的问题之一是持久性数据的管理,因为将容器移至新计算机时coreOS无法处理Docker卷。经过一些研究,我发现glusterFS声称是可以解决我所有问题的群集文件系统。 我当前的想法是:我有一个glusterFS容器,该容器在我的每台coreOS机器上作为特权容器运行,并公开一个存储,/mnt/gluster例如。在我Dockerfile的文件中,我指定所有卷都应安装在该路径上。 我考虑的下一件事是哪些容器应该获得自己的卷,哪些容器应该共享一个。例如,每个mysql容器都有自己的卷,因为它能够自己处理复制。我不想搞混。服务于同一网站的Web服务器将正确使用相同的卷来存储“用户上传的图像”等内容,因为它们无法复制这些数据。 有没有人尝试过这样的事情,或者我错过了什么?

4
Docker守护程序无法在CoreOS上启动时启动
我安装了CoreOS(835.9.0)的原始版本,启动时未启动docker守护进程。它仅在我通过SSH并执行例如时开始docker ps。 如何使Docker守护程序在系统启动时自动启动? 当我说Docker守护程序时,我的意思ps -ef | grep docker是直到执行之后才显示任何进程docker ps
23 boot  docker  coreos 

1
如何与另一个系统单元启动和停止?
我正在使用CoreOS安排车队的系统单位。我有两个单位(firehose.service和firehose-announce.service。我正在尝试使。firehose-announce.service和一起开始和停止firehose.service。这是用于firehose-announce.service:的单位文件。 [Unit] Description=Firehose etcd announcer BindsTo=firehose@%i.service After=firehose@%i.service Requires=firehose@%i.service [Service] EnvironmentFile=/etc/environment TimeoutStartSec=30s ExecStartPre=/bin/sh -c 'sleep 1' ExecStart=/bin/sh -c "port=$(docker inspect -f '{{range $i, $e := .NetworkSettings.Ports }}{{$p := index $e 0}}{{$p.HostPort}}{{end}}' firehose-%i); echo -n \"Adding socket $COREOS_PRIVATE_IPV4:$port/tcp to /firehose/upstream/firehose-%i\"; while netstat -lnt | grep :$port >/dev/null; do etcdctl set /firehose/upstream/firehose-%i $COREOS_PRIVATE_IPV4:$port …
20 systemd  coreos 

1
无需停机即可更新Docker容器
假设我有一个带Web服务器的Docker容器(例如Apache 2)。现在,我想更新其下的操作系统。SF回答说,最好的方法是重建基础映像和我的Apache映像。但是部署映像意味着停机,因为必须先删除旧容器才能创建新容器,因此只有一个容器绑定到端口80/443。 但是如何在零停机时间内部署此更新?我应该使用负载均衡器并使用容器间通信吗?以及如何更新负载均衡器?
17 docker  uptime  coreos 

2
CoreOS:tcpdump神秘地解决了网络问题(使用的套接字数量过多)
我今天对你有一个谜。我们在Azure上运行基于CoreOS(2023.5.0 / Linux 4.19.25-coreos)的小型三节点Elasticsearch群集。Elasticsearch在主机网络模式下在docker容器内运行。在运行了几乎完全免费的维护一年之后,我们一直看到机器进入一种非常有趣的状态。 更新资料 通过修复Linux内核中的驱动程序可以解决此问题。请参阅下面的答案。 病征 基本上,受影响的计算机与其他两个节点之间的网络连接消失。所有这些都位于同一虚拟网络和同一子网中,并且通常可以与其他服务器通信。仍然可以从其他子网(我可以将其连接到该子网)和其他对等虚拟网络访问受影响的节点。该计算机还具有(非常多)互联网连接,但是大多数请求只是超时。 我们已经观察到,在受影响的节点上,报告的“已使用套接字”的/proc/net/sockstat数量非常高(在正常节点上为〜4.5k,而不是〜300)。监视显示,此数目从节点不可用的那一刻起迅速增加。 有趣的是,我们似乎无法识别这些二手插座的来源: # cat /proc/net/sockstat sockets: used 4566 TCP: inuse 2 orphan 0 tw 2 alloc 98 mem 4 UDP: inuse 1 mem 0 UDPLITE: inuse 0 RAW: inuse 0 FRAG: inuse 0 memory 0 # cat /proc/net/sockstat6 TCP6: inuse 98 UDP6: …

1
Mesos部署的最佳基础
我们目前正在设计新的Apache Mesos云设置的体系结构。目的是通过将不同的堆栈移动到同一体系结构来统一我们的系统。主要工作量是使用Apache Spark和我们的公司基础结构(包括Web服务器,邮件服务器等)进行大数据分析。 这个想法是在Docker容器中运行我们的Web服务,该容器在Mesos的可用调度程序之一(Marathon / Chronos,Aurora或Singularity)之上运行。因此,这将是第一个Mesos框架组。在它旁边,我们将具有Apache Spark框架和几个用于数据存储的数据库框架。这将是第二组Mesos框架。在并行运行所有细节进行测试之后,我们将选择细节。 但是,我们很难决定要在哪个基础上运行Mesos。理想情况下,我们希望使其尽可能靠近金属。我们还希望使用业务流程解决方案来确保Mesos&Framework守护程序始终在故障发生时运行/重新启动。我们正在考虑的选项如下: 1)在最小的OS中将Mesos和框架作为docker容器运行。在这方面,我们目前倾向于CoreOS和Fleet。 2)直接在Ubuntu / Debian服务器上运行Mesos和框架。对于此选项,我们倾向于工头和木偶。 至于问题,我们正在寻找一种解决方案,按照重要性从高到低: 配置最简单 是最容易维护和更新的 开销最少 我们以前没有使用CoreOS,但是似乎正在朝着这个方向努力。我遇到的一个大(主观)问题是,我们在Docker容器上运行Mesos,然后在Mesos上运行Docker容器。这似乎是“不洁的”,对我来说是错误的。这种考虑没有道理吗? 类似的想法涉及层之间的冗余。为了说明我的来历,我希望Mesos是仅在金属平台上运行的实际操作系统。看来,无论您使用什么基础,最终都会在多层体系结构(即CoreOS&Fleet&SystemD == Mesos&Marathon&Chronos)上获得相同的预期功能。这是不可避免的吗? 在记住我们的标准的同时,还有其他不错的选择可以在我们未能考虑的Mesos之下运行该层吗?

2
这个变量转义在systemd单位文件中如何工作?
对于CoreOS上运行的服务器实例,我有一个非常简单的单位文件,可用于发现伙伴服务。单位文件如下所示: [Unit] Description=Discovery for frontend server (instance %i) BindsTo=frontend@%i.service After=frontend@%i.service [Service] EnvironmentFile=/etc/environment ExecStart=/usr/bin/bash -c ' \ while true; do \ export PORT=$(docker port frontend%i 80 | sed s/.*://); \ etcdctl set /services/frontend/%i "${COREOS_PRIVATE_IPV4}:$PORT" --ttl 60; \ sleep 45; \ done' ExecStop=/usr/bin/etcdctl rm /services/frontend/%i [X-Fleet] MachineOf=frontend@%i.service 效果很好,但是花了我很多时间才能进入此阶段,因为如果我将其更改为etcdctl: etcdctl set /services/frontend/%i "${COREOS_PRIVATE_IPV4}:${PORT}" …
9 bash  systemd  coreos 

2
CoreOS Fleet Unit文件和Docker动态端口问题
我目前正在尝试获取动态端口,以便可以在CoreOS上的etcd中注册它。事实证明,这非常困难。 这是我的单位档案 [Unit] Description=test Elastic Search Server After=docker.service Requires=docker.service [Service] User=core ExecStartPre=/usr/bin/docker pull shizzle/elasticsearch-server ExecStart=/bin/bash -c '/usr/bin/docker start -a %n || /usr/bin/docker run --name="%n" -p :9200 -p :9300 shizzle/elasticsearch-server /elasticsearch/bin/elasticsearch -Des.config=/etc/elasticsearch.yml' ExecStartPost=-/usr/bin/etcdctl mkdir /%n ExecStartPost=/usr/bin/etcdctl set /%n/host %H ExecStartPost=/bin/bash -c "/usr/bin/etcdctl set /%n/port $(docker inspect --format='{{(index (index .NetworkSettings.Ports "9200/tcp") 0).HostPort}}' …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.