错误:无法在 kubectl 设置映像中找到容器

Sid*_*ry 8 docker google-cloud-platform kubernetes kubectl

我正在尝试将更新推送到我的 docker 映像的代码库。我在 GCP 上的 kubernetes 上有 docker 镜像,我按照文档here中提到的方式进行操作。我什至将带有 :v2 标签的映像推送到容器注册表,并且该映像也在控制台中可见。但是现在当我尝试运行时:

kubectl set image deployment/clustername myImageName=gcr.io/${PROJECT_ID}/myImageName:v2
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误:

error: unable to find container myImageName
Run Code Online (Sandbox Code Playgroud)

我知道图像在那里,因为我用

docker build -t gcr.io/${PROJECT_ID}/myImageName:v2 .
Run Code Online (Sandbox Code Playgroud)

我还解决了以下问题:Error from server (NotFound): deployments.extensions 此时此刻我被卡住了。任何人都可以对此有所了解吗?

Ala*_*aye 7

该错误消息指定您的部署没有名为 的容器myImageName

的语法kubectl set image是:

kubectl set image deployment-name container-name=image-name
Run Code Online (Sandbox Code Playgroud)

container-name必须是您在部署中指定的容器的名称spec.template.spec.containers.name


svp*_*vps 5

检查“myImageName”容器名称与 Pod 描述中的匹配。

尝试命令:kubectl describe pods

在 pod 描述中,检查“容器”部分下的以下内容: 在下面的示例中,“avroconsumerclient”是容器的名称。

Containers:
  avroconsumerclient:
    Container ID:   docker://ab5890be34dfk5678dfdf5670ac19583d8859427695a258d4fdfd
    Image:          ************/democlient:v2
    Image ID:       docker-pullable://********/democlient@sha256:71e97df533915d62c433c2c04168bb7b1dd545c7ef423169a1452ac5abd4302e
    Port:           <none>
    Host Port:      <none>
    State:          Running
Run Code Online (Sandbox Code Playgroud)