簡體   English   中英

使用 Pulumi 將 helloworld docker 圖像部署到 GKE

[英]Deploying helloworld docker images to GKE with Pulumi

我正在嘗試使用 Pulumi 和 GCP 在 kube.netes 中部署一個 hello world 容器

基本上,我只想將這個本地 helloworld 容器部署在 GCP 上按照本教程制作的現有 k8s 集群中。

部署本地圖像是在 另一個示例中完成的,但是我需要添加導致錯誤的注冊表信息: Property 'repositoryUrl' does not exist on type 'Promise<GetRegistryRepositoryResult>'.

const registry = gcp.container.getRegistryRepository();
// Build a Docker image from a local Dockerfile context in the
// './mydockerimg' directory, and push it to the registry.
//const registry = gcp.container.getRegistryRepository();
const customImage = "mydockerimg";
const appImage = new docker.Image(customImage, {
//    imageName: pulumi.interpolate`${registry.repositoryUrl}/${customImage}:v1.0.0`,
    imageName: "mydockerimg",
    build: {
        context: `./${customImage}`,
    },
});
// Create a k8s provider.
// NOT NEEDED
// Create a Deployment of the built container.
const appLabels_helloworld = { app: customImage };
const appDeployment = new k8s.apps.v1.Deployment("app", {
    spec: {
        selector: { matchLabels: appLabels_helloworld },
        replicas: 1,
        template: {
            metadata: { labels: appLabels_helloworld },
            spec: {
                containers: [{
                    name: customImage,
                    image: appImage.imageName,
                    ports: [{name: "http", containerPort: 80}],
                }],
            }
        },
    }
}, { provider: clusterProvider });

當我只使用imageName: "mydockerimg",而不是注冊表時,pulumi 接受升級,但隨后出現 docker 推送錯誤:

error: Error: ' docker push mydockerimg:4aff09801cccc271a8182a3eb3bc46a25764fdbb5332230c6aa707e3b90c4d4e' failed with exit code 1
    The push refers to repository [docker.io/library/mydockerimg]

有什么幫助嗎?


編輯:在應用下面 Yaron Idan 的建議后, pulumi up正在運行,但仍未導出應用程序,無法推送。

const gcrLocation = registry.then(registry => registry.repositoryUrl);
...
imageName: pulumi.interpolate`${gcrLocation}/${customImage}:v1.0.0`,
...
export const appDeploymentName = appDeployment.metadata.apply(m => m.name);

錯誤:

 Error: ' docker push gcr.io/XXX' failed with exit code 1

經過更多調查后,我有錯誤:名稱未知:Buckets(projectID,artifacts.napoleongamesassignment.appspot.com)

在嘗試docker push gcr.io/myprojectID/myrstudio:latest

創建了另一個問題

看起來您正在嘗試從 promise 而不是它的分辨率中提取存儲庫 URL。
以 Pulumi 文檔中的這個例子為例,它看起來像是將你的代碼從

imageName: pulumi.interpolate`${registry.repositoryUrl}/${customImage}:v1.0.0`,

imageName: pulumi.interpolate`${registry.then(foo => foo.repositoryUrl)}/${customImage}:v1.0.0`,

可能會給你想要的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM