首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Skaffold调试缺少Helm部署的JAVA_TOOL_OPTIONS。

Skaffold调试缺少Helm部署的JAVA_TOOL_OPTIONS。
EN

Stack Overflow用户
提问于 2021-05-25 11:31:47
回答 1查看 455关注 0票数 0

如果我正确理解这里的文件..。

Skaffold Debug

如果我尝试使用'skaffold‘或使用IntelliJ’在Kubernetes上开发‘和Debug运行IntelliJ项目,skaffold必须在我的K8s部署/服务文件中插入JAVA_TOOL_OPTIONS的jdwp和Environment变量的额外端口。这对我来说是不可能的。

我正在使用Helm图来部署我的k8s工件,并且我看不到这些东西被配置的任何地方(正如这里所提到的,GitHub问题)。

如果手动配置部署\service yamls,为jdwp插入端口5005,为jdwp插入环境变量JAVA_TOOL_OPTIONS,并为jdwp配置端口转发5005,则可以远程附加到进程和调试,但skaffold无法单独管理它(它甚至没有尝试,我在日志中没有看到JAVA_TOOL_OPTIONS )。

可能是,它不明白我正在运行一个JVM项目,或者可能是,当我用我的Helm创建“helm”时,有几个yaml文件(configmap.yaml、deployment.yaml、hpa.yaml、ingress.yaml、service.yaml、serviceaccount.yaml)无法找到要操作的正确文件。

如果我也正确理解,将被调试的部署/pod必须有以下注释:

注解

调试器Cloud.google.com/config

它完全缺失了,我在部署中看到的只有以下几点-

代码语言:javascript
复制
ide: idea
ideVersion: 2021.1.1.0.0
ijPluginVersion: unknown
skaffold.dev/run-id: d2420cca-f212-4349-b078-41f36ed51bd5

知道这里出了什么问题吗?

实际上,部署工作正常,我的Pod报告就绪性检查,但没有从skaffold/intellij开始调试。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-15 14:36:22

@posthumecaver的Helm图表与skaffold.yaml之间存在一些不匹配,这使得Skaffold无法配置映像。我将在这里总结这些发现,以帮助那些偶然发现这篇文章的人。

@posthumecaver正在使用Skaffold的Helm支持。这要求skaffold.yaml和Helm图表使用公共键来引用图像。Helm中有三种用于引用图像的方法:

完全限定名称(默认)

Skaffold将配置Helm设置全标记图像引用的键。

skaffold.yaml设置:

代码语言:javascript
复制
build:
  artifacts:
    - image: gcr.io/my-project/my-image
deploy:
  helm:
    releases:
      - name: my-chart
        chartPath: helm
        artifactOverrides:
          img: gcr.io/my-project/my-image

图表模板:

代码语言:javascript
复制
image: "{{.Values.img}}"

values.yaml (注意,Skaffold重写了这个值):

代码语言:javascript
复制
img: gcr.io/other-project/other-image:latest

斯卡福

代码语言:javascript
复制
helm install <chart> <chart-path> --set-string img=gcr.io/my-project/my-image:generatedTag@sha256:digest

拆分存储库和标记

Skaffold可以配置为向Helm提供一个单独的存储库和标记。artifactOverrides中使用的键作为基部分,产生两个键{key}.repository{key}.tag

skaffold.yaml设置:

代码语言:javascript
复制
build:
  artifacts:
    - image: gcr.io/my-project/my-image
deploy:
  helm:
    releases:
      - name: my-chart
        chartPath: helm
        artifactOverrides:
          img: gcr.io/my-project/my-image
        imageStrategy:
          helm: {}

图表模板:

代码语言:javascript
复制
image: "{{.Values.img.repository}}:{{.Values.img.tag}}"

values.yaml (注意,Skaffold重写了这些值):

代码语言:javascript
复制
img:
  repository: gcr.io/other-project/other-image
  tag: latest

斯卡福

代码语言:javascript
复制
helm install <chart> <chart-path> --set-string img.repository=gcr.io/my-project/my-image,img.tag=generatedTag@sha256:digest

拆分注册表、存储库和标记

Skaffold还可以配置为Helm提供一个单独的存储库和标记。artifactOverrides中使用的键作为基本部分,产生三个键:{key}.registry{key}.repository{key}.tag

skaffold.yaml设置:

代码语言:javascript
复制
build:
  artifacts:
    - image: gcr.io/my-project/my-image
deploy:
  helm:
    releases:
      - name: my-chart
        chartPath: helm
        artifactOverrides:
          img: gcr.io/my-project/my-image
        imageStrategy:
          helm:
            explicitRegistry: true

图表模板:

代码语言:javascript
复制
image: "{{.Values.img.registry}}/{{.Values.img.repository}}:{{.Values.img.tag}}"

values.yaml (注意,Skaffold重写了这些值):

代码语言:javascript
复制
img:
  registry: gcr.io
  repository: other-project/other-image
  tag: latest

斯卡福

代码语言:javascript
复制
helm install <chart> <chart-path> --set-string img.registry=gcr.io,img.repository=my-project/my-image,img.tag=generatedTag@sha256:digest
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67687071

复制
相关文章

相似问题

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