小编cha*_*ffe的帖子

Pod陷入终止状态

我厌倦了删除一个带有12个pod的复制控制器,我可以看到一些pod停留在终止状态.我的Kubernetes设置包括在ubuntu vms中安装的一个主机和三个minons.这个问题可能是什么原因?

NAME        READY     STATUS        RESTARTS   AGE
pod-186o2   1/1       Terminating   0          2h
pod-4b6qc   1/1       Terminating   0          2h
pod-8xl86   1/1       Terminating   0          1h
pod-d6htc   1/1       Terminating   0          1h
pod-vlzov   1/1       Terminating   0          1h
Run Code Online (Sandbox Code Playgroud)

kubernetes

189
推荐指数
17
解决办法
10万
查看次数

WAL怎么可能?提前写日志?有比直接写入磁盘更好的性能吗?

WAL(Write-Ahead Log)技术已经在很多系统中使用。

WAL 的机制是,当客户端写入数据时,系统会做两件事:

  1. 日志写入磁盘并返回给客户端
  2. 数据异步写入磁盘、缓存或内存

有两个好处:

  1. 如果出现异常(即断电),我们可以从日志中恢复数据。
  2. 性能好,因为我们异步写入数据,可以批量操作

为什么不直接将数据写入磁盘?您将每次写入都直接写入磁盘。成功时,您告诉客户端成功,如果写入失败,则返回失败的响应或超时。

这样,您仍然拥有这两个好处。

  1. 在断电的情况下,您不需要恢复任何东西。因为返回给客户端的每个成功响应都意味着数据确实在磁盘上。
  2. 性能应该是一样的。虽然我们经常接触磁盘,但是 WAL 也是一样的(WAL 每次写入成功都意味着它在磁盘上成功)

那么使用 WAL 有什么好处呢?

database ceph rocksdb

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

无需在主机上挂载 CephFS 即可访问 Docker 容器内的 CephFS

我有一个运行 Ceph 的测试节点,其中大约 10TB 的数据存储在 CephFS 文件系统中。我想让 CephFS 文件中的某些子路径可用于 Docker 容器,在那里它可以通过 NFS 和 SMB 共享。

osds、mons 和 mds' 在同一节点上运行,这会禁止在 fstab 中安装 CephFS。

我还能如何将 CephFS 文件系统的子路径挂载到容器中?

smb nfs docker ceph

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

PHP中无状态Web应用程序中的持久性多节点事件

我正在构建一个将在多个节点上运行的OO PHP应用程序,并且本质上将是相对无状态的,我需要实现正确的发布者 - 订阅者(http://en.wikipedia.org/wiki/Observer_pattern/http:// sourcemaking.com/design_patterns/Observer/php)样式事件.

我的问题是,我该如何处理事件?

在我的应用程序中,我们使用的是Cassandra,Redis,Mongo和RabbitMQ等技术.

我知道PHP有一个事件EXTENSION可用,但从我可以告诉它坚持状态 - 或者如果利用memcached之类的东西它可以在该节点内使用...但我的应用程序将分布在多个节点上.

因此,让我们看一个示例:在节点1上,更新度量标准(度量标准ID 37),并且需要更新订阅该度量标准的任何内容.这会在更新时发布更改和更改.

我有一些订阅更新的度量标准ID 37,例如度量标准38,可能需要在度量标准37的值更改时重新计算.

度量标准38当前已实例化并在进程ID 1011中的节点2上使用...度量标准37如何告知节点2上的度量标准38(在这种情况下为进程ID 1011)以运行预订函数?

Metric 39订阅Metric 38正在更新,但未在任何地方实例化...当Metric 38完成更新时,Metric 39如何更新?

我正在考虑使用RabbitMQ作为我的事件队列管理器,并且在每个节点上都有一个守护进程样式的"事件使用者"应用程序,它读取事件队列中的事件(为了负载平衡/分配工作).

然后消费者看到"Metric:38:Updated"它会检查像Redis那样订阅"Metric:38:Updated"的内容并获取值("What:Function:Values")并执行类似call_user_func_array(array($ what)的操作,$函数),$值); ....但这似乎可能会导致开销和一定程度的同步问题...

