我有一个要部署到AKS群集的映像。该图像存储在Azure容器注册表中,我只是尝试使用以下命令使用YAML文件将其加载到AKS中:
kubectl apply -f myPath \ myimage.yaml
kubectl一直抱怨我缺少必填的“选择器”字段,而“ spec”字段未知。这似乎是基本的图像配置,所以我不知道还要尝试什么。
kubectl:错误:验证“ myimage.yaml”时出错:验证时出错 数据:[ValidationError(Deployment.spec):未知字段“ spec”位于 io.k8s.api.apps.v1.DeploymentSpec,ValidationError(Deployment.spec): 在中缺少必填字段“选择器” io.k8s.api.apps.v1.DeploymentSpec];如果您选择忽略这些 错误,请使用--validate = false来关闭验证在第1行:char:1
apiVersion: apps/v1
kind: Deployment
metadata:
name: myimage
spec:
replicas: 1
template:
metadata:
labels:
app: myimage
spec:
containers:
- name: myimage
image: mycontainers.azurecr.io/myimage:v1
ports:
- containerPort: 5000
答案 0 :(得分:1)
如错误消息中所指定,deployments在其规范内需要一个选择器字段。您可以在链接中查看一些示例。
此外,请注意有两个规范字段。一种用于部署,另一种用作用作模板的Pod。您对广告连播的规格未对齐。应该更深一层。
答案 1 :(得分:0)
您在第二个spec
字段中缩进不正确,并且在第一个selector
中错过了spec
:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: myimage
spec:
replicas: 1
selector:
matchLabels:
app: myimage
template:
metadata:
labels:
app: myimage
spec:
containers:
- name: myimage
image: mycontainers.azurecr.io/myimage:v1
ports:
- containerPort: 5000