我创建了一个Docker镜像,并将其推送到了一个私有的Docker Hub存储库。使用以下清单文件,我尝试创建一个新的Pod:
apiVersion: v1
kind: Pod
metadata:
name: web-app-pod
labels:
app: web
spec:
containers:
- name: web-app-container
image: {docker_hub_username}/{repository_name}:tag
ports:
- containerPort: 8080
要创建新的Pod,我只需尝试以下操作:
kubectl apply -f pod.yml kubectl get pods --watch
其输出如下:
NAME READY STATUS RESTARTS AGE web-app-pod 0/1 ImagePullBackOff 0 7m35s
这表明Kubernetes无法从Docker Hub中提取图像。为了获得更详细的报告,我尝试了以下方法:
kubectl describe po web-app-pod
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 22s default-scheduler Successfully assigned default/web-app-pod to lke91166-138019-63e1c8b4d01b
Normal BackOff 20s (x2 over 21s) kubelet Back-off pulling image "{docker_hub_username}/{repository_name}:tag"
Warning Failed 20s (x2 over 21s) kubelet Error: ImagePullBackOff
Normal Pulling 7s (x2 over 22s) kubelet Pulling image "{docker_hub_username}/{repository_name}:tag"
Warning Failed 7s (x2 over 22s) kubelet Failed to pull image "{docker_hub_username}/{repository_name}:tag": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/{docker_hub_username}/{repository_name}:tag": failed to resolve reference "docker.io/{docker_hub_username}/{repository_name}:tag": pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
Warning Failed 7s (x2 over 22s) kubelet Error: ErrImagePull