lkad opened a new issue, #2341:
URL: https://github.com/apache/apisix-ingress-controller/issues/2341

   ### Current Behavior
   
   like #2167 ,i install apsix ingress-controller use etcdserver=true,but 
somtime ingress-controller can restart ,then i add route or change rout in 
apisixroute ,it not effect .
   install apisix :
   ADMIN_API_VERSION=v3
   helm install apisix . \
     --set service.type=NodePort \
     --set ingress-controller.enabled=true \
     --create-namespace \
     --namespace ingress-apisix \
     --set ingress-controller.config.apisix.serviceNamespace=ingress-apisix \
     --set ingress-controller.config.apisix.adminAPIVersion=$ADMIN_API_VERSION \
     --set ingress-controller.config.kubernetes.enableGatewayAPI=true \
     --set dashboard.enabled=true \
     --set ingress-controller.config.etcdserver.enabled=true
   then add apisixroute 
   ```
   apiVersion: apisix.apache.org/v2
   kind: ApisixRoute
   metadata:
     name: test-route
     namespace: testroute2
   spec:
     http:
       - name: route-1
         match:
           hosts:
             - routetest2cccc.ccc.ccc
           paths:
             - /*
         backends:
           - serviceName: httpbin
             servicePort: 80
   ```
   ```
   kind: Deployment
   apiVersion: apps/v1
   metadata:
     name: httpbin
     namespace: testroute2
     labels:
       app: httpbin
     annotations:
       deployment.kubernetes.io/revision: '1'
       kubesphere.io/creator: admin
   spec:
     replicas: 1
     selector:
       matchLabels:
         app: httpbin
     template:
       metadata:
         creationTimestamp: null
         labels:
           app: httpbin
         annotations:
           kubesphere.io/creator: admin
           kubesphere.io/imagepullsecrets: '{}'
           kubesphere.io/restartedAt: '2024-11-28T00:57:38.581Z'
       spec:
         containers:
           - name: container-cjo9a0
             image: mccutchen/go-httpbin
             ports:
               - name: http-0
                 containerPort: 80
                 protocol: TCP
             env:
               - name: PORT
                 value: '80'
             resources:
               limits:
                 cpu: '2'
                 memory: 1000Mi
               requests:
                 cpu: 200m
                 memory: 200Mi
             readinessProbe:
               httpGet:
                 path: /
                 port: 80
                 scheme: HTTP
               timeoutSeconds: 1
               periodSeconds: 10
               successThreshold: 1
               failureThreshold: 3
             terminationMessagePath: /dev/termination-log
             terminationMessagePolicy: File
             imagePullPolicy: IfNotPresent
   ```
   
   ```
   kind: Service
   apiVersion: v1
   metadata:
     name: httpbin
     namespace: testroute2
     labels:
       app: httpbin
     annotations:
       kubesphere.io/creator: admin
   spec:
     ports:
       - name: http-1
         protocol: TCP
         port: 80
         targetPort: 80
     selector:
       app: httpbin
     type: ClusterIP
     sessionAffinity: None
     ipFamilies:
       - IPv4
     ipFamilyPolicy: SingleStack
     internalTrafficPolicy: Cluster
   ```
   please add more other apisixroute 
   then curl ip/get -H "host: routetest2cccc.ccc.ccc" .return 200.
   then find the ingress on which node ,one the node exec shell kill the 
ingress-controller 
   " ps -elf | grep ingress-controller  | awk '{print $4}' | xargs kill "
   then change the apisixroute 
   ```
   apiVersion: apisix.apache.org/v2
   kind: ApisixRoute
   metadata:
     name: test-route
     namespace: testroute2
   spec:
     http:
       - name: route-1
         match:
           hosts:
             - routenew.ccc.ccc
           paths:
             - /*
         backends:
           - serviceName: httpbin
             servicePort: 80
   ```
   curl ip/get -H "host: routenew.ccc.ccc" .return 404.
   
   ### Expected Behavior
   
   curl ip/get -H "host: routenew.ccc.ccc" .return 200.
   
   ### Error Logs
   
   apisix contoianer log 
    2024/12/26 06:07:13 [error] 59#59: *3033128 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:13 [error] 51#51: *3033129 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:13 [error] 56#56: *3033130 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:13 [error] 54#54: *3033131 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:16 [error] 49#49: *3033267 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:16 [error] 52#52: *3033268 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:16 [error] 55#55: *3033269 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:16 [error] 53#53: *3033270 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:16 [error] 59#59: *3033271 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:16 [error] 50#50: *3033272 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:16 [error] 56#56: *3033273 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:16 [error] 51#51: *3033274 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:16 [error] 54#54: *3033275 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:19 [error] 49#49: *3033413 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:19 [error] 52#52: *3033414 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:19 [error] 53#53: *3033415 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:19 [error] 55#55: *3033416 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:19 [error] 59#59: *3033417 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:19 [error] 50#50: *3033418 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:19 [error] 56#56: *3033419 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:19 [error] 51#51: *3033420 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
    2024/12/26 06:07:19 [error] 54#54: *3033421 [lua] config_etcd.lua:193: 
