我是掌舵和Kubernetes世界的新手。 我正在使用Docker,Kubernetes和Helm的项目中进行尝试,在该项目中,我试图使用Kubernetes上的Helm Chart部署简单的Node.js应用程序。
这是我尝试过的:
来自Dockerfile
:
FROM node:6.9.2
EXPOSE 30000
COPY server.js .
CMD node server.js
我已经构建了映像,对其进行了标记并将其推送到位于MY_USERNAME/myhello:0.2
然后我运行简单commad创建掌舵图表为:
helm create mychart
它创建了一个mychart目录,其中包含所有头盔组件。
然后我将values.yaml
文件编辑为:
replicaCount: 1
image:
repository: MY_USERNAME/myhello
tag: 0.2
pullPolicy: IfNotPresent
nameOverride: ""
fullnameOverride: ""
service:
type: NodePort
port: 80
externalPort: 30000
ingress:
enabled: false
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
paths: []
hosts:
- chart-example.local
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}
之后,我将图表安装为:
helm install --name myhelmdep01 mychart
以及运行kubectl get pods
时
它显示了ErrImagePull
我尝试通过将图像名称提到为docker.io/arycloud/myhello
在这种情况下,图像成功拉出,但是出现了另一个错误:
活动探测失败:获取http://172.17.0.5:80/:拨打tcp 172.17.0.5:80:connect:连接被拒绝
答案 0 :(得分:1)
在错误发生后立即运行kubectl describe pod <yourpod>
,并且在输出底部附近应该有一个事件可以告诉您确切的图像拖拽问题是什么。
可能是以下选项之一:
registry-1.docker.io/arycloud/myhello
如果您可以找到该错误,那应该很简单。