对 Kubernetes API 服务器的 POST 请求会导致"the namespace of the provided object does not match the namespace s



我正在编写一个脚本,该脚本将在Kubernetes中创建机密,而不会将base64编码的文件以纯文本形式放置在etcd之外的任何位置。为了做到这一点,我直接与kubernetes的api服务器对话,而不是通过kubectl。当我提出请求时,它需要一个名称空间,这是有意义的。

然而,我收到的关于命名空间的响应是"所提供对象的命名空间与请求中发送的命名空间不匹配"。我查看了api服务器和kubectl的源代码,看看kubectl是否有我没有做的特殊事情会导致这个问题。我出现这个错误的原因是什么?我是不是丢了球头或者饼干之类的东西?

这是我的请求(我用JS写):

var data = JSON.stringify(/* Secret spec */);
var req = http.request({
    hostname: argObj.host ? argObj.host : '127.0.0.1',
    port: argObj.port ? argObj.port : '8080',
    path: '/api/v1/secrets',
    method: argObj.method ? argObj.method : 'POST',
    headers: {
        'Content-Type': 'application/json'
    }
}, (res)=>{/* handle res */});
req.write(data);

在这个示例中,我故意省略了身份验证,我可以确认我是身份验证。

因此,解决方案是POST到"/api/v1/namespaces/{namespace}/secrets",而不是

相关内容

最新更新