拉取 MS SQL Server 的公共映像时,Kubernetes 中的 pod 上出现“上下文截止时间已过”错误

拉取 MS SQL Server 的公共映像时,Kubernetes 中的 pod 上出现“上下文截止时间已过”错误

关注 Les Jackson教程在微服务上,在启用了 Kubernetes 的 Docker 本地安装上,我想在 Kubernetes 中创建一个新的 pod,其中包含可用的 ms sql server express 映像这里。部署文件与视频中的完全相同,但我无法让它工作。每次 pod 都以状态 ImagePullBack 结束。运行后kubectl 描述 pod

Name:         mssql-depl-5cd6d7d486-nrrkn
Namespace:    default
Priority:     0
Node:         docker-desktop/192.168.65.4
Start Time:   Thu, 28 Jul 2022 12:09:34 +0200
Labels:       app=mssql
              pod-template-hash=5cd6d7d486
Annotations:  <none>
Status:       Pending
IP:           10.1.0.27
IPs:
  IP:           10.1.0.27
Controlled By:  ReplicaSet/mssql-depl-5cd6d7d486
Containers:
  mssql:
    Container ID:
    Image:          mcr.microsoft.com/mssql/server:2017-latest
    Image ID:
    Port:           1433/TCP
    Host Port:      0/TCP
    State:          Waiting
      Reason:       ImagePullBackOff
    Ready:          False
    Restart Count:  0
    Environment:
      MSSQL_PID:    Express
      ACCEPT_EULA:  Y
      SA_PASSWORD:  <set to the key 'SA_PASSWORD' in secret         'mssql'>  Optional: false
    Mounts:
      /var/opt/mssql/data from mssqldb (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-    api-access-xqzks (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  mssqldb:
    Type:       PersistentVolumeClaim (a reference to a         PersistentVolumeClaim in the same namespace)
    ClaimName:  mssql-claim
    ReadOnly:   false
  kube-api-access-xqzks:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-    ready:NoExecute op=Exists for 300s
                                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age                  From               Message
  ----     ------     ----                 ----               -------
  Normal   Scheduled  3m42s                default-scheduler      Successfully assigned default/mssql-depl-5cd6d7d486-nrrkn to docker-desktop
  Warning  Failed     102s                 kubelet                Failed to pull image "mcr.microsoft.com/mssql/server:2017-latest":     rpc error: code = Unknown desc = context deadline exceeded
  Warning  Failed     102s                 kubelet            Error: ErrImagePull
  Normal   BackOff    102s                 kubelet            Back-off pulling image "mcr.microsoft.com/mssql/server:2017-latest"
  Warning  Failed     102s                 kubelet            Error: ImagePullBackOff
  Normal   Pulling    87s (x2 over 3m41s)  kubelet            Pulling image "mcr.microsoft.com/mssql/server:2017-latest"

我发现了潜在的错误

“rpc 错误:代码 = 未知 desc = 超出上下文截止时间”

而且我不确定如何进一步解决此问题,我将非常感谢任何帮助。

我最初在 stackoverflow 上发布了此内容这里并将我的问题重定向到此站点,因为这可能是网络问题。

答案1

我通过运行docker pull mcr.microsoft.com/mssql/server:2017-latest、删除并重新应用部署来修复它。

答案2

同样的问题,但我需要先将图像拉到 minikube minikube ssh docker pull <the_image>

然后部署就可以了

相关内容