HelmChart的k3s清理?

Posted

技术标签:

【中文标题】HelmChart的k3s清理?【英文标题】:k3s cleanup of HelmChart? 【发布时间】:2019-11-15 00:38:05 【问题描述】:

我已按照this blog 帖子中的说明在几个树莓派 4 上设置了一个 k3s 集群:

我现在正试图将 traefik 作为前端弄脏,但我认为它被部署为“HelmChart”的方式存在问题。

来自k3s docs

也可以部署 Helm 图表。 k3s 支持一个 CRD 用于安装图表的控制器。 YAML 文件规范可以看起来 如下(示例取自 /var/lib/rancher/k3s/server/manifests/traefik.yaml):

所以我一直在使用 --no-deploy traefik 选项启动我的 k3s,以手动添加它的设置。所以我因此手动应用这样的 yaml:

apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
  name: traefik
  namespace: kube-system
spec:
  chart: https://%KUBERNETES_API%/static/charts/traefik-1.64.0.tgz
  set:
    rbac.enabled: "true"
    ssl.enabled: "true"
    kubernetes.ingressEndpoint.useDefaultPublishedService: "true"
    dashboard:
      enabled: true
      domain: "traefik.k3s1.local"

但是,当我尝试迭代设置以使其按我想要的方式工作时,我无法将其拆除。如果我在这个 yaml 上尝试kubectl delete -f,它只会无限期地挂起。而且我似乎也找不到手动删除所有资源的干净方法。

我现在一直在求助于一遍又一遍地重新安装整个集群,因为我似乎无法正确清理。

有没有办法在没有helm cli(我什至没有)的情况下删除由这样的图表创建的所有资源?

【问题讨论】:

【参考方案1】:

你确定kubectl delete -f 挂了?

我遇到了和你一样的问题,看起来kubectl delete -f 挂了,但实际上只是花了很长时间。

据我所知,当您发出 kubectl delete -f 时,kube-system 命名空间中的一个名为 helm-delete-* 的 pod 应该启动并尝试删除通过 helm 部署的资源。您可以通过运行kubectl -n kube-system get pods 获取该容器的全名,找到带有kube-delete-<name of yaml>-<id> 的容器。然后使用 pod 名称查看使用 kubectl -n kube-system logs kube-delete-<name of yaml>-<id> 的日志。

我所做的一个例子是:

kubectl delete -f jenkins.yaml # seems to hang
kubectl -n kube-system get pods # look at pods in kube-system namespace
kubectl -n kube-system logs helm-delete-jenkins-wkjct # look at the delete logs

【讨论】:

【参考方案2】:

我在这里看到两个选项:

    使用 --now 标志以最小的延迟删除您的 yaml 文件。

    使用--grace-period=0 --force 标志强制删除资源。

还有其他选项,但您需要 Helm CLI。

如果有帮助,请告诉我。

【讨论】:

以上是关于HelmChart的k3s清理?的主要内容,如果未能解决你的问题,请参考以下文章

如何清理Nginx缓存

推荐一款手机清理工具App悟空清理

浏览器清理缓存怎么清理

Mac清理磁盘空间(二)

怎么清理c盘空间?

Docker镜像服务器磁盘空间清理