标签: coreos

我可以在 CoreOS 中运行 GUI 应用程序吗?

所以我在 VirtualBox 虚拟机中运行 CoreOS。

过去,我运行过与容器共享主机 X11 套接字的 docker 映像,例如运行 firefox GUI 应用程序。

这可以在我的 CoreOS VM 中执行吗?

containers virtualbox coreos

5
推荐指数
0
解决办法
413
查看次数

为什么 Kubernetes Worker 节点会变成 NodeNotReady?

由于未知原因,工作节点意外地被主节点从集群中删除。

该集群具有以下设置:

  • AWS
  • 多可用区配置
  • 集群主节点、集群(跨可用区)
  • 法兰绒网络
  • 使用 CoreOS 的kube-aws进行配置

发生了来源不明的事件,在几秒钟内,所有工作节点都从主节点上断开。我们能找到的唯一相关日志条目是kube-controller-manager

I0217 14:19:11.432691 1 event.go:217] Event(api.ObjectReference{Kind:"Node", Namespace:"", Name:"ip-XX-XX-XX-XX.ec2.internal", UID:"XXX", APIVersion:"", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'NodeNotReady' Node ip-XX-XX-XX-XX.ec2.internal status is now: NodeNotReady
Run Code Online (Sandbox Code Playgroud)

大约 10 分钟后,节点恢复“就绪”状态。

我们尚未找到节点转变为 的原因NodeNotReady

到目前为止,我们已经查看了各种系统组件的日志,包括:

  • 绒布
  • 库贝莱特
  • 控制管理器

一个潜在的值得注意的事项是,集群的活动主节点当前驻留在与节点不同的可用区中。这应该没问题,但可能是网络连接问题的根源。话虽如此,我们在日志/监控中没有看到可用区间连接问题的迹象。

检查 kubelet 日志,没有明确的日志记录事件表明节点将其状态更改为“未就绪或其他”。此外,也没有明确指示任何致命事件。

值得注意的一项是,所有 kubelet 在中断后都会记录:

Error updating node status, will retry: error getting node "ip-XX-XX-XX-XX.ec2.internal": Get https://master/api/v1/nodes?fieldSelector=metadata.name%3Dip-XX-XX-XX-XX.ec2.internal&resourceVersion=0: read tcp 10.X.X.X:52534->10.Y.Y.Y:443: read: no route to host".
Run Code Online (Sandbox Code Playgroud)

再次请注意,这些日志消息是在节点重新加入集群后记录的(集群崩溃和节点重新加入之间有一个清晰的约 10 分钟的窗口)。

amazon-web-services coreos kubernetes

5
推荐指数
0
解决办法
949
查看次数

如何从docker获取threaddump

我的应用程序在 Docker 中运行核心操作系统和 Ubuntu。如何从这些系统收集线程转储来分析性能问题

我已经尝试过以下命令但它不起作用:

kill -3
jstack
docker exec
appsnap
Run Code Online (Sandbox Code Playgroud)

ubuntu docker coreos

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

Kubernetes 集群“cni 配置未初始化”

我遇到的问题与其他现有帖子非常相似,除了它们都有相同的解决方案,因此我创建了一个新线程。

问题: 安装Flannel后,Master节点仍处于“NotReady”状态。

预期结果: 安装 Flannel 后主节点变为“Ready”。

背景:我在安装 Flannel 时 遵循本指南

我担心的是,我默认使用 Kubelet v1.17.2,就像上个月一样(有人能确认 v1.17.2 是否适用于 Flannel 吗?”

以下是在主节点上运行命令后的输出:kubectl描述节点machias

Name:               machias
Roles:              master
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/os=linux
                    kubernetes.io/arch=amd64
                    kubernetes.io/hostname=machias
                    kubernetes.io/os=linux
                    node-role.kubernetes.io/master=
Annotations:        flannel.alpha.coreos.com/backend-data: {"VtepMAC":"be:78:65:7f:ae:6d"}
                    flannel.alpha.coreos.com/backend-type: vxlan
                    flannel.alpha.coreos.com/kube-subnet-manager: true
                    flannel.alpha.coreos.com/public-ip: 192.168.122.172
                    kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock
                    node.alpha.kubernetes.io/ttl: 0
                    volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Sat, 15 Feb 2020 01:00:01 -0500
Taints:             node.kubernetes.io/not-ready:NoExecute
                    node-role.kubernetes.io/master:NoSchedule
                    node.kubernetes.io/not-ready:NoSchedule
Unschedulable:      false
Lease:
  HolderIdentity:  machias
  AcquireTime:     <unset>
  RenewTime:       Sat, 15 Feb 2020 13:54:56 -0500
Conditions:
  Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason …
Run Code Online (Sandbox Code Playgroud)

docker coreos kubernetes flannel kubeadm

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

.pgpass用于Dockerized环境中的PostgreSQL复制

我尝试使用Docker和bash脚本(我使用Coreos)设置PostgreSQL从站。我尚未找到任何有效的方法.pgpass

我知道我可以创建PGPASSWORD环境变量,但是出于安全原因(如此处所述,http://www.postgresql.org/docs/current/static/libpq-envars.html),我不希望这样做,并且因为每次使用recovery.conf文件时(对于primary_conninfo变量),都应该可以访问此密码。

Docker文件

# ...
# apt-get installs and other config
# ...

USER postgres
# Create role and db
RUN /etc/init.d/postgresql start &&\
    psql --command "CREATE USER replicator WITH ENCRYPTED PASSWORD 'THEPASSWORD';" &&\
    psql --command "CREATE DATABASE db WITH OWNER replicator;"

# Set the pg_pass to allow connection to master
ADD ./pgpass.conf /home/postgres/.pgpass # pgpass.conf comes my root git folder
USER root
RUN chmod 0600 /home/postgres/.pgpass
Run Code Online (Sandbox Code Playgroud)

在我的bash文件中

# ...

pg_basebackup -h host.of.master.ip -D /var/pgbackup/backup_data -U …
Run Code Online (Sandbox Code Playgroud)

postgresql docker coreos

4
推荐指数
1
解决办法
3502
查看次数

CoreOS和HDFS - 在Linux Containers/Docker中运行分布式文件系统

我需要某种在CoreOS集群上运行的分布式文件系统.

因此,我想在CoreOS节点上运行HDFS.这可能吗?

我可以看到两个选项;

  1. 扩展CoreOS - 将HDFS直接安装到CoreOS上 - 不理想,因为它打破了CoreOS集装箱的整体概念,并意味着安装了许多其他组件
  2. 以某种方式在CoreOS上的Docker容器中运行HDFS并设置亲和力

选项2似乎是最好的方法,但是,有一些潜在的阻碍者;

  • 如何可靠地将物理磁盘暴露给运行HDFS的Docker容器?
  • 你如何扩展容器亲和力?
  • 这如何工作Name节点等?

干杯.

hadoop hdfs distributed-filesystem docker coreos

4
推荐指数
1
解决办法
3029
查看次数

通过systemd启用CoreOS中的etcd服务自动启动

我已经使用VMware映像部署了CoreOS standealone服务器,请按照本指南体验CoreOS.

部署成功后,我发现我的CoreOS只启用了Docker服务,没有运行etcd和fleet服务.虽然我知道如何使用systemd手动运行etcd和fleet服务.而且我也知道使用合适的cloud-config可以安装CoreOS,其中etcd和fleet服务自动启动.

但我想知道:

  1. 是否可以将单元文件放入/etc/systemd/system以使systemd自动启动etcd服务?
  2. 如果可以,单位文件的内容是什么?
  3. 如果不能,那么另一种方式是什么?

谢谢

systemd docker coreos etcd

4
推荐指数
1
解决办法
4100
查看次数

kubernetes调度程序是否支持反关联性?

我正在考虑在CoreOS集群之上部署Kubernetes,但我认为我遇到了各种各样的交易破坏者.

如果我只使用CoreOS和fleet,我可以在单元文件中指定我希望某些服务不能在与其他服务相同的物理机器上运行(反亲和力).这对于高可用性至关重要.但它看起来并不像kubernetes有这个功能.

在我的特定用例中,我将需要运行一些需要始终可用的弹性搜索机器集群.如果出于任何原因,kubernetes决定在一台机器上安排给定ES集群的所有弹性搜索节点容器(或者甚至是一台机器上的大多数),并且该机器死机,那么我的elasticsearch集群将随之死亡.这是不允许发生的.

似乎可能有解决方法.我可以设置资源需求和机器规格,这样每台机器上只能安装一个弹性搜索实例.或者我可能以某种方式使用标签来指定某些弹性搜索容器应该在某些机器上运行.我还可以提供比必要更多的机器,以及比必要的更多ES节点,并假设kubernetes将它们分散到足以合理确定高可用性.

但所有这一切似乎都很尴尬.从资源管理的角度来看,只需指定所需的硬件和反关联性,就可以让调度程序从那里进行优化.

那么Kubernetes是否以某种我无法找到的方式支持反亲和力?或者有人知道它是否会很快?

或者我应该考虑另一种方式?我是否必须编写自己的调度程序?

elasticsearch coreos kubernetes

4
推荐指数
1
解决办法
1834
查看次数

iptables 通过注释删除特定规则

我需要删除一些具有相同评论的规则。

例如,我有带有 comment = "test it" 的规则,所以我可以像这样获得它们的列表:

sudo iptables -t nat -L | grep 'test it'
Run Code Online (Sandbox Code Playgroud)

但是如何删除所有带有注释“test it”的 PREROUTING 规则?

UPD: 正如@hek2mgl 所说,我可以这样做:

sudo bash -c "iptables-save > iptables.backup"
sed -i '/PREROUTING.*--comment.* "test it"/d' iptables.backup
sudo iptables-restore < iptables.backup
sudo rm iptables.backup
Run Code Online (Sandbox Code Playgroud)

但是save和restore之间可能是iptables的变化,所以restore之后会有问题=/

linux firewall iptables coreos

4
推荐指数
1
解决办法
7656
查看次数

如何从容器执行主机的Docker命令?

我想用Python编写Docker容器管理脚本.但是,由于我使用CoreOS,因此不包含Python作为标准命令.所以,我正在考虑使用Python Docker容器(https://registry.hub.docker.com/_/python/)来执行我的脚本.但是,在这种情况下,脚本将在容器的VM中执行,该VM无法访问主机的Docker CLI.

有没有办法使用Python(或其他未编译在CoreOS中的编程语言)来管理主机环境而无需在主机上安装它?

PS,脚本将执行以下操作:

docker run/rm/stop <another container>;

python docker coreos

4
推荐指数
2
解决办法
6529
查看次数