[英]Kubernetes pull images from private registry fails --> unknown field "imagePullPolicy"
我正在嘗試從我的 priavte 港口注冊表中提取圖像。 在 Kubernetes 中,我首先創建了一個秘密,如本文檔中所述:
https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
然后我嘗試將其實現到我的 deployment.yaml 中:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-k8s-test9
namespace: k8s-test9
spec:
replicas: 1
template:
metadata:
labels:
app: nginx-k8s-test9
spec:
containers:
- name: nginx-k8s-test9
image: my-registry.com/nginx-test/nginx:1.14.2
imagePullSecrets:
- name: harborcred
imagePullPolicy: Always
volumeMounts:
- name: webcontent
mountPath: usr/share/nginx/html
ports:
- containerPort: 80
volumes:
- name: webcontent
configMap:
name: webcontent
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: webcontent
namespace: k8s-test9
annotations:
volume.alpha.kubernetes.io/storage-class: default
spec:
accessModes: [ReadWriteOnce]
resources:
requests:
storage: 5Gi
當我嘗試創建部署時,我收到以下錯誤消息:
error: error validating "deployment.yaml": error validating data: [ValidationError(Deployment.spec.template.spec.imagePullSecrets[0]): unknown field "imagePullPolicy" in io.k8s.api.core.v1.LocalObjectReference, ValidationError(Deployment.spec.template.spec.imagePullSecrets[0]): unknown field "ports" in io.k8s.api.core.v1.LocalObjectReference, ValidationError(Deployment.spec.template.spec.imagePullSecrets[0]): unknown field "volumeMounts" in io.k8s.api.core.v1.LocalObjectReference]; if you choose to ignore these errors, turn validation off with --validate=false
我想這是一個 yaml 問題,但我不知道它應該在哪里。
這是解決方案:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-k8s-test9
namespace: k8s-test9
spec:
replicas: 1
template:
metadata:
labels:
app: nginx-k8s-test9
spec:
containers:
- name: nginx-k8s-test9
image: my-registry.com/nginx-test/nginx:1.14.2
volumeMounts:
- name: webcontent
mountPath: usr/share/nginx/html
ports:
- containerPort: 80
volumes:
- name: webcontent
configMap:
name: webcontent
imagePullSecrets:
- name: harborcred-test
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: webcontent
namespace: k8s-test9
annotations:
volume.alpha.kubernetes.io/storage-class: default
spec:
accessModes: [ReadWriteOnce]
resources:
requests:
storage: 5Gi
imagePullSecrets 部分不在正確的位置。
你能像這樣改變你的配置嗎?
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: webcontent
namespace: k8s-test9
annotations:
volume.alpha.kubernetes.io/storage-class: default
spec:
accessModes: [ReadWriteOnce]
resources:
requests:
storage: 5Gi
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-k8s-test9
namespace: k8s-test9
spec:
replicas: 1
template:
metadata:
labels:
app: nginx-k8s-test9
spec:
containers:
- name: nginx-k8s-test9
image: my-registry.com/nginx-test/nginx:1.14.2
imagePullSecrets:
- name: harborcred
imagePullPolicy: Always
volumeMounts:
- name: webcontent
mountPath: usr/share/nginx/html
ports:
- containerPort: 80
volumes:
- name: webcontent
configMap:
name: webcontent
使用kubectl apply -f deployment.yaml
如果它不起作用嘗試
kubectl apply -f deployment.yaml --validate=false
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.