我有一个工作的Azure DevOps管道,它使用HELM将我的镜像部署到Kubernetes集群。当集群中没有资源时(第一次部署时),此管道将成功执行。在资源已经存在的后续部署中,HELM INSTALL命令会导致以下异常。
服务"myservice-lb“已存在
现在我知道这是由于资源已经存在,但我的问题涉及如何配置图表,以便可以将更改部署到集群。
以前,我只会运行KUBECTL APPLY,它足够智能,可以在发生变化时更新pod和服务,如果没有变化则忽略。我认为HELM应该具有相同类型的功能,但我不知道如何实现这一点。
目前,我正在使用HELM INSTALL pipeline任务,它指向我的解决方案中的图表。我很高兴发布生成的YAML,但我觉得这可能是一个需要在我的DevOps管道中运行的命令。
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
https://stackoverflow.com/questions/56432657
复制相似问题