如何 set/delete 在 mesos 中使用激活的 acl 配额?

How to set/delete quotas in mesos with activated acls?

我正在为如何使用激活的 acls 在 mesos 中获得配额而苦苦挣扎。

我正在使用 Mesos 版本 0.27.2。

我有三个大师使用以下标志:

我的 acls 是这样的:

    {
    "permissive": false,
  "run_tasks": [
    {
      "principals": { "values": ["ase", "core", "opss", "jenkins"] },
      "users": { "values": ["jenkins"] }
    }
  ],
  "register_frameworks": [
    {
      "principals": { "values": ["ase"] },
      "roles": { "values": ["ase"] }
    },
    {
      "principals": { "values": ["opss"] },
      "roles": { "values": ["opss"] }
    },
    {
      "principals": { "values": ["core"] },
      "roles": { "values": ["core"] }
    },
    {
      "principals": { "values": ["jenkins"] },
      "roles": { "values": ["jenkins"] }
    }
  ],
  "set_quotas": [
    {
      "principals": {
        "values": ["ase", "core", "opss", "jenkins"]
      },
      "roles": {
        "values": ["ase", "core", "opss", "jenkins"]
      }
    }
    ],
  "remove_quotas": [
    {
      "principals": {
        "values": ["ase", "core", "opss", "jenkins"]
      },
      "quota_principals": {
        "values": ["ase", "core", "opss", "jenkins"]
      }
    }
    ]
}

对于主体 ase、core 和 ops,凭据文件中有密码,使用这些凭据注册框架工作正常,注册从属也是如此。

但是,当尝试使用 curl 添加配额时,我收到 403 Forbidden 作为响应。

curl -u opss -v -d @ase-quota.json -X POST http://SERVER-IP:5050/quota --header "Content-Type: application/json"

以上命令在未启用 ACLS 时工作正常。

再次启用后,删除配额失败,再次出现 403 Forbidden。

我在 mesos-master 日志中看到的是:

I0414 10:59:39.396838     9 http.cpp:501] HTTP GET for /master/state.json from 192.168.7.14:35248 with User-Agent='Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0'
I0414 10:59:40.019409     8 http.cpp:501] HTTP POST for /master/quota from 192.168.7.14:35258 with User-Agent='curl/7.35.0'
I0414 10:59:40.031294     8 quota_handler.cpp:446] Authorizing principal 'ANY' to request quota for role 'ase'

用于添加,并且:

I0414 13:07:23.521467     9 http.cpp:501] HTTP DELETE for /master/quota/ase from 192.168.7.14:50685 with User-Agent='curl/7.35.0'
I0414 13:07:23.523748     9 quota_handler.cpp:472] Authorizing principal 'ANY' to remove quota set by 'ANY'

尝试删除配额时。

问题是,在这种情况下,我如何让 curl 或 mesos 意识到我正在担任主要 opss?

您没有在 mesos 主配置中设置参数 --authenticate_http=true。