问题描述
我留下链接作为指南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"
解决方法
在您的 yaml 文件中,将 [ApiVersion("1.0")]
[Route("api/v{version:apiVersion}/[controller]")]
[Authorize]
[ApiController]
[EnableCors("CorsPolicy")]
public abstract class BaseApiController : ControllerBase
从 apiVersion
更改为 extensions/v1beta1
。
官方doc:
部署在 extensions/v1beta1、apps/v1beta1 和 apps/v1beta2 不再提供 API 版本
- 迁移到使用 apps/v1 API 版本,从 v1.9 开始可用。现有的持久数据可以通过新的 版本。
在新版本的 Kubernetes 中有变化:
- 创建集群(GKE 中不再提供 1.15 版本的 k8s 集群)
- 配置部署:从 k8s 集群 1.16 版本开始 - apiVersion:extensions/v1beta1 不再可用迁移到使用 apps/v1 API 版本,从 v1.9 开始可用。
见文档:api-deprecations-in-1-16/
这里提出了这个问题: https://issuetracker.google.com/issues/185205137
同样在您的 apps/v1
配置中的 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
告诉资源,无论它是什么,服务,部署等,根据该标签匹配 pod。
查看官方文档 - kubernetes-object-labels-selectors。