当前位置: 首页 > 知识库问答 >
问题:

在舵图values.yaml中拉出docker集线器图像

鲍向笛
2023-03-14

我是新来helm和Kubernetes世界的。我正在使用Docker、Kubernetes和helm进行一个项目,其中我试图在Kubernetes上使用helm图表部署一个简单的Nodejs应用程序

以下是我尝试过的:

FROM node:6.9.2
EXPOSE 30000
COPY server.js .
CMD node server.js

我已经构建了映像,对其进行标记,并将其推送到docker集线器存储库中:my_username/myHello:0.2

然后,我运行简单的commad来创建一个helm图表:helm create mychart它创建了一个包含所有helm组件的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在本例中,映像成功提取,但出现另一个错误:

活性探测失败:Get http://172.17.0.5:80/:dial tcp 172.17.0.5:80:Connect:连接被拒绝

共有1个答案

毕瀚
2023-03-14

在错误发生后不久运行kubectl description pod ,在输出的底部附近应该会有一个事件告诉您图像拉出的问题到底是什么。

在我看来,这可能是其中一种选择:

  • 这是一个私有回购,您没有为POD/部署提供具有正确ImagePullSecret
  • 的服务帐户
  • 您的后端不是docker,或者不假定非前缀映像在hub.docker.com上。请尝试以下操作:registry-1.docker.io/arycloud/myhello

如果你能找到那个错误,它应该是相当直接的。

 类似资料:
  • 我有helm chart设置,其中应用程序的helm chart被打包并推送到nexus repo考虑 将其添加到helm中,使用 一旦回购被添加,我可以看到图表 需要一些关于如何获得通过文件格式的覆盖值的输入。因为重写值可以是动态的。在一个环境中,它可以是一个变量,在另一个环境中,有10个变量需要被覆盖

  • 我正在为一个自定义应用程序编写一个指导图,我们需要在我的组织内的不同环境中使用该应用程序。这个应用程序在Kubernetes中有一些部分(这就是为什么我要编写Helm图表),在K8S之外有一些部分,更具体地说,是我用Terraform编写的AWS中的各种资源。

  • 使用函数生成UUID。但需要帮助如何将该值发送到两个组件。 这是我的图表文件夹结构-- 项目目录 图表1 模板 StateFulSet.yaml null null 我必须编写逻辑来在中生成。

  • 我想用头盔图和subchart中资源部分的模板将资源设置为吊舱。因为subchart中应该有几个不同的资源模板。我有价值观。亚马尔,主要价值观。yaml和模板/部署。yaml更新舵图的命令是 文件被剪切以仅显示一个示例:主值。亚马尔: 价值观亚马尔 以及部署。亚马尔是 而且资源的部署部分根本不起作用。然而,中间模板{.Values.customBranch}的图像部分可以工作,而节点端口模板在服务

  • 当我运行helm时,我如何从本地环境变量中拉取USERNAME和PASSWORD的值? 这可能吗?如果是,那我该怎么做呢?

  • 我刚开始掌舵,我不明白为什么会这样。我正在使用官方的EFK图表,我正在尝试将发行版名称添加到FluentD-ElasticSearch的主机字段,但它没有得到评估。它只是作为字符串传递。ELASTICSEARCH_HOSTS中的发行版名称计算正确,但主机字段中的发行版名称完全没有计算。有人能说出为什么会发生这种情况,以及如何修复它吗? Helm版本:version.buildinfo{versio