watchdir err: has no healthy etcd endpoint available, context: ngx.timer
   
   ### Steps to Reproduce
   
   like #2167 ,i install apsix ingress-controller use etcdserver=true,but 
somtime ingress-controller can restart ,then i add route or change rout in 
apisixroute ,it not effect .
   install apisix :
   ADMIN_API_VERSION=v3
   helm install apisix . \
     --set service.type=NodePort \
     --set ingress-controller.enabled=true \
     --create-namespace \
     --namespace ingress-apisix \
     --set ingress-controller.config.apisix.serviceNamespace=ingress-apisix \
     --set ingress-controller.config.apisix.adminAPIVersion=$ADMIN_API_VERSION \
     --set ingress-controller.config.kubernetes.enableGatewayAPI=true \
     --set dashboard.enabled=true \
     --set ingress-controller.config.etcdserver.enabled=true
   then add apisixroute 
   ```
   apiVersion: apisix.apache.org/v2
   kind: ApisixRoute
   metadata:
     name: test-route
     namespace: testroute2
   spec:
     http:
       - name: route-1
         match:
           hosts:
             - routetest2cccc.ccc.ccc
           paths:
             - /*
         backends:
           - serviceName: httpbin
             servicePort: 80
   ```
   ```
   kind: Deployment
   apiVersion: apps/v1
   metadata:
     name: httpbin
     namespace: testroute2
     labels:
       app: httpbin
     annotations:
       deployment.kubernetes.io/revision: '1'
       kubesphere.io/creator: admin
   spec:
     replicas: 1
     selector:
       matchLabels:
         app: httpbin
     template:
       metadata:
         creationTimestamp: null
         labels:
           app: httpbin
         annotations:
           kubesphere.io/creator: admin
           kubesphere.io/imagepullsecrets: '{}'
           kubesphere.io/restartedAt: '2024-11-28T00:57:38.581Z'
       spec:
         containers:
           - name: container-cjo9a0
             image: mccutchen/go-httpbin
             ports:
               - name: http-0
                 containerPort: 80
                 protocol: TCP
             env:
               - name: PORT
                 value: '80'
             resources:
               limits:
                 cpu: '2'
                 memory: 1000Mi
               requests:
                 cpu: 200m
                 memory: 200Mi
             readinessProbe:
               httpGet:
                 path: /
                 port: 80
                 scheme: HTTP
               timeoutSeconds: 1
               periodSeconds: 10
               successThreshold: 1
               failureThreshold: 3
             terminationMessagePath: /dev/termination-log
             terminationMessagePolicy: File
             imagePullPolicy: IfNotPresent
   ```
   
   ```
   kind: Service
   apiVersion: v1
   metadata:
     name: httpbin
     namespace: testroute2
     labels:
       app: httpbin
     annotations:
       kubesphere.io/creator: admin
   spec:
     ports:
       - name: http-1
         protocol: TCP
         port: 80
         targetPort: 80
     selector:
       app: httpbin
     type: ClusterIP
     sessionAffinity: None
     ipFamilies:
       - IPv4
     ipFamilyPolicy: SingleStack
     internalTrafficPolicy: Cluster
   ```
   please add more other apisixroute 
   then curl ip/get -H "host: routetest2cccc.ccc.ccc" .return 200.
   then find the ingress on which node ,one the node exec shell kill the 
ingress-controller 
   " ps -elf | grep ingress-controller  | awk '{print $4}' | xargs kill "
   then change the apisixroute 
   ```
   apiVersion: apisix.apache.org/v2
   kind: ApisixRoute
   metadata:
     name: test-route
     namespace: testroute2
   spec:
     http:
       - name: route-1
         match:
           hosts:
             - routenew.ccc.ccc
           paths:
             - /*
         backends:
           - serviceName: httpbin
             servicePort: 80
   ```
   curl ip/get -H "host: routenew.ccc.ccc" .return 404.
   
   ### Environment
   
   - APISIX Ingress controller version (run `apisix-ingress-controller version 
--long`) 
   apache/apisix-ingress-controller:1.8.0 
   - Kubernetes cluster version (run `kubectl version`)
   Client Version: v1.29.2
   Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
   Server Version: v1.28.8
   - OS version if running APISIX Ingress controller in a bare-metal 
environment (run `uname -a`)
    apache/apisix:3.8.1-debian
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to