2

我将链接作为指南https://cloud.google.com/healthcare/docs/how-tos/dicom-connect-pacs#creating_a_dicom_store

使用 Google Kubernetes Engine 部署适配器

我的清单文件

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: dicom-adapter
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: dicom-adapter
    spec:
      containers:
        - name: dicom-import-adapter
          image: gcr.io/cloud-healthcare-containers/healthcare-api-dicom-dicomweb-adapter-import:0.2.1
          ports:
            - containerPort: 2575
              protocol: TCP
              name: "port"
          args:
            - "--dimse_aet=IMPORTADAPTER"
            - "--dimse_port=2575"
            - "--dicomweb_address=https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb" `

在控制台中

$kubectl apply -f dicom_adapter.yaml
error: unable to recognize "dicom_adapter.yaml": no matches for kind "Deployment" in version "extensions/v1beta"
4

1 回答 1

0

在您的 yaml 文件apiVersion中从更改extensions/v1beta1apps/v1.

在官方文档中:

不再提供extensions/v1beta1apps/v1beta1apps/v1beta2 API 版本中的部署

  • 迁移以使用自 v1.9 起可用的 apps/v1 API 版本。可以通过新版本检索/更新现有的持久数据。

在新版本的 Kubernetes 中有一些变化:

  • 创建集群(1.15 版本的 k8s 集群在 GKE 中不再可用)
  • 配置部署:从 k8s 集群 1.16 版本开始 - apiVersion: extensions/v1beta1 不再可用 迁移到使用 apps/v1 API 版本,从 v1.9 开始可用。
    请参阅文档:api-deprecations-in-1-16/

这个问题在这里提出: https ://issuetracker.google.com/issues/185205137

同样在配置spec中的部分下,您deployment必须使用selector带有matchLabels部分的字段。在您的情况下,部分部署应如下所示:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: dicom-adapter
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: dicom-adapter
    spec:
      selector:  
        matchLabels:  
          app: dicom-adapter

根据该selector: matchLabels标签,告诉资源(无论它可能是服务、部署等)与 pod 匹配。

查看官方文档 - kubernetes-object-labels-selectors

于 2021-03-09T07:34:38.473 回答