如何解决有没有一种方法可以使用skaffold配置加载私有图像而不构建它?
我创建了一个只包含一行的模拟文件。
FROM eu.gcr.io/some-org/mock-service:0.2.0
使用该配置及其对构建部分的引用,skaffold使用私有GCR注册表构建该dockerfile。但是,如果我删除了该Dockerfile,则skaffold不会构建该文件,而在启动skaffold时,它只会加载该build
部分中引用的映像(公共映像,例如postgres也可以工作)。因此,在该本地kubernetes配置(如minikube)中,会导致
ImagePullBackOff
Failed to pull image "eu.gcr.io/some-org/mock-service:0.2.0": rpc error: code = Unknown desc = Error response from daemon: unauthorized: You don't have the needed permissions to perform this operation,and you may have invalid credentials
因此,基本上,当我创建一个单行Dockerfile并将其包括在内时,skaffold会构建该映像并将其加载到minikube中。现在可以更改minikube的配置,以使对GCR的请求成功,但是目标是开发人员不必更改其minikube的配置...
还有其他方法可以将该映像加载到Minikube中,而无需更改配置并且没有该单行Dockerfile吗?
skaffold.yaml:
apiVersion: skaffold/v2beta8
kind: Config
metadata:
name: some-service
build:
artifacts:
- image: eu.gcr.io/some-org/some-service
docker:
dockerfile: Dockerfile
- image: eu.gcr.io/some-org/mock-service
docker:
dockerfile: mock.Dockerfile
local: { }
profiles:
- name: mock
activation:
- kubeContext: (minikube|kind-.*|k3d-(.*))
deploy:
helm:
releases:
- name: postgres
chartPath: test/postgres
- name: mock-service
chartPath: test/mock-service
- name: skaffold-some-service
chartPath: helm/some-service
artifactOverrides:
image: eu.gcr.io/some-org/some-service
setValues:
serviceAccount.create: true
解决方法
尽管GKE已预先配置为从同一项目中的注册表中提取,但Kubernetes集群通常需要special configuration at the pod level才能从私有注册表中提取。有点涉及。
幸运的是,minikube引入了registry-creds
add-on,它将使用适当的凭据配置minikube实例以提取图像。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。