将简单的 docker 图像部署到 openshift 时出现问题
Issue in deploying a simple docker image to openshift
我正在制作 Openshift Origin 最新版本的原型。
OS:RHEL 7.3
Docker : 17.05.0-ce
oc v1.5.1+7b451fc
kubernetes v1.5.2+43a9be4
- 使用 sudo 用户完成安装
- 使用
oc cluster up
开始了 openshift
- 以默认用户 developer 身份登录 openshift
- 尝试使用
oc new-app hello-world
部署 docker helloworld 应用程序
- 已使用
oc get pod
获取状态
- 状态错误
NAME READY STATUS RESTARTS AGE
hello-world-1-deploy 0/1 Error 0 57m
- 使用
oc logs hello-world-1-deploy
检查日志,显示的错误是
error: open /var/run/secrets/kubernetes.io/serviceaccount/token: no
such file or directory
尝试了google并得到了很多类似的问题参考,大多数人说它已在最新版本(或类似的答案)中修复。看起来像一个 kubernetes 问题,但仍然没有运气。作为一个新手,没有得到方向。任何人都可以对这个错误给出一些想法。
在 运行 oc adm diagnostics
上发现错误
[Note] Running diagnostic: DiagnosticPod
Description: Create a pod to run diagnostics from the application standpoint
ERROR: [DCli2012 from diagnostic DiagnosticPod@openshift/origin/pkg/diagnostics/client/run_diagnostics_pod.go:155]
See the errors below in the output from the diagnostic pod:
[Note] Running diagnostic: PodCheckAuth
Description: Check that service account credentials authenticate as expected
ERROR: [DP1001 from diagnostic PodCheckAuth@openshift/origin/pkg/diagnostics/pod/auth.go:53]
could not read the service account token: open /var/run/secrets/kubernetes.io/serviceaccount/token: no such file or directory
[Note] Running diagnostic: PodCheckDns
Description: Check that DNS within a pod works as expected
[Note] Summary of diagnostics execution (version v1.5.1+7b451fc):
[Note] Errors seen: 1
[Note] Running diagnostic: NetworkCheck
Description: Create a pod on all schedulable nodes and run network diagnostics from the application standpoint
ERROR: [DNet2001 from diagnostic NetworkCheck@openshift/origin/pkg/diagnostics/network/run_pod.go:77]
Checking network plugin failed. Error: User "developer" cannot get clusternetworks at the cluster scope
[Note] Running diagnostic: ClusterRegistry
Description: Check that there is a working Docker registry
ERROR: [DClu1006 from diagnostic ClusterRegistry@openshift/origin/pkg/diagnostics/cluster/registry.go:209]
The "docker-registry" service exists but has no associated pods, so it
is not available. Builds and deployments that use the registry will fail.
[Note] Running diagnostic: ClusterRouterName
Description: Check there is a working router
ERROR: [DClu2007 from diagnostic ClusterRouter@openshift/origin/pkg/diagnostics/cluster/router.go:156]
The "router" DeploymentConfig exists but has no running pods, so it
is not available. Apps will not be externally accessible via the router.
决议(更新)
- 卸载了最新的 1.13 并安装了最新的 1.12 docker-引擎。
- 使用 centos 存储库完成安装。 Reference
- 使用的命令
Installing dependency se-linux
sudo yum install docker-engine-selinux-1.12.6-1.el7.centos.noarch
Installing docker-engine
sudo yum install docker-engine-1.12.6-1.el7.centos.x86_64
尝试将 docker 降级到 1.13.1 每 this comment。
我正在制作 Openshift Origin 最新版本的原型。
OS:RHEL 7.3
Docker : 17.05.0-ce
oc v1.5.1+7b451fc
kubernetes v1.5.2+43a9be4
- 使用 sudo 用户完成安装
- 使用
oc cluster up
开始了 openshift
- 以默认用户 developer 身份登录 openshift
- 尝试使用
oc new-app hello-world
部署 docker helloworld 应用程序
- 已使用
oc get pod
获取状态 - 状态错误
NAME READY STATUS RESTARTS AGE
hello-world-1-deploy 0/1 Error 0 57m
- 使用
oc logs hello-world-1-deploy
检查日志,显示的错误是
error: open /var/run/secrets/kubernetes.io/serviceaccount/token: no such file or directory
尝试了google并得到了很多类似的问题参考,大多数人说它已在最新版本(或类似的答案)中修复。看起来像一个 kubernetes 问题,但仍然没有运气。作为一个新手,没有得到方向。任何人都可以对这个错误给出一些想法。
在 运行 oc adm diagnostics
[Note] Running diagnostic: DiagnosticPod
Description: Create a pod to run diagnostics from the application standpoint
ERROR: [DCli2012 from diagnostic DiagnosticPod@openshift/origin/pkg/diagnostics/client/run_diagnostics_pod.go:155]
See the errors below in the output from the diagnostic pod:
[Note] Running diagnostic: PodCheckAuth
Description: Check that service account credentials authenticate as expected
ERROR: [DP1001 from diagnostic PodCheckAuth@openshift/origin/pkg/diagnostics/pod/auth.go:53]
could not read the service account token: open /var/run/secrets/kubernetes.io/serviceaccount/token: no such file or directory
[Note] Running diagnostic: PodCheckDns
Description: Check that DNS within a pod works as expected
[Note] Summary of diagnostics execution (version v1.5.1+7b451fc):
[Note] Errors seen: 1
[Note] Running diagnostic: NetworkCheck
Description: Create a pod on all schedulable nodes and run network diagnostics from the application standpoint
ERROR: [DNet2001 from diagnostic NetworkCheck@openshift/origin/pkg/diagnostics/network/run_pod.go:77]
Checking network plugin failed. Error: User "developer" cannot get clusternetworks at the cluster scope
[Note] Running diagnostic: ClusterRegistry
Description: Check that there is a working Docker registry
ERROR: [DClu1006 from diagnostic ClusterRegistry@openshift/origin/pkg/diagnostics/cluster/registry.go:209]
The "docker-registry" service exists but has no associated pods, so it
is not available. Builds and deployments that use the registry will fail.
[Note] Running diagnostic: ClusterRouterName
Description: Check there is a working router
ERROR: [DClu2007 from diagnostic ClusterRouter@openshift/origin/pkg/diagnostics/cluster/router.go:156]
The "router" DeploymentConfig exists but has no running pods, so it
is not available. Apps will not be externally accessible via the router.
决议(更新)
- 卸载了最新的 1.13 并安装了最新的 1.12 docker-引擎。
- 使用 centos 存储库完成安装。 Reference
- 使用的命令
Installing dependency se-linux
sudo yum install docker-engine-selinux-1.12.6-1.el7.centos.noarch
Installing docker-engine
sudo yum install docker-engine-1.12.6-1.el7.centos.x86_64
尝试将 docker 降级到 1.13.1 每 this comment。