我正在使用Doctrine MongoDB ODM来保存我的对象...为了处理同步问题我想到了这样的事情:对象可能有版本号...(版本= 1.0)并且redis可用于维护快速参考到对象的最新版本(ObjectVersion:ObjectType:ObjectId)= 1.1当在标记为@critical的对象属性(像isDeleted,货币余额等)上调用getter时,它可以检查实例的版本ID是否为等于redis中的版本#,如果需要,则从mongo更新其值...

另一种设置是使用amphp/amp(http://amphp.org/docs/amp/reactor-concepts.html)和某种形式的RPC来同步节点

因为我对网络开发(从c#转移)和无状态,并且分发...相当新.我认为向社区询问是否有人有更好的建议是个好主意?

php events distributed rabbitmq

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

打印所有 pod 以及 CPU 要求 kubernetes

我想在列中打印具有 CPU 要求的所有 pod 的列表

我很确定它是这样的 kubectl get pods 'spec.containers[].resources.limits.cpu'

有人可以给我正确的语法吗?

kubernetes

5
推荐指数
3
解决办法
1820
查看次数

如何重新启动 git/GitHub 项目?

我已经在 GitHub 上托管的项目上工作了一段时间。然而,我现在决定以不同的方式重写我的应用程序,并从头开始。我重命名了旧的本地存储库并创建了一个新的存储库。

如何使用新存储库替换 GitHub 上托管的存储库?我真的不在乎我的旧历史和问题是否存在。最好的方法是删除 GitHub 存储库并创建一个新存储库吗?

git github

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

Postgres 流复制错误:请求的 WAL 段已被删除

我已经在主服务器和辅助服务器之间设置了流复制。我已启用存档。在 Postgres 日志文件中,我看到以下错误。

< 2017-12-05 03:08:45.374 UTC > WARNING:  archive_mode enabled, yet archive_command is not set
< 2017-12-05 03:08:46.668 UTC > ERROR:  requested WAL segment 0000000100000000000000E3 has already been removed
< 2017-12-05 03:08:51.675 UTC > ERROR:  requested WAL segment 0000000100000000000000E3 has already been removed
< 2017-12-05 03:08:56.682 UTC > ERROR:  requested WAL segment 0000000100000000000000E3 has already been removed
Run Code Online (Sandbox Code Playgroud)

我们需要启用archive_mode = on流复制吗?如何避免上述错误?

max_wal_senders = 3
wal_keep_segements = 32
Run Code Online (Sandbox Code Playgroud)

postgresql master-slave

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

在 DataColumn 上使用带有 BindingSource 的 'SUBSTRING(expression, startIndex, length)'

我试图通过匹配源字符串的开头和搜索字符串的长度来过滤数字字符串。

所有过滤的列都是字符串。大多数只是单词,但有一列的值如下所示001302:Alt#。底层数据源很糟糕,但我无法改变结构。这些数字根据左侧值进行分组(即050110050534都与 client(05) 相关,052123与 client(05) 发票(2) 相关)。我的用户希望能够搜索 DataGridView 中的数据并按组筛选该列(即输入 05 并查看以 05 开头的所有内容,或输入 052 并查看 052000-052999)

我正在生成过滤器字符串,并使用 DataSet 作为 DataSource 和 Table 作为 DataMember 在 BindingSource 上设置 Filter 属性。我的其余过滤工作正常,我遇到的唯一问题是数字过滤器。当我设置该BindingSource.Filter属性时,它抛出ArgumentOutOfRange异常。

System.Data.dll 中发生类型为“System.ArgumentOutOfRangeException”的未处理异常附加信息:Substring() 参数超出范围。

我想我可能会针对空行或只有几个数字的行来触发它,但它只用一个字符触发。因此,长度参数应该是有效的,但它仍然抛出异常。

bool firstColumn = true;
foreach (DataColumn column in FilteredColumns.Keys)
{
    if (FilteredColumns[column])
    {
        if (!firstColumn) fieldFilter.Append(") OR ("); else firstColumn = false;

        int numericFilter;
        if (int.TryParse(filterWord, out numericFilter))
        {
            fieldFilter.Append(String.Format("SUBSTRING({0}, 0, {2}) = {1}", column.ColumnName, …
Run Code Online (Sandbox Code Playgroud)

c# expression datagridview filter datacolumn

0
推荐指数
1
解决办法
2903
查看次数