作者:天云2_776 | 来源:互联网 | 2023-09-10 15:20
我有一个工作的Azure DevOps管道,它使用HELM将我的图像部署到Kubernetes集群。当群集中没有资源(第一次部署时)时,此管道会成功执行。在资源已存在的后续部署中,HELM INSTALL命令会导致以下异常。
服务“myservice-lb”已经存在
现在我知道这是由于资源已经存在,但我的问题涉及如何配置图表以便可以将更改部署到集群。
以前我只运行KUBECTL APPLY,它足够智能,如果有变化则更新pod和服务,如果没有什么不同则忽略。我假设HELM具有相同类型的功能,但我没有看到如何实现。
目前我正在使用HELM INSTALL管道任务,该任务指向我的解决方案中的图表。我很高兴发布生成的YAML,但我觉得这可能是一个需要在我的DevOps管道中运行的命令。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
labels:
name: myapp
spec:
replicas: 1
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
terminationGracePeriodSeconds: 30
containers:
- name: myapp
image: mycontainers.azurecr.io/myapp:latest
imagePullPolicy: "Always"
args: ["-w", "-e"]
ports:
- containerPort: 5000
resources:
limits:
cpu: 500m
requests:
cpu: 250m
imagePullSecrets:
- name: acr-auth
---
apiVersion: v1
kind: Service
metadata:
name: myservice-lb
spec:
type: LoadBalancer
ports:
- protocol: TCP
port: 80
targetPort: 5000
selector:
app: myapp |
相当肯定你需要用
来更新它。要使它工作,如果它不存在,您可以添加
switch