问题标签 [skaffold]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kubernetes - Skaffold 1.4.0:“由于同步错误而跳过部署:复制文件:”
使用:
支架 1.4.0
minikube 1.6.2
kubectl:客户端 1.15.5 和服务器 1.17.0
Django 3.0.3
Python 3.8.2
我最近在处理 Django API 时才开始收到此错误。每当我在进行更改后保存时,我都会得到:
不知道是什么改变导致了这种情况。我必须CTRL + C
关闭 Skaffold 并重新启动它以反映更改。
这是我的skaffold.yaml
:
还有api.yaml
:
关于这里可能发生的事情有什么建议吗?
skaffold - Skaffold Kustomize 将外部环境变量传递到 kustomization.yaml
有没有办法可以将外部环境变量从Skaffold
.
假设我在下面有一个自定义文件
我有使用图像名称和标签导出的环境,并希望kustomization.yaml
在执行时传递skaffold deploy
或dev
有没有办法做到这一点,或者是否有任何解决方案或解决方法可以将外部环境变量传递到kustomization.yaml
?
我知道我实际上可以使用kustomize edit set image
但很丑,因为我需要设置旧的图像名称,我尽量避免。我想要一个更简单的解决方案。我找不到任何说kustomize
可以使用系统中的环境变量的地方,例如docker-compose
使用${VAR}
或尝试访问系统环境变量时使用的环境skaffold
变量{{.VAR}}
reactjs - Skaffold 和 create-react-app 停止工作
几个月来一直工作正常,两天前就辞职了。不记得更改.yamls
.
基本上,当我启动时create-react-app
,create-react-app
客户端只是启动、失败并重新启动。
我试过了:
- 在工作时恢复到以前的提交
- 降级/升级
skaffold
- 降级/升级
minikube
- 降级/升级
kubectl
- 测试 Ubuntu 19.10、macOS 10.15.3 和 Windows 10 (WSL2),问题仍然存在
这似乎是一个问题,skaffold
因为create-react-app
以下仍然可以正常工作:
- 和pod 仍然可以正常启动和
api
运行postgres
- 以下工作正常,对我来说,这表明这不是
create-react-app
问题:
- 以下也正常工作,对我来说,这表明这不是
docker
问题:
- 我认为这不是 Kubernetes 问题。我推送到我的暂存分支,触发暂存 CI/CD 管道,通过构建和部署,它在我的暂存 URL 上正常运行。
这就是我的配置:
-v DEBUG
日志:
我在这里有一个测试仓库,如果您愿意,可以尝试:
https://github.com/eox-dev/skaffold-cra-error
希望这是我忽略的事情,但就像我说过的那样,我已经将应用程序恢复到我知道它正在工作并且问题仍然存在的时候。
编辑 4/1v1.6.0-docs
当我在发行说明
中读到这个时,我充满希望:
注意:此版本附带一个新的配置版本
v2beta1
。要升级您的skaffold.yaml
,请使用skaffold fix
. 如果您选择不升级,skaffold
将尽可能自动升级。
但是,仍然有同样的问题。
kubernetes - 具有非阻塞程序的 Skaffold
假设我想部署一个不包含连续运行/阻塞程序的 skaffold 吊舱。例如,以入门示例并更改main.go
为:
如果我skaffold dev
使用上面修改过的示例运行并且只是等待而不对代码进行任何更改,则 pod 将不断重新启动,循环通过 statuses Completed
-> CrashLoopBackOff
-> Completed
,每次重新启动都会再次运行 pod 中的程序。如何让 pod 运行程序一次,而仅在更改代码时重新运行/重新启动 pod?
这是 skaffold v1.6.0-docs, ubuntu 18, microk8s 1.16/stable, 有 set skaffold config set default-repo localhost:32000
.
php - skaffold 为某些文件重建图像,而不为其他文件重建图像
我试图理解为什么有时我.php
在我的项目中更新 a 它每次都会完全重建图像,而其他时候它似乎没有做任何事情。实际上关于后者,它说Syncing 1 files for ...
,但我的任何更改都没有反映出来。
这是我的项目结构:
./admin/conf/app.conf
当我对or进行更改时./admin/src/index.php
,我只得到Syncing 1 files for...
,但没有任何更改反映在应用程序中。我必须CTRL+C
杀死 Skaffold 并重新启动它......只是CTRL+S
在一个.yaml
或lib.php
触发重建。
当我对 进行更改时./admin/src/lib/lib.php
,它会从头开始重建整个图像。
这是我的配置:
我想我试图理解一些事情:
- 为什么在一种情况下会触发完整的重建?
- 为什么文件被“同步”,但在我触发重建之前更改不会反映?
- 如何在不触发完全重建的情况下让我的更改反映在应用程序中?
谢谢!
kubernetes - 用于本地开发的带有 skaffold 的 GCP 证书
使用 skaffold 进行本地开发时,将 GCP 凭证获取到 k8s pod 的标准方法是什么?
当我以前使用 docker compose 和 aws 时,很容易将 ~/.aws 文件夹卷挂载到容器中,并且一切正常。skaffold 和 gcp 是否有等效的解决方案?
docker - Go dockerized build,缓存依赖拉取层
我在skaffold
开发一些 kubernetes 服务方面玩得很开心,但是我周期中最长的步骤之一是拉取容器的所有依赖项。
有没有人对我如何最好地缓存一个层中的所有依赖项有建议?在 docker 容器中构建 go 二进制文件是否有最佳实践?我应该有一个层来做一个go get
吗?(我也是一个新手构建 go 二进制文件,还不知道所有的花里胡哨。)
kubernetes - skaffold/kaniko:从另一个命名空间访问服务
我已将注册表服务部署到命名空间中registry
:
这是我的skaffold.yaml
:
一切正常,直到 kaniko 试图将图像推送到上面的注册表:
获取“ http://registry-docker-registry.registry.svc.cluster.local:5000/v2/ ”:拨打tcp:在127.0.0.53:53上查找registry-docker-registry.registry.svc.cluster.local:没有这样的主机
关于如何访问部署在同一个 kubernetes 中的这个注册表的任何想法?
我试图从另一个 pod 访问注册表:
如您所见,它能够访问注册表。
docker - Docker 桌面中的默认 Docker 注册表
我正在通过 jib 和 skaffold 构建 docker 图像。当我service-1
在 skaffold build.artifacts.image 中提供图像密钥时,会创建一个图像(名为“service-1:SHA256”的图像),我可以通过docker image ls
. 然后在 skaffold deploy 中,我提供 kubectl 命令,它可以很好地拾取创建的图像。在我的 deployment.yaml 清单文件中,我只指定了 spec.template.spec.containers.image : service-1
上述方法工作正常,但我想做 helm。我已经创建了舵图。但是 helm 无法从我的本地 docker daemon repo 中获取任何图像。如果我指定 image:service-1:SHA256 在我看到时存在docker image ls
,我会得到 ErrImagePull。
为什么 helm 无法从我的本地 docker 注册表中选择图像。我也无法 docker pull service-1:sha256。
正在使用的默认 docker 注册表是什么,带有 kubectl 的 skaffold 如何能够正确拉取映像,而 helm 和 docker 则不能。
我也尝试了 skaffold+helm,但遇到了同样的问题。
在 pod describe 期间获取以下内容
当我尝试做 docker pull 时:
skaffold - 带有 kaniko 的 skaffold:注册表地址未解析
我已将注册表服务部署到命名空间中registry
:
服务:
这是我的skaffold.yaml
:
一切正常,直到 kaniko 试图将图像推送到上面的注册表:
Get "http://registry-docker-registry.registry.svc.cluster.local:5000/v2/": dial tcp: lookup registry-docker-registry.registry.svc.cluster.local on 127.0.0.53:53: no such host
Skaffold 命令是:
这是日志:
在 kaniko Pod 运行的同时,我已经能够执行一些操作:
所以它似乎能够连接到它,但在日志中说它无法连接到它。
关于如何访问部署在同一个 kubernetes 中的这个注册表的任何想法?
我试图从另一个 pod 访问注册表:
如您所见,它能够访问注册表。
我还查看了容器/etc/resolv.conf
:
我还检查了容器运行期间的连接:
如您所见,该容器似乎能够与egistry-docker-registry.registry.svc.cluster.local:5000
. 但是,当它尝试将其推送到注册表时,会出现错误日志...
这真的很奇怪。