azure K8s客户端在尝试创建自定义命名空间对象时返回找不到的页面

f8rj6qna  于 2023-02-16  发布在  其他
关注(0)|答案(1)|浏览(123)

我在kubernetes中使用了以下json作为自定义名称空间对象。

const azureIdentityJson = {
          'apiVersion': 'aadpodidentity.k8s.io/v1',
          'kind': 'AzureIdentity',
          'metadata': {
            'name': identityName,
            'namespace': namespace,
            'annotations': {
              'aadpodidentity.k8s.io/Behavior': 'namespaced'
            }
          },
          'spec': {
            'type': 0,
            'resourceID': managedIdentityId,
            'clientID': managedIdentityClientId
          }
      };
await k8sClient.createCustomObject('aadpodidentity.k8s.io', 'v1', 'azureidentities', azureIdentityJson);

和createCustomObject函数的操作如下。

public async createCustomObject (customTypeName: string, customVersion: string, plural: string, customObjectManifest: any): Promise<any> {
const client = this.kubeConfig.makeApiClient(k8s.CustomObjectsApi);
return new Promise<string>((resolve, reject) => {
  client.createNamespacedCustomObject(customTypeName, customVersion, customObjectManifest.metadata.namespace ? customObjectManifest.metadata.namespace : 'default', plural, customObjectManifest).then(
    (response) => {
        resolve(response);
    },
    (err) => {
      reject(err.response && err.response.body ? err.response.body : err);
    },
  );
});

}
当执行时,得到404,页面未找到错误。没有其他信息在那里。它工作得很好。请帮助这里。卡住了几乎一个月了。
先谢了

vzgqcmou

vzgqcmou1#

CustomResources将结构化数据存储在自定义字段中,如内置字段apiVersion, kind and metadata,这些字段由API显式验证。其中一个字段可能存在问题。
尝试升级Aks版本或node js版本。
有时必须在存储自定义资源对象的版本和提供自定义资源对象的版本之间进行转换。如果转换涉及架构更改并且需要自定义逻辑,则应使用转换webhook。如果没有架构更改,则可以使用默认的None转换策略,并且在提供不同版本时仅修改apiVersion字段。
自定义资源定义中的版本|库贝尔内特斯

相关问题