我正在使用OpenShift版本:
oc v3.10.0+dd10d17
kubernetes v1.10.0+b81c8f8
features: Basic-Auth GSSAPI Kerberos SPNEGO
Server https://127.0.0.1:8443
openshift v3.10.0+e3465d0-44
kubernetes v1.10.0+b81c8f8
我的码头版本是:
Client:
Version: 18.06.1-ce
API version: 1.38
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:24:56 2018
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 18.06.1-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:23:21 2018
OS/Arch: linux/amd64
Experimental: false
要在我的计算机上启动本地OpenShift集群,我按照以下步骤操作:https://github.com/openshift/origin/blob/master/docs/cluster_up_down.md#linux
我想部署一个Redis实例,因为没有默认的Redis模板(有20个默认模板),我将其作为JSON模板从URL加载:https://github.com/openshift/origin/blob/master/examples/db-templates/redis-ephemeral-template.json
从此模板创建应用程序时,Redis pod无法启动并发出以下错误信号:
无法提取图像“172.30.1.1:5000/openshift/redis@sha256:0cf7163e0589baab918b1d70cd1ed4c711e2430c618c672b9121f1fd35cf562a”:rpc错误:代码=未知desc =来自守护程序的错误响应:未知:无法从docker.io/centos/redis-32-提取清单centos7:latest:获取https://registry-1.docker.io/v2/:net / http:请求在等待连接时被取消(在等待标题时超出了Client.Timeout)
当我通过提供码头图像openshiftroadshow/parksmap-katacoda:1.0.0
来部署应用程序时 - 它正在被拉动并成功部署。
我已经登录了在172.30.1.1:5000
发布的容器,该容器托管了OpenShift的docker注册表,并且解决registry-1.docker.io
域显然存在问题:
bash-4.2$ nslookup registry-1.docker.io
;; connection timed out; no servers could be reached
如果我指定8.8.8.8
DNS,一切都很好:
bash-4.2$ nslookup registry-1.docker.io 8.8.8.8
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: registry-1.docker.io
Address: 52.22.67.152
....
所以我查看了/etc/resolv.conf
文件,这里是它的内容:
bash-4.2$ cat /etc/resolv.conf
nameserver 172.30.0.2
search default.svc.cluster.local svc.cluster.local cluster.local home
options ndots:5
我的问题是:
resolv.conf
文件的内容?我非常感谢您的帮助和时间!
行模板:
具有:
{
"description": "The OpenShift Namespace where the ImageStream resides.",
"displayName": "Namespace",
"name": "NAMESPACE",
"value": "openshift"
},
并使用NAMESPACE
值:
有:
"from": {
"kind": "ImageStreamTag",
"name": "redis:${REDIS_VERSION}",
"namespace": "${NAMESPACE}"
},
因此默认情况下模板需要redis
图像的ImageStream位于openshift
项目中。这个模板本身通常通过以下方式加载到openshift
项目中:
在创建时已加载到openshift
群集中。
因此,检查redis
图像的图像流定义是否实际上已加载到openshift
项目中:
oc get is/redis -n openshift --as system:admin
要么:
oc login -u system:admin
oc get is/redis -n openshift
这取决于oc cluster up
的设置方式。默认情况下,第一个可能不起作用。
因此,确定redis
的图像流是否首先存在。