简体   繁体   English

部署后如何在 kubernetes 中删除 Traefik 2.0 中间件和 IngressRoute

[英]How to remove Traefik 2.0 Middleware and IngressRoute in kubernetes once deployed

I have the following YAML (test.yaml) file that allows me to create ingress router and middleware for traefik 2我有以下 YAML (test.yaml) 文件,它允许我为 traefik 2 创建入口路由器和中间件

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: test
  namespace: qa
spec:
  entryPoints:
    - web
  routes:
    - match: Host(`my-url.com`) && PathPrefix(`/test`)
      kind: Rule
      services:
        - name: test
          port: 8000
      middlewares:
        - name: testmiddle
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: testmiddle
  namespace: qa
spec:
  stripPrefix:
    prefixes:
      - /test

Following files works.以下文件有效。 However, when I try to remove it using the following command:但是,当我尝试使用以下命令将其删除时:

kubectl delete -f test.yaml

Traefik complains that middleware and ingress router is not preset. Traefik 抱怨没有预设中间件和入口路由器。 Example of error as follows:错误示例如下:

time="2021-07-09T18:15:12Z" level=error msg="middleware \"qa-test@kubernetescrd\" does not exist" routerName=qa-test-29c010046e0ec473d890@kubernetescrd entryPointName=web 
time="2021-07-09T18:15:25Z" level=error msg="middleware \"qa-test@kubernetescrd\" does not exist" entryPointName=web routerName=qa-test-29c010046e0ec473d890@kubernetescrd 
time="2021-07-09T18:15:25Z" level=error msg="middleware \"qa-test@kubernetescrd\" does not exist" entryPointName=web routerName=qa-test-29c010046e0ec473d890@kubernetescrd 
time="2021-07-09T18:31:44Z" level=error msg="middleware \"qa-test@kubernetescrd\" does not exist" entryPointName=web routerName=qa-test-29c010046e0ec473d890@kubernetescrd

Do you know how to remove middleware and ingress routers without error?您知道如何无误地删除中间件和入口路由器吗?

Try editing the IngressRoute to remove Middleware from IngressRoute first and then delete the Middleware and then the IngressRoute.尝试编辑 IngressRoute 以首先从 IngressRoute 中删除中间件,然后删除中间件,然后删除 IngressRoute。

kubectl edit ingressroute test -n qa; 
kubectl delete middleware testmiddle -n qa; 
kubectl delete ingressroute test -n qa

since these are crd's, API-server won't delete them in the right order when deleting from a file and you would see error messages in the logs.由于这些是 crd,API-server 在从文件中删除时不会以正确的顺序删除它们,您会在日志中看到错误消息。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM