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清理?的主要内容,如果未能解决你的问题,请参考以下文章