gpt4 book ai didi

docker - 针对不安全注册表的Openshift Origin运行应用会产生带有 “Error while pulling image”的卡住的pod

转载 作者:行者123 更新时间:2023-12-02 21:26:40 25 4
gpt4 key购买 nike

我在Docker容器中使用Openshift Origin,并使用以下方法从Docker注册表(同一RHEL主机VM上的容器)中提取了镜像:

oc new-app --insecure-registry=true --docker-image=mtl-vm375:5000/jenkins:1.0

当时该命令似乎运行良好。但是, pods 保持为“ContainerCreating”,kubectl的结果描述了 pods :
OPENSHIFT_DEPLOYMENT_NAME:        jenkins-1
OPENSHIFT_DEPLOYMENT_NAMESPACE: default
Conditions:
Type Status
Ready False
Volumes:
deployer-token-3bls9:
Type: Secret (a volume populated by a Secret)
SecretName: deployer-token-3bls9
Events:
FirstSeen LastSeen Count From SubobjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
2h 4m 33 {kubelet mtl-vm375} Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "POD" with ErrImagePull: "Error while pulling image: Get https://index.docker.io/v1/repositories/openshift/origin-pod/images: dial tcp 10.230.22.20:443: connection refused"

2h 6s 652 {kubelet mtl-vm375} Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "POD" with ImagePullBackOff: "Back-off pulling image \"openshift/origin-pod:v1.1.5\""

有一个错误表明它正在尝试使用https,我猜(但不确定)是错误,因为我还没有正确设置证书的https:

关于Stackoverflow的其他建议,我已将以下环境变量添加到Origin镜像中:
KUBE_ENABLE_INSECURE_REGISTRY = true
EXTRA_DOCKER_OPTS =-不安全的注册表

我也有类似的结果:
KUBE_ENABLE_INSECURE_REGISTRY = true \
EXTRA_DOCKER_OPTS =“-不安全的注册表10.230.22.20”

版本信息:
[root@mtl-vm375 origin]# oc version 
oc v1.1.5-52-gd58f979 kubernetes v1.2.0-36-g4a3f9c5


[root@mtl-vm375 ~]# docker version
Client:
Version: 1.8.2-el7.centos
API version: 1.20
Package Version: docker-1.8.2-10.el7.centos.x86_64
Go version: go1.4.2
Git commit: a01dc02/1.8.2
Built:
OS/Arch: linux/amd64

Server:
Version: 1.8.2-el7.centos
API version: 1.20
Package Version:
Go version: go1.4.2
Git commit: a01dc02/1.8.2
Built:
OS/Arch: linux/amd64

提前致谢,

约翰

最佳答案

这是我使用另一个Docker注册表中的镜像(甚至在我的群集之外)执行的步骤。

我的注册表:

https://ec2-xx-xx-xx-xx.eu-central-1.compute.amazonaws.com:5000

我在OS中创建要推送到的项目。
$ oc new-project test

我在项目中,我将创建一个 secret ,以便我的openshift能够访问我的注册表:
$ oc secrets new-dockercfg mysecret --docker-server=https://ec2-xx-xx-xx-xx.eu-central-1.compute.amazonaws.com:5000 --docker-username=testuser --docker-password=testpassword --docker-email=any@mail.com

向服务帐户添加 secret
$ oc secrets add serviceaccount/default secrets/mysecret --for=pull    
$ oc secrets add serviceaccount/builder secrets/mysecret

导入图像流
$ oc import-image --insecure ec2-xx-xx-xx-xx.eu-central-1.compute.amazonaws.com:5000/test/name-of-image:1 --confirm

现在,您可以创建一个
oc new-app --insecure-registry <image-stream-name>:tag

更好的方法是将镜像推送到OpenShift注册表。不必创建 secret 并执行 oc import
您可以公开注册表(安全注册表),以便可以从群集外部访问注册表以推送图像。

关于docker - 针对不安全注册表的Openshift Origin运行应用会产生带有 “Error while pulling image”的卡住的pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36655281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com