小编Jty*_*tan的帖子

Helm 中的 Persistent Volumes & Claims & Replicas 推荐方法

我正在尝试了解 Persistent Volumes 和 Persistent Volume Claims 以及它应该如何在 Helm 中完成...

问题的TLDR版本是:如何在 helm 中创建 PVC,我可以将未来版本(无论是升级还是全新安装)附加到?

我目前的理解:

PV是一块物理存储的接口。PVC 是 pod 声称存在供自己使用的 PV 的方式。当 pod 被删除时,PVC 也被删除,但 PV 被维护 - 因此被持久化。但是,我如何再次使用它?

我知道可以动态配置 PV。以 Google Cloud 为例,如果您创建一个 PVC,它会自动为您创建一个 PV。

现在这是我坚持的部分......

我创建了一个 helm chart,它明确地创建了 PVC,因此有一个动态创建的 PV 作为发布的一部分。然后我稍后删除发布,这也将删除 PVC。云提供商将维护PV。在后续安装相同图表的新版本中...如何重用旧 PV?有没有办法真正做到这一点?

我确实找到了这个问题的答案......但是,这意味着您需要为您需要的每个 PVC 预先创建 PV,并且副本和自动缩放的重点是所有这些应该按需生成。

用例是 - 一如既往 - 适用于我希望我的数据被持久化的测试/开发环境,但我并不总是希望服务器运行。

先感谢您!我的大脑有点痛,因为我就是想不通……>.<

kubernetes google-kubernetes-engine kubernetes-helm

10
推荐指数
1
解决办法
3726
查看次数

Rails - update_attributes遇到验证

所以我有一个用户模型,有登录,电子邮件地址,密码,密码确认,姓名,头像(图片)等.前5个有验证,基本上说明所有5个都需要存在才能创建一个新模式.

但是,这会给我带来更新问题.

我有一个编辑页面,用户只能编辑他们的名字和头像.我目前不打算让他们更改他们的登录信息,我希望从其他页面更改电子邮件和密码.

因此编辑表单如下所示:

<% form_for @user, :html => { :multipart => true } do |u| %>
 <p>
  <label>Name:</label>
  <%= u.text_field :name %>
 </p>
 <p>
  <label>Avatar:</label>
  <%= display_user_avatar %>
  <%= u.file_field :avatar%>
 </p>
 <p>
  <%= submit_tag %>
 </p>
<% end %>
Run Code Online (Sandbox Code Playgroud)

如果我尝试做了@user.update_attributes(params[:user]),然后因为只有2个PARAMS是nameavatar,更新失败,因为东西像密码,确认密码,电子邮件等需要验证的条目,它们根本就没有在该形式存在.

我可以通过这样做来解决这个问题@user.update_attribute(:name, params[:user][:name]),但后来我担心避免验证是否是Good Thing™.尤其是关于像密码更新,在这里我需要验证新密码.

还有另外一种方法吗?

如果我这样做简单地使用update_attribute为:name:avatar,我将如何去这样做呢?

这会有用吗?

params[:user].each do |attribute|
  @user.update_attribute(attribute, params[:user][attribute])
end
Run Code Online (Sandbox Code Playgroud)

这是一种可以接受的方式吗?


- 编辑跟进 -
好吧,我按照你的建议做了尝试

  def update
    @user = User.find_by_login(params[:id]) …
Run Code Online (Sandbox Code Playgroud)

validation ruby-on-rails update-attributes

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

Rails Money-Rails gem 的货币化方法未定义

我正在尝试让money-railsgem 正常工作,但遇到了问题...>.<

这是我有相应专栏的产品:

class ItemAttrVal < ActiveRecord::Base
  belongs_to :attr_name
  belongs_to :registry_item

  monetize :price_val_cents, :allow_nil => true
  #snip
end
Run Code Online (Sandbox Code Playgroud)

我已经运行了迁移,并且存在相应的列(price_val_cents、 和price_val_currency)。

我的 Gemfile 中有该 gem,并且已bundle install成功运行。

当我这样做时ItemAttrVal.new,我将其作为错误消息的第一行:

NoMethodError: undefined method `monetize' for #<Class:0x007fb489c759d0>
Run Code Online (Sandbox Code Playgroud)

有人可以帮我指出我错过了什么简单的事情吗?我没有将它包含在任何地方require(除了我的 Gemfile),但我认为没有必要......

谢谢!

currency ruby-on-rails

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

用于数据库的 Docker 卷与 Kubernetes 持久卷

Docker 镜像和 Kubernetes 集群都有在主机、单独的容器或某种形式的云/网络存储机制上配置持久存储的机制。

我试图了解它们在用例中的不同之处以及为什么您会使用一种而不是另一种。对于上下文,我也更多地考虑了事务数据库持久性,而不是日志文件或共享文件/文件夹访问。

提前致谢!

docker kubernetes

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

nodejs sqlite3 db.run作为蓝鸟的承诺

我试图在快递应用程序中使用sqlite3.基本上,我得到一个休息请求,根据其他请求,我查询外部REST请求.在来自外部请求的响应和从原始REST请求传入的数据之间,然后我进行更新或插入到我的一个sqlite3表中.

db.run(sqlStatement, paramArray, function(err))遇到的问题是,函数(错误)是一个回调,err它是一个错误,或者是nil.除此之外,如果errparam是null,那么this引用包含2个属性,其中一个属性告诉我语句修改的行数.(https://github.com/mapbox/node-sqlite3/wiki/API#databaserunsql-param--callback供参考)

事实是,我promisifyAll在sqlite3模块上运行bluebird ,然后使用结果

db.runAsync(sqlStatement, paramArray).then(err) {
    console.log(this) //results in a null
}
Run Code Online (Sandbox Code Playgroud)

所以我无法弄清楚是否有任何更新.

我的整段代码看起来有点像这样:

function handleRequest(req, res) {

    //this returns the response as the first object
    request.getAsync('http://www.example.com', reqObj)         
        .then(prepareDbObjects) //prepares an array of objects to update the DB with
        .then(attemptUpdate)
        .then(function(rowsUpdated) {
            res.json(rowsUpdated)
        }
}

function attemptUpdate(updateObjs) {
    var promiseMap = Promise.map(updateObjs, function(singleObj) {
        return updateOrInsertObj(singleObj)
    }
    return promiseMap
}


function …
Run Code Online (Sandbox Code Playgroud)

sqlite node.js promise bluebird

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