如果我正确理解这里的文件..。
如果我尝试使用'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
它完全缺失了,我在部署中看到的只有以下几点-
ide: idea
ideVersion: 2021.1.1.0.0
ijPluginVersion: unknown
skaffold.dev/run-id: d2420cca-f212-4349-b078-41f36ed51bd5知道这里出了什么问题吗?
实际上,部署工作正常,我的Pod报告就绪性检查,但没有从skaffold/intellij开始调试。
发布于 2021-06-15 14:36:22
@posthumecaver的Helm图表与skaffold.yaml之间存在一些不匹配,这使得Skaffold无法配置映像。我将在这里总结这些发现,以帮助那些偶然发现这篇文章的人。
@posthumecaver正在使用Skaffold的Helm支持。这要求skaffold.yaml和Helm图表使用公共键来引用图像。Helm中有三种用于引用图像的方法:
完全限定名称(默认)
Skaffold将配置Helm设置全标记图像引用的键。
skaffold.yaml设置:
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图表模板:
image: "{{.Values.img}}"values.yaml (注意,Skaffold重写了这个值):
img: gcr.io/other-project/other-image:latest斯卡福
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设置:
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: {}图表模板:
image: "{{.Values.img.repository}}:{{.Values.img.tag}}"values.yaml (注意,Skaffold重写了这些值):
img:
repository: gcr.io/other-project/other-image
tag: latest斯卡福
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设置:
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图表模板:
image: "{{.Values.img.registry}}/{{.Values.img.repository}}:{{.Values.img.tag}}"values.yaml (注意,Skaffold重写了这些值):
img:
registry: gcr.io
repository: other-project/other-image
tag: latest斯卡福
helm install <chart> <chart-path> --set-string img.registry=gcr.io,img.repository=my-project/my-image,img.tag=generatedTag@sha256:digesthttps://stackoverflow.com/questions/67687071
复制相似问题