我正在嘗試使用 k8s 在本地啟動幾個容器,但是由于ImagePullBackOff、ErrImagePull導致容器創建停止。yaml 很好,在另一個作業站上測驗過。我可以使用常規 docker 拉取影像。但在 k8s/minikube 環境下失敗
錯誤容器日志是
Error from server (BadRequest): container "mongo-express" in pod "mongoexpress-deployment-bd7cf697b-nc4h5" is waiting to start: trying and failing to pull image
minikube 儀表板中的錯誤是
Failed to pull image "docker.io/mongo": rpc error: code = Unknown desc = Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
我嘗試將影像拉到我的本地 docker 快取并運行
eval $(minikube docker-env)
但我不斷收到這個錯誤。它看不到本地影像存盤庫,也不會自行下載影像。
我 100% 確定這與 Fedora 上的用戶訪問有關。但不知道該怎么做,我已經嘗試解決這個問題了幾天:(。
請幫忙,謝謝
不知道這是否有幫助:我嘗試使用k3s。鏡像拉取成功,但 minikube 在 Fedora 上不兼容。
另外...如果我嘗試使用不帶 sudo 的 docker,它不會拉取影像。用 sudo 它拉。
作業系統是 Fedora,我使用 docker、kubernetes、minikube、podman 作為驅動程式。
- linux version
NAME="Fedora Linux"
VERSION="35 (Workstation Edition)"
- kubectl version
Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.5",
- docker version
Version: 20.10.12
- minikube version
minikube version: v1.25.2
我正在嘗試在本地啟動這個 yaml 檔案
apiVersion: v1
kind: Secret
metadata:
name: mongodb-secret
type: Opaque
data:
mongo-root-username: dXNlcm5hbWU=
mongo-root-password: cGFzc3dvcmQ=
---
apiVersion: v1
kind: ConfigMap
metadata:
name: mongodb-configmap
data:
database_url: mongodb-service
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongoexpress-deployment
labels:
app: mongoexpress
spec:
replicas: 1
selector:
matchLabels:
app: mongoexpress
template:
metadata:
labels:
app: mongoexpress
spec:
containers:
- name: mongo-express
image: mongo-express
ports:
- containerPort: 8081
env:
- name: ME_CONFIG_MONGODB_ADMINUSERNAME
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-username
- name: ME_CONFIG_MONGODB_ADMINPASSWORD
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-password
- name: ME_CONFIG_MONGODB_SERVER
valueFrom:
configMapKeyRef:
name: mongodb-configmap
key: database_url
- name: WHATEVER
value: Someconfig
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongodb-deployment
labels:
app: mongodb
spec:
replicas: 1
selector:
matchLabels:
app: mongodb
template:
metadata:
labels:
app: mongodb
spec:
containers:
- name: mongodb
image: mongo
ports:
- containerPort: 27017
env:
- name: MONGO_INITDB_ROOT_USERNAME
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-username
- name: MONGO_INITDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-password
---
apiVersion: v1
kind: Service
metadata:
name: mongodb-service
spec:
selector:
app: mongodb
ports:
- protocol: TCP
port: 27017
targetPort: 27017
---
apiVersion: v1
kind: Service
metadata:
name: mongoexpress-service
spec:
selector:
app: mongoexpress-deployment
type: LoadBalancer
ports:
- protocol: TCP
port: 8081
targetPort: 8081
nodePort: 30000
uj5u.com熱心網友回復:
根據評論,我的建議是使用 docker 驅動程式,因為 Docker 已經安裝在系統中并且是首選的穩定驅動程式。
minikube start --driver=docker
您也可以將其設定為默認驅動程式。
minikube config set driver docker
minikube start
不過,這并不能解釋為什么它不適用于 podman。
uj5u.com熱心網友回復:
這是解決該問題的一種解決方法,如果您可以使用 docker pull 拉取影像,然后在所有作業節點上執行此操作,然后添加一個
ImagePullPolicy:IfNotPresent
在您提到影像名稱的 yamls 中,然后 k8s 將首先檢查它是否存在于機器中,如果存在則直接使用它
uj5u.com熱心網友回復:
請仔細檢查您是否錯誤地輸入了影像的路徑。
ImagePullBackOff 錯誤發生在鏡像路徑不正確、網路不通、kubelet 沒有通過容器注冊中心認證成功的情況下。Kubernetes 最初拋出 ErrImagePull 錯誤,然后在重試幾次后,“拉回”并安排另一次下載嘗試。
無法從注冊表中提取影像時出現 ImagePullBackoff 錯誤。由于找不到映像或您的節點無權從注冊表中提取,可能會發生該錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/456907.html
標籤:Kubernetes 软呢帽 迷你库贝
上一篇:IstioCRD安裝失敗
下一篇:無法從瀏覽器訪問我的minikube集群(?因為你在windows上使用的是Docker驅動,所以需要打開終端才能運行它。)
