首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法通过HELM重新部署kubernetes解决方案

无法通过HELM重新部署kubernetes解决方案
EN

Stack Overflow用户
提问于 2019-06-04 02:23:52
回答 2查看 3.1K关注 0票数 1

我有一个工作的Azure DevOps管道,它使用HELM将我的镜像部署到Kubernetes集群。当集群中没有资源时(第一次部署时),此管道将成功执行。在资源已经存在的后续部署中,HELM INSTALL命令会导致以下异常。

服务"myservice-lb“已存在

现在我知道这是由于资源已经存在,但我的问题涉及如何配置图表,以便可以将更改部署到集群。

以前,我只会运行KUBECTL APPLY,它足够智能,可以在发生变化时更新pod和服务,如果没有变化则忽略。我认为HELM应该具有相同类型的功能,但我不知道如何实现这一点。

目前,我正在使用HELM INSTALL pipeline任务,它指向我的解决方案中的图表。我很高兴发布生成的YAML,但我觉得这可能是一个需要在我的DevOps管道中运行的命令。

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-04 16:28:16

不确定是否是这种情况,但这可能会有所帮助:

1-如果您的集群中安装了多个tiller (helm服务器),则必须使用与第一次安装相同的服务器进行升级。如果舵机的缓存被销毁/擦除,也会发生这种情况

2-这是helm的一个已知错误,如果第一次部署失败,它将无法在下一次尝试中正确部署它

您可以使用以下命令检查是否有以前的版本:

代码语言:javascript
复制
helm list

您可以选择要使用的分耕器:

代码语言:javascript
复制
helm list --tiller-namespace=<namespace>

如果你发现一个失败的版本,你需要手动删除helm的版本:

代码语言:javascript
复制
helm delete --purge <release-name>
票数 1
EN

Stack Overflow用户

发布于 2019-06-04 02:31:41

可以肯定的是,你需要使用helm upgrade来更新它。如果它不存在,要使其工作,您可以添加--install开关

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56432657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档