我声明了一个Kubernetes部署,其中有两个容器。一个是本地构建的,另一个需要从私有注册表中拉取。
const appImage = new docker.Image("ledgerImage", {
imageName: 'us.gcr.io/qwil-build/ledger',
build: "../../",
});
const ledgerDeployment = new k8s.extensions.v1beta1.Deployment("ledger", {
spec: {
template: {
metadata: {
labels: {name: "ledger"},
name: "ledger",
},
spec: {
containers: [
{
name: "api",
image: appImage.imageName,
},
{
name: "ssl-proxy",
image: "us.gcr.io/qwil-build/monolith-ssl-proxy:latest",
}
],
}
}
}
});
当我运行时它卡住了 - 这是因为有一条投诉信息说
You don't have the needed permissions to perform this operation, and you may have invalid credentials
。当我运行kubectl describe <name of pod>
时,我看到了这个投诉。但是,当我运行docker pull us.gcr.io/qwil-build/monolith-ssl-proxy:latest
时,它可以正常执行。我已经重新运行了gcloud auth configure-docker
但没有帮助。我在https://github.com/pulumi/pulumi-cloud/issues/112找到了一些信息,但似乎
docker.Image
需要一个build
参数,这使我认为它适用于本地镜像而不是远程镜像。如何从私有仓库拉取映像?
编辑:
结果我有一个用于构建所需SSL代理的本地dockerfile。我使用了一个新的
Image
声明。const sslImage = new docker.Image("sslImage", {
imageName: 'us.gcr.io/qwil-build/ledger-ssl-proxy',
build: {
context: "../../",
dockerfile: "../../Dockerfile.proxy"
}
});
我已经正确更新了Deployment
中的图片引用。但是,我仍然遇到了身份验证问题。