标签: coreos

谷歌计算引擎如何创建用户以及如何禁用他们?

我有一个在 GCE 上运行的 CoreOS 集群,我注意到所有 GCE 实例的一个问题是,只要您通过 Google Cloud 平台上的项目进行身份验证,您就可以登录服务器。这对我来说是一个问题,因为团队中的任何人,或进入项目的任何人,都可以像任何人一样直接进入服务器。我想禁用它,只使用我在云配置文件中创建的用户,这些用户指定了过期的 ssh 密钥和密码。在这样做时,我很好奇谷歌如何在 GCE 上创建用户?有没有人找到禁用它的方法?

user-management ssh-keys google-compute-engine coreos google-cloud-platform

9
推荐指数
2
解决办法
7432
查看次数

tail -f 未跟踪 Docker 容器中的日志文件

我看到tail -f在 CoreOS 的 Docker 容器内运行命令时出现了一些奇怪的行为。

我能想到的许多变量可能会导致问题,但我不确定首先需要做什么来排除故障。在 CoreOS 上,我正在运行支持 overlayfs 的最新版本,以及较新版本的 Docker (1.4.1)。

有趣的是,我能够在运行不同版本 Docker (1.3) 的不同主机操作系统 (Ubuntu 14.04) 上成功跟踪日志。

如果这有助于排除故障,我可以生成 strace 日志,它们似乎在主机之间存在显着差异。例如,在不工作的主机上,在 strace 输出中读入以下内容后,strace 停止:

04:03:03 inotify_add_watch(4, "f017f0a1-a1e9-11e4-90bc-027e0f87cac6-paster.log", IN_MODIFY|IN_ATTRIB|IN_DELETE_SELF|IN_MOVE_SELF) = 1 <0.000028>
04:03:03 fstat(3, {st_mode=S_IFREG|0644, st_size=12229, ...}) = 0 <0.000022>
04:03:03 read(4, 0x7711f0, 64)          = ? ERESTARTSYS (To be restarted if SA_RESTART is set) <3.101545>
Run Code Online (Sandbox Code Playgroud)

我只是对 strace 不够熟悉,无法很好地解释结果。

logging tail strace docker coreos

8
推荐指数
1
解决办法
6288
查看次数

CoreOS 是否具有集群感知作业调度程序?

我一直在检查 CoreOS,我印象深刻。在我发现 CoreOS 之前,我将Mesos/Marathon/Chronos堆栈视为“集群内核”。

鉴于以下比较:

init.d == Mesos+Marathon == CoreOS+Fleet
cron   == Mesos+Chronos  == CoreOS+?????
Run Code Online (Sandbox Code Playgroud)

我很好奇 CoreOS 是否有分布式作业调度程序?还是大多数人只是使用 Fleet 来运行其他东西?

cluster scheduler coreos apache-mesos

7
推荐指数
1
解决办法
2345
查看次数

无法启动 docker 守护进程 — 无效的图像

我无法启动docker daemon。当我尝试时,我收到一堆错误说

invalid image sha256:{some sha here}, failed to verify image: sha256{some sha here}
Run Code Online (Sandbox Code Playgroud)

然后一行说

Error starting daemon: layer does not exist
Run Code Online (Sandbox Code Playgroud)

我怀疑图像已损坏或其他原因 - 上次关闭此服务器时出现问题。我不介意删除图像,但如果不启动 docker,我找不到任何方法来做到这一点。我希望有某种--skip verify争论,但我找不到类似的东西。

我怎样才能启动 docker?

操作系统是 CoreOS 1010.5.0。

docker coreos

7
推荐指数
1
解决办法
2267
查看次数

在某些托管服务提供商处设置简单的单服务器 CoreOS?

CoreOS似乎是托管 Web 服务的好发行版:自动更新、低内存使用、内置 Docker 支持。但是,所有安装说明似乎都假设我要配置一整套服务器。— 没有简单的方法可以跳过所有复杂的设置,让 CoreOS 在单个服务器上的某个托管服务提供商处运行,就像 Ubuntu 这样的“普通”发行版一样?

例如,etcd当我在单个服务器上运行我的应用程序服务器和 PostgreSQL 时,我真的必须配置服务发现吗?

如果今天没有简单的方法,你认为在更远的将来会有吗?还是 CoreOS 总是只用于大规模多服务器部署?

(背景:我希望有一天我会为其他人编写有关如何安装我正在开发的某个 Web 应用程序的说明,如果我能指导他们使用 CoreOS 就好了,因为他们知道他们会起床并快速轻松地运行。)

coreos

6
推荐指数
1
解决办法
2972
查看次数

CoreOS Systemd 助手单元无法启动

我有一个用于辅助单位的​​服务,并不断收到错误消息:[/run/fleet/units/tomcat-discovery@1.service:11] 尾随垃圾,忽略。tomcat-discovery@1.service 没有 ExecStart= 设置,只允许 RemainAfterExit=yes 服务。拒绝。

我似乎已经尝试了我能想到的所有不同组合,并且已经成功地测试了来自终端的命令,没有问题。如果我删除对 etcdctl 的第一次调用,则第二个 set 命令也可以在服务文件中正常工作。关于我在这里哪里出错的任何想法?

[Unit]
Description=Tomcat web server etcd registration

# Requirements
Requires=etcd.service
Requires=tomcat@%i.service

# Dependency ordering and binding
After=etcd.service
After=tomcat@%i.service
BindsTo=tomcat@%i.service

[Service]

# Get CoreOS environmental variables
EnvironmentFile=/etc/environment

# Start

ExecStart=/bin/bash -c "\
while true; do \
    etcdctl set /services/tomcat/tomcat-%i/ip ${COREOS_PRIVATE_IPV4}:$(docker inspect --format='{{(index (index .NetworkSettings.Ports "8080/tcp") 0).HostPort}}' tomcat.%i) --ttl 180; \
    etcdctl set /services/bind/tomcat-%i ${COREOS_PRIVATE_IPV4} --ttl 180; \
  sleep 60; \
done"

# Stop
ExecStop=/usr/bin/etcdctl rm --recursive /services/tomcat/tomcat-%i

[X-Fleet]
# Schedule …
Run Code Online (Sandbox Code Playgroud)

systemd coreos

6
推荐指数
1
解决办法
2025
查看次数

在 CoreOS 集群上通过 NFS 共享磁盘?

CoreOS 集群是否可以共享磁盘空间,例如使用 NFS?如果是这样,人们会怎么做呢?(例如,在一个节点有大量磁盘空间的情况下)。例如,这对于避免让每个节点必须下载和存储它自己的 docker 图像库或跨节点共享主目录空间非常有用。

因为我们不能直接在 CoreOS 中安装额外的软件,我想人们必须编写一个容器来安装 NFS(例如nfs-kernel-server在基于 Ubuntu 的容器上)。

我不知道这是否可行,但我希望有一些既定的方法来跨 CoreOS 集群共享磁盘空间(毕竟,这似乎是对集群的普遍期望,也许我下面的建议比必要的更复杂) . 只是为了提供一些反馈的素材,这是我目前的想法:

提供 NFS 的主机端似乎是一个合理的 docker 任务,例如我想象一个 Dockerfile 像:

FROM ubuntu:14.04
ENV CLIENT_IP 11.111.111.111          
RUN apt-get update && apt-get install -y nfs-kernel-server supervisor
RUN mkdir /var/nfs && chown nobody:nogroup /var/nfs
RUN echo "/home       ${CLIENT_IP}(rw,sync,no_root_squash,no_subtree_check)" >> /etc/exports
RUN echo "/var/nfs    ${CLIENT_IP}(rw,sync,no_subtree_check)" >> /etc/exports
RUN exportfs -a
CMD service nfs-kernel-server start
Run Code Online (Sandbox Code Playgroud)

WhereCLIENT_IP已正确填写(也许我们需要用调用supervisord或类似方法替换 CMD以使其持久化,但您明白了)

那么,在运行这个容器时,我们如何适当地链接卷呢?我们将从 CoreOS 主机链接哪个卷?或者我是否需要添加一些东西--net="host"来使客户端可用?

docker run -v /home:/home …
Run Code Online (Sandbox Code Playgroud)

nfs docker coreos

5
推荐指数
2
解决办法
6063
查看次数

CoreOS 更新失败

为 CoreOS 运行更新命令时,出现更新失败错误。根据文档,这意味着没有找到更新。这不应该是这种情况,因为我正在运行的版本是CoreOS stable (647.2.0).

update_engine_client -update

$> cat /etc/os-release
NAME=CoreOS
ID=coreos
VERSION=647.2.0
VERSION_ID=647.2.0
BUILD_ID=
PRETTY_NAME="CoreOS 647.2.0"
ANSI_COLOR="1;32"
HOME_URL="https://coreos.com/"
BUG_REPORT_URL="https://github.com/coreos/bugs/issues"

$> cat /etc/coreos/update.conf
GROUP=stable
SERVER=https://customer.update.core-os.net/v1/update/
Run Code Online (Sandbox Code Playgroud)

如何触发更新过程?

coreos

5
推荐指数
1
解决办法
1937
查看次数

如何将 Docker 映像放置在 CoreOS 中的 NFS 共享之上?

我已经安装了 CoreOS,它默认使用大小为 100GB 的环回设备,我很容易达到了这个限制。

我的第一个想法是使用 NFS 将所有图像放在我的 NAS 上,只需将其安装在/var/lib/docker目录顶部,但没有任何成功。

现在我找到了这篇文章,它看起来像 docker 以任何方式在任何类型的存储之上创建块设备,以便使用它的 CoW 快照,这可能就是为什么我在第一次拍摄时没有成功的原因只是安装 NFS 共享在图像目录的顶部。有点吓到我了 为什么不将纯 NFS 与存储的本机快照一起使用?我希望对这样做有很好的解释。无论如何,我需要做这件怪事。我是 docker 和 CoreOS 的新手,不知道如何正确执行此操作。所以问题是:如何挂载 NFS 共享并将其用于 CoreOS 上的所有映像?

nfs docker coreos

5
推荐指数
1
解决办法
5197
查看次数

Systemd:如何在重启后保持计时器活动?

我需要设置 CoreOS 机器的每日重启。所以我有/etc/systemd/system/reboot.service

[Unit]
Description=Daily reboot

[Service]
Type=oneshot
ExecStart=/usr/bin/sh -c 'reboot'
Run Code Online (Sandbox Code Playgroud)

...和/etc/systemd/system/reboot.timer​​:

[Unit]
Description=Daily reboot

[Timer]
OnCalendar=*-*-* 21:20:00
Run Code Online (Sandbox Code Playgroud)

如果我通过 激活计时器sudo systemctl start reboot.timer,我会在列表中看到它:

core@node-011 ~ $ sudo systemctl list-timers --all | grep reboot
Fri 2019-03-22 21:20:00 UTC  12h left  n/a                          n/a      reboot.timer                 reboot.service
core@node-011 ~ $ 
Run Code Online (Sandbox Code Playgroud)

但重新启动后,该计时器被关闭(不在列表中)。

如何配置持久化?

systemd coreos

5
推荐指数
1
解决办法
1966
查看次数