如何解决含糊不清的警告:“部署未使用WARN [0064]映像[gcr.io/wired-benefit-XXXXX/demoapp]” 预期行为实际行为信息重现行为的步骤
预期行为
不应显示已警告。
实际行为
每次我进行更改并触发重新部署时,都会收到类似以下错误:
部署未使用WARN [0064]映像[gcr.io/wired-benefit-XXXXX/demoapp]
但是图像已使用更新后的更改进行了修改,所以我不确定错误指示的是什么
信息
- 脚手架版本:版本... v1.15.0
- 操作系统:... MacOS Catilina 10.15.16
- skaffold.yaml的内容:
apiVersion: skaffold/v2beta8
kind: Config
Metadata:
name: demoapp
build:
artifacts:
- image: gcr.io/wired-benefit-293406/demoapp
deploy:
kubectl:
manifests:
- k8*.yml
K8清单的内容:
apiVersion: apps/v1
kind: Deployment
Metadata:
labels:
app: demoapp
name: demoapp
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: demoapp
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
Metadata:
labels:
app: demoapp
spec:
containers:
- image: gcr.io/wired-benefit-293406/demoapp
imagePullPolicy: IfNotPresent
name: demoapp
restartPolicy: Always
apiVersion: v1
kind: Service
Metadata:
labels:
app: demoapp
name: demoapp-svc
spec:
ports:
- port: 80
protocol: TCP
targetPort: 3000
selector:
app: demoapp
type: LoadBalancer
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
Metadata:
name: demoapp
spec:
maxReplicas: 5
minReplicas: 1
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: demoapp
targetcpuutilizationPercentage: 80
重现行为的步骤
但是,变化没有被反映出来。可能是标签相关的问题。当我手动将映像名称设置为最新以进行部署时,则可以进行应用更改。
解决方法
正如我在评论中所说:
您的
K8S manifests
是单个文件,其中包含Deployment
,Service
和HPA
吗?我完全按照您粘贴的方式运行(遇到相同的警告),并且在资源之间缺少---
。
专门讨论Content of K8s manifests
中包含的内容,该文件在资源之间缺少三个破折号(---)
。
可以通过以下方式修复它:
- 将资源拆分为多个文件(遵循
skaffold.yaml
及其模板k8*.yml
):-
k8s-deployment.yaml
-
k8s-service.yaml
-
k8s-hpa.yaml
-
- 在
---
中的每个资源之间添加Content of K8s manifests
(示例):
DEPLOYMENT
---
SERVICE
---
HPA
通过遵循以下StackOverflow答案,您可以在YAML文件中阅读有关---
的更多信息:
关于复制。我使用了官方的入门指南:
我将Content of K8s manifests
复制到k8s-pod.yaml
并更改了这一行(此文件在资源之间没有---
)
- image: gcr.io/PROJECT-NAME/demoapp
使用以下命令运行以下命令:
-
$ skaffold dev
Listing files to watch...
- gcr.io/PROJECT-NAME/demoapp
Generating tags...
- gcr.io/PROJECT-NAME/demoapp -> gcr.io/PROJECT-NAME/demoapp:<--REDACTED-->
Checking cache...
- gcr.io/PROJECT-NAME/demoapp: Not found. Building
Building [gcr.io/PROJECT-NAME/demoapp]...
Sending build context to Docker daemon 3.072kB
<--REDACTED-->
<--REDACTED-->: Pushed
<--REDACTED-->: Layer already exists
<--REDACTED-->: digest: <--REDACTED--> size: 739
Tags used in deployment:
- gcr.io/PROJECT-NAME/demoapp -> gcr.io/PROJECT-NAME/demoapp:<--REDACTED-->
Starting deploy...
WARN[0023] image [gcr.io/PROJECT-NAME/demoapp] is not used by the deployment
- horizontalpodautoscaler.autoscaling/demoapp created
Waiting for deployments to stabilize...
Deployments stabilized in 198.216977ms
Press Ctrl+C to exit
Watching for changes...
关注于:
WARN[0023] image [gcr.io/PROJECT-NAME/demoapp] is not used by the deployment
- horizontalpodautoscaler.autoscaling/demoapp created
如您所见,仅创建了HPA
对象。 Deployment
和Service
未创建。它也显示与您相同的警告。
运行
$ kubectl apply -f k8s-pod.yaml
将产生相同的结果!
编辑k8s-pod.yaml
文件以包含---
并再次运行$ skaffold dev
会产生类似于以下内容的输出:
Listing files to watch...
- gcr.io/PROJECT-NAME/demoapp
Generating tags...
- gcr.io/PROJECT-NAME/demoapp -> gcr.io/PROJECT-NAME/<--REDACTED-->
Checking cache...
- gcr.io/PROJECT-NAME/demoapp: Not found. Building
<--REDACTED-->
<--REDACTED-->: Pushed
<--REDACTED-->: Layer already exists
<--REDACTED-->: digest: <--REDACTED--> size: 739
Tags used in deployment:
- gcr.io/PROJECT-NAME/demoapp -> gcr.io/PROJECT-NAME/demoapp:<--REDACTED-->
Starting deploy...
- deployment.apps/demoapp created
- service/demoapp-svc created
- horizontalpodautoscaler.autoscaling/demoapp created
Waiting for deployments to stabilize...
- deployment/demoapp is ready.
Deployments stabilized in 5.450197785s
Press Ctrl+C to exit
Watching for changes...
[demoapp] Hello World with ---!
[demoapp] Hello World with ---!
[demoapp] Hello World with ---!
如您所见,所有资源均已创建,没有关于部署不使用映像的警告,并且应用程序也已响应。
其他资源:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。