首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fabric8:舵机目标是如何工作的?

fabric8:舵机目标是如何工作的?
EN

Stack Overflow用户
提问于 2018-08-10 12:17:36
回答 1查看 1.1K关注 0票数 2

我们使用fabric8 maven插件来构建maven项目并将其部署到kubernetes中。

我不太清楚如何使用fabric8:helm目标。

我试着弄到一些关于它究竟是什么的细节,但我不太明白:

代码语言:javascript
复制
$ mvn help:describe -Dgoal=helm -DgroupId=io.fabric8 -DartifactId=fabric8-maven-plugin -Ddetail

这是输出:

代码语言:javascript
复制
fabric8:helm
  Description: Generates a Helm chart for the kubernetes resources
  Implementation: io.fabric8.maven.plugin.mojo.build.HelmMojo
  Language: java
  Bound to phase: pre-integration-test

  Available parameters:

    helm
      (no description available)

    kubernetesManifest (Default:
    ${basedir}/target/classes/META-INF/fabric8/kubernetes.yml)
      User property: fabric8.kubernetesManifest
      The generated kubernetes YAML file

    kubernetesTemplate (Default:
    ${basedir}/target/classes/META-INF/fabric8/k8s-template.yml)
      User property: fabric8.kubernetesTemplate
      The generated kubernetes YAML file

    skip (Default: false)
      User property: fabric8.skip
      (no description available)

    ...

在我们的项目中,我们在src/main/fabric8中有工件。此文件夹的内容如下:

代码语言:javascript
复制
tree src/main/fabric8
src/main/fabric8
├── forum-configmap.yaml
├── forum-deployment.yaml
├── forum-route.yaml
└── forum-service.yaml

这些文件只与kubernetes有关。

我在那边找不到任何片段:

  1. 我需要在我的项目中添加什么样的文件?头盔档案?
  2. 这一目标的具体结果是什么?
EN

回答 1

Stack Overflow用户

发布于 2018-08-22 17:37:58

为了玩这个游戏,我抓起了一个带有Web依赖的基本spring引导项目和一个用RestController创建的弹簧初始化fabric8插件文档说首先要运行资源目标,所以我转到项目的基本目录并运行mvn -B io.fabric8:fabric8-maven-plugin:3.5.41:resource。这为我在/target/classes/META-INF/fabric8/下的项目生成了kubernetes描述符。

于是我运行了mvn -B io.fabric8:fabric8-maven-plugin:3.5.41:resource io.fabric8:fabric8-maven-plugin:3.5.41:helm。一开始我发现一个错误:

target/classes/META-INF/fabric8/k8s-template does not exist so cannot make chart <project_name>. Probably you need run 'mvn fabric8:resource' before.

但是描述符确实存在于/target/classes/META-INF/fabric8/kubernetes/下,所以我将该目录重命名为k8s-template并再次运行。然后,它在/target/fabric8/helm/kubernetes/目录中为我创建了一个舵图。

所以我跟踪了医生们,然后运行helm install target/fabric8/helm/kubernetes/。他们抱怨说没有Chart.yaml。那时,我意识到,我对文档的跟踪太严格了,需要运行helm install target/fabric8/helm/kubernetes/<project_name>。这确实创建了一个头盔发行版,并将我的项目安装到kubernetes。它没有开始,因为我没有创造任何码头形象。它似乎默认为<groupId>/<artifactId>:<version/snapshot-number>的图像名称。如果我还运行了“建设”目标目标,并且我的kubernetes可以访问一个码头注册中心,那么大概就会出现这种情况。

因此,简而言之,舵机目标产生了一个基本的舵图。我相信,如果您的应用程序需要使用注入urls或凭据(例如用于数据库或消息代理或身份验证系统)访问共享资源,或者如果应用程序公开多个端口,或者需要initContainers或自定义启动参数,则需要手动自定义此图表。您可能正在尝试自定义这些生成的资源,并通过将文件放入/src/ doing 8/来进行定制。如果您要输入的是k8s文件,那么我猜它们必须在/src/fabric8/kubernetes/中才能输入到预期的/target/目录中,并命名为<project-name>-deployment.yml<project-name>-svc.yml

我想所生成的图表至少是一个起点,如果您将所有插件添加到pom中,并且完成所有的设置,而不是运行单个目标,那么这种体验可能会比我的实验要顺利一些。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51786357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档