我正在尝试使用kubectl run命令从私有注册表中提取图像并从中运行命令。但是我看不到指定图像拉密的选项。似乎无法将图像秘密作为运行命令的一部分传递。
是否有其他替代方法可拉取容器并使用kubectl运行命令?命令输出应该在控制台上看到。同样,一旦命令完成,吊舱也应死亡。
如果正确指定,则可以使用覆盖,它是最后一个数组,这让我有点费解,以下内容适用于至少1.6的Kubernetes:
--overrides='{ "apiVersion": "v1", "spec": { "imagePullSecrets": [{"name": "your-secret"}] } }'
例如
kubectl run -i -t hello-world --restart=Never --rm=true \
--image=eu.gcr.io/your-registry/hello-world \
--overrides='{ "apiVersion": "v1", "spec": { "imagePullSecrets": [{"name": "your-registry-secret"}] } }'
对于Windows,您需要转义双引号(并删除两个单引号)。你会有类似的东西
--overrides="{ \"apiVersion\": \"v1\", ...}] } }"
从概念上讲,此响应是正确的,但是由于
kubectl run
v1 使用的部署API 已从v1迁移,因此该响应不再起作用。看看下面的@Raman评论,以找到正确的方法。就我而言,它可以使用以下覆盖:
--overrides='{ "apiVersion": "apps/v1", "spec": { "template": { "spec": { "imagePullSecrets": [{"name": "your-registry-secret"}] } } } }'