提取公共映像时Kubernetes中的映像提取窗格状态(MS SQL Server Express)

c90pui9n  于 2022-11-21  发布在  Kubernetes
关注(0)|答案(2)|浏览(73)

我正在跟随LesJackson的tutorial到微服务,在为ms sql服务器创建部署时,我在05:30:00卡住了。我已经编写了部署文件,正如yt视频中所示:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mssql-depl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mssql
  template:
    metadata:
      labels:
        app: mssql
    spec:
      containers:
        - name: mssql
          image: mcr.microsoft.com/mssql/server:2017-latest
          ports:
            - containerPort: 1433
          env:
          - name: MSSQL_PID
            value: "Express"
          - name: ACCEPT_EULA
            value: "Y"
          - name: SA_PASSWORD
            valueFrom:
              secretKeyRef:
                name: mssql
                key: SA_PASSWORD
          volumeMounts:
            - mountPath: /var/opt/mssql/data
              name: mssqldb
      volumes:
      - name: mssqldb
        persistentVolumeClaim:
          claimName: mssql-claim

---
apiVersion: v1
kind: Service
metadata:
  name: mssql-clusterip-srv
spec:
  type: ClusterIP
  selector:
    app: mssql
  ports:
  - name: mssql
    protocol: TCP
    port: 1433 # this is default port for mssql
    targetPort: 1433 

---
apiVersion: v1
kind: Service
metadata:
  name: mssql-loadbalancer
spec:
  type: LoadBalancer
  selector:
    app: mssql
  ports:
  - protocol: TCP
    port: 1433 # this is default port for mssql
   targetPort: 1433

《持久卷》宣称:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mssql-claim
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 200Mi

但是,当我应用此部署时,Pod以ImagePullBackOff状态结束:

commands-depl-688f77b9c6-vln5v    1/1     Running            0          2d21h
mssql-depl-5cd6d7d486-m8nw6       0/1     ImagePullBackOff   0          4m54s
platforms-depl-6b6cf9b478-ktlhf   1/1     Running            0          2d21h

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错误:code =未知desc =超过上下文截止时间”
但它并没有告诉我任何东西,有关解决此错误的资源也不包括此类错误。
我在本地使用docker上的kubernetes。我已经研究过这个问题,当从一个私人注册表中拉图像时会发生,但这是一个公共的,正确的here。我复制粘贴图像路径以确保,我尝试了不同的ms sql版本,但没有效果。
有没有人能这么好心,告诉我我应该走的正确方向/我应该尝试什么才能让这个工作?它在视频中工作得很好:(

eoxn13cs

eoxn13cs1#

我通过docker pull mcr.microsoft.com/mssql/server:2017-latest手动提取映像,然后删除并重新应用部署,从而修复了该问题。

nzk0hqpo

nzk0hqpo2#

在我的情况下,我需要使用minikube ssh docker pull <the_image>将图像“拉到minikube”
然后我就可以应用我的部署而不会出现错误。
来源:https://github.com/kubernetes/minikube/issues/14806

相关问题