Coder Social home page Coder Social logo

Comments (17)

kursk-ye avatar kursk-ye commented on May 28, 2024

As a final addendum, cp01 is one of the control planes in the K8S cluster, and again I accessed it from a machine external to the K8S cluster, and of course I added a route to this machine pointing to the CLUSTER IP 10.99.196.179 of service easegress-public. But the result is no response, hang on!

traceroute command is also not responding (I'm using the TCP protocol and the destination port in order to be caught by the Iptables rule)

root@iot03:~# ip route
default via 172.26.11.1 dev ens34 proto static
10.99.196.179 via 172.26.11.50 dev ens34
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
172.18.0.0/16 dev br-24240aaf3820 proto kernel scope link src 172.18.0.1
172.26.11.0/24 dev ens34 proto kernel scope link src 172.26.11.19
root@iot03:~#
root@iot03:~#
root@iot03:~#
root@iot03:~# traceroute -T -p 30080 10.99.196.179
traceroute to 10.99.196.179 (10.99.196.179), 30 hops max, 60 byte packets
 1  cp01.lan (172.26.11.50)  0.753 ms  0.690 ms  0.670 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *
root@iot03:~# curl http://10.99.196.179:30080 -HHost:www.megaease.com

from easegress.

xxx7xxxx avatar xxx7xxxx commented on May 28, 2024

Can you post the whole logs of the Easegress ingress controller pod, maybe the reason lies in there?

from easegress.

kursk-ye avatar kursk-ye commented on May 28, 2024

ok, logs of Easegress ingress cm pod as follow:

2024-02-04T12:26:36.503Z        ERROR   ingresscontroller/ingresscontroller.go:142      failed to create kubernetes client: error loading config file "apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: .....
    server: https://172.26.11.55:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: LS0tLS1CRU....
    client-key-data: LS0tLS1CRUdJ...
": open apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0tLS1CR.....
    server: https://172.26.11.55:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ...

from easegress.

xxx7xxxx avatar xxx7xxxx commented on May 28, 2024

I know that according to the documentation Kubernetes Ingress Controller these two values are set when easegress is deployed outside of the K8S cluster, but I also tried not setting these two values, but the result is still not accessible, the result is the same!

Please don't set these two fields, and restart the deployment, then post the log. Because you're doing in-cluster way, which needs empty kubeConfig and masterURL.

from easegress.

kursk-ye avatar kursk-ye commented on May 28, 2024

ok, I left the kubeConfig and masterURL values unset and restarted the deployment easegress

ConfigMap as follow:

apiVersion: v1
kind: ConfigMap
metadata:
  name: easegress-cm
  namespace: default
data:
  easegress-server.yaml: |
    name: ingress-easegress
    cluster-name: easegress-ingress-controller
    cluster-role: primary
    api-addr: 0.0.0.0:2381
    data-dir: /opt/easegress/data
    log-dir: /opt/easegress/log
    debug: true    #  I set up debug, but there doesn't seem to be any extra logging content
  controller.yaml: |
    kind: IngressController
    name: ingress-controller-example
    kubeConfig:
    masterURL:
    namespaces: ["default"]
    ingressClass: easegress
    httpServer:
      port: 8080
      https: false
      keepAlive: true
      keepAliveTimeout: 60s
      maxConnections: 10240'

Then I tested it from CP01, which is one of the K8S control planes, and it still didn't work!

root@cp01:~# curl http://10.99.196.179:8080/ -HHost:www.megaease.com
root@cp01:~#

I'm also checking the logs in the pod in easegress as follows

root@cp01:~# kcgp
NAME                                READY   STATUS    RESTARTS   AGE     IP               NODE   NOMINATED NODE   READINESS GATES
easegress-555bcf6dc8-9n85l          1/1     Running   0          2m14s   172.16.189.43    wn02   <none>           <none>
hello-deployment-7d8d8556d7-78gl7   2/2     Running   0          2d22h   172.16.189.40    wn02   <none>           <none>
hello-deployment-7d8d8556d7-wg7rz   2/2     Running   0          2d22h   172.16.198.158   wn03   <none>           <none>
net-tool-pod                        1/1     Running   0          14d     172.16.53.213    wn01   <none>           <none>
root@cp01:~#
root@cp01:~# kubectl exec -it easegress-555bcf6dc8-9n85l -- /bin/sh
/opt/easegress #
/opt/easegress # cd log
/opt/easegress/log # ls -l
total 24
-rw-r-----    1 root     root             0 Feb  5 07:08 admin_api.log
-rw-r--r--    1 root     root             0 Feb  5 07:08 etcd_client.log
-rw-r--r--    1 root     root          8764 Feb  5 07:08 etcd_server.log
-rw-r-----    1 root     root             0 Feb  5 07:08 filter_http_access.log
-rw-r-----    1 root     root             0 Feb  5 07:08 filter_http_dump.log
drwx------    4 root     root          4096 Feb  5 07:08 member
-rw-r-----    1 root     root             0 Feb  5 07:08 otel.log
-rw-r-----    1 root     root          7136 Feb  5 07:08 stdout.log
/opt/easegress/log # tail -f filter_http_access.log
[2024-02-05T07:11:44.707Z] [172.16.214.129:39618 172.16.214.129 GET / HTTP/1.1 404] [400µs rx:56B tx:16B] []
[2024-02-05T07:16:14.98Z] [172.16.214.129:42806 172.16.214.129 GET / HTTP/1.1 404] [315µs rx:56B tx:16B] []
[2024-02-05T07:17:07.756Z] [172.16.214.129:41976 172.16.214.129 GET / HTTP/1.1 404] [341µs rx:56B tx:16B] []
[2024-02-05T07:17:44.429Z] [172.16.214.129:31426 172.16.214.129 GET / HTTP/1.1 404] [308µs rx:56B tx:16B] []
[2024-02-05T07:18:54.832Z] [172.16.214.129:54139 172.16.214.129 GET / HTTP/1.1 404] [1.161ms rx:56B tx:16B] []
[2024-02-05T07:31:53.096Z] [172.16.214.129:41748 172.16.214.129 GET / HTTP/1.1 404] [302µs rx:56B tx:16B] []
[2024-02-05T07:31:55.826Z] [172.16.214.129:45322 172.16.214.129 GET / HTTP/1.1 404] [656µs rx:56B tx:16B] []
[2024-02-05T07:31:57.601Z] [172.16.214.129:64148 172.16.214.129 GET / HTTP/1.1 404] [308µs rx:56B tx:16B] []

/opt/easegress/log # tail -f stdout.log
2024-02-05T07:08:25.58Z INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p25> is created!
2024-02-05T07:08:25.58Z INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p50> is created!
2024-02-05T07:08:25.58Z INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p75> is created!
2024-02-05T07:08:25.581Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p95> is created!
2024-02-05T07:08:25.581Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p98> is created!
2024-02-05T07:08:25.581Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p99> is created!
2024-02-05T07:08:25.581Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p999> is created!
2024-02-05T07:08:25.582Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_req_size> is created!
2024-02-05T07:08:25.582Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_resp_size> is created!
2024-02-05T07:08:25.582Z        INFO    trafficcontroller/trafficcontroller.go:283      create traffic gate ingress-controller-example/ingresscontroller/http-server-ingress-controller
2024-02-05T07:11:44.707Z        ERROR   httpserver/mux.go:335   http-server-ingress-controller: status code of result route for [GET /]: 404
2024-02-05T07:16:14.98Z ERROR   httpserver/mux.go:335   http-server-ingress-controller: status code of result route for [GET /]: 404
2024-02-05T07:17:07.756Z        ERROR   httpserver/mux.go:335   http-server-ingress-controller: status code of result route for [GET /]: 404
2024-02-05T07:17:44.429Z        ERROR   httpserver/mux.go:335   http-server-ingress-controller: status code of result route for [GET /]: 404
2024-02-05T07:18:54.832Z        ERROR   httpserver/mux.go:335   http-server-ingress-controller: status code of result route for [GET /]: 404
2024-02-05T07:31:53.096Z        ERROR   httpserver/mux.go:335   http-server-ingress-controller: status code of result route for [GET /]: 404
2024-02-05T07:31:55.826Z        ERROR   httpserver/mux.go:335   http-server-ingress-controller: status code of result route for [GET /]: 404
2024-02-05T07:31:57.601Z        ERROR   httpserver/mux.go:335   http-server-ingress-controller: status code of result route for [GET /]: 404

The path / here should be responsive, not 404, because the services corresponding to the backend are normal.

root@cp01:~# kcgs
NAME               TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                           AGE     SELECTOR
easegress-public   NodePort    10.99.196.179   <none>        8080:30080/TCP                    23h     app=easegress-ingress
hello-service      NodePort    10.108.110.93   <none>        39090:30281/TCP,49191:31381/TCP   2d23h   app=products,department=sales
kubernetes         ClusterIP   10.96.0.1       <none>        443/TCP                           15d     <none>
root@cp01:~#
root@cp01:~# curl http://10.108.110.93:39090/
IP Address: 172.16.198.158
Port 9090
Welcome to Kursk
root@cp01:~# curl http://10.108.110.93:49191/
IP Address: 172.16.198.158
Port 9191
Welcome to Kursk

I kind of wonder if the httpserver configuration in the example is missing path option

httpServer:
      port: 8080
      https: false
      keepAlive: true
      keepAliveTimeout: 60s
      maxConnections: 10240'
      rules:  # Do need to configure this option?
        - host:  # Does host have to be configured as well, then ingress has to be configured as well, wouldn't that be configuring it twice?
             paths:
             - path:
             - pathPrefix

from easegress.

xxx7xxxx avatar xxx7xxxx commented on May 28, 2024
  1. You should post content from stdout.log, which indicate the server and pipeline were created correctly or not.
  2. / could be 404, you should curl with path configured in Ingress.
  3. Use egctl describe httpserver <httpserver-name> to get spec of httpserver of IngressController.

from easegress.

kursk-ye avatar kursk-ye commented on May 28, 2024
  1. path / is configured in ingress and should be fine.
root@cp01:~# kubectl describe ingress ingress-example
Name:             ingress-example
Labels:           <none>
Namespace:        default
Address:
Ingress Class:    easegress
Default backend:  <default>
Rules:
  Host             Path  Backends
  ----             ----  --------
  www.example.com
                   /   hello-service:39090 (172.16.189.40:9090,172.16.198.158:9090)
  *.megaease.com
                   /   hello-service:49191 (172.16.189.40:9191,172.16.198.158:9191)
Annotations:       <none>
Events:            <none>
root@cp01:~#
root@cp01:~#
root@cp01:~# curl http://10.99.196.179:30080/ -HHost:www.megaease.com
curl: (7) Failed to connect to 10.99.196.179 port 30080 after 865 ms: Connection refused
root@cp01:~# curl http://10.99.196.179:8080/ -HHost:www.megaease.com
root@cp01:~#
root@cp01:~#
  1. I redeployed deployment easegress,The complete stdout.log content is as follows, with httpserver related logs
/opt/easegress/log # cat stdout.log
2024-02-06T06:58:07.114Z        INFO    cmd/server.go:61        Easegress release: v2.7.0, repo: https://github.com/megaease/easegress.git, commit: git-25e42408
2024-02-06T06:58:07.115Z        INFO    cluster/config.go:110   etcd config: advertise-client-urls: [{Scheme:http Opaque: User: Host:localhost:2379 Path: RawPath: OmitHost:false ForceQuery:false RawQuery: Fragment: RawFragment:}] advertise-peer-urls: [{Scheme:http Opaque: User: Host:localhost:2380 Path: RawPath: OmitHost:false ForceQuery:false RawQuery: Fragment: RawFragment:}] init-cluster: easegress-7c47dfd8b4-97wlw=http://localhost:2380 cluster-state: new force-new-cluster: false
2024-02-06T06:58:07.86Z INFO    cluster/cluster.go:314  client connect with endpoints: [http://localhost:2380]
2024-02-06T06:58:07.862Z        INFO    cluster/cluster.go:328  client is ready
2024-02-06T06:58:07.873Z        INFO    cluster/cluster.go:620  server is ready
2024-02-06T06:58:07.887Z        INFO    cluster/cluster.go:480  lease is ready (grant new one: 67db8d7d35b0b007)
2024-02-06T06:58:07.887Z        INFO    cluster/cluster.go:208  cluster is ready
2024-02-06T06:58:07.936Z        INFO    supervisor/supervisor.go:140    create TrafficController
2024-02-06T06:58:07.956Z        INFO    supervisor/supervisor.go:140    create RawConfigTrafficController
2024-02-06T06:58:07.97Z INFO    supervisor/supervisor.go:140    create ServiceRegistry
2024-02-06T06:58:07.981Z        INFO    supervisor/supervisor.go:140    create StatusSyncController
2024-02-06T06:58:07.981Z        INFO    statussynccontroller/statussynccontroller.go:172     StatusUpdateMaxBatchSize is 20
2024-02-06T06:58:07.989Z        INFO    cluster/cluster.go:520  session is ready
2024-02-06T06:58:07.989Z        INFO    supervisor/supervisor.go:213    create ingress-controller-example
2024-02-06T06:58:07.99Z INFO    supervisor/supervisor.go:201    update TrafficController
2024-02-06T06:58:07.991Z        INFO    api/api.go:76   register api group admin
2024-02-06T06:58:07.992Z        INFO    supervisor/supervisor.go:201    update RawConfigTrafficController
2024-02-06T06:58:07.993Z        INFO    api/server.go:109       api server running in 0.0.0.0:2381
2024-02-06T06:58:07.994Z        INFO    supervisor/supervisor.go:201    update ServiceRegistry
2024-02-06T06:58:08.002Z        INFO    supervisor/supervisor.go:201    update StatusSyncController
2024-02-06T06:58:08.002Z        INFO    statussynccontroller/statussynccontroller.go:172     StatusUpdateMaxBatchSize is 20
2024-02-06T06:58:08.029Z        INFO    ingresscontroller/ingresscontroller.go:150      successfully connect to kubernetes
2024-02-06T06:58:08.13Z INFO    ingresscontroller/ingresscontroller.go:170      successfully watched ingress related resources
2024-02-06T06:58:08.17Z INFO    trafficcontroller/trafficcontroller.go:273      create namespace ingress-controller-example/ingresscontroller
2024-02-06T06:58:08.171Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_health> is created!
2024-02-06T06:58:08.171Z        INFO    prometheushelper/helper.go:70   [prometheus_helper] Counter <httpserver_total_requests> is created!
2024-02-06T06:58:08.171Z        INFO    prometheushelper/helper.go:70   [prometheus_helper] Counter <httpserver_total_responses> is created!
2024-02-06T06:58:08.172Z        INFO    prometheushelper/helper.go:70   [prometheus_helper] Counter <httpserver_total_error_requests> is created!
2024-02-06T06:58:08.172Z        INFO    prometheushelper/helper.go:123  [prometheus_helper] Histogram <httpserver_requests_duration> already created!
2024-02-06T06:58:08.172Z        INFO    prometheushelper/helper.go:123  [prometheus_helper] Histogram <httpserver_requests_size_bytes> already created!
2024-02-06T06:58:08.172Z        INFO    prometheushelper/helper.go:123  [prometheus_helper] Histogram <httpserver_responses_size_bytes> already created!
2024-02-06T06:58:08.172Z        INFO    prometheushelper/helper.go:148  [prometheus_helper] Summary <httpserver_requests_duration_percentage> already created!
2024-02-06T06:58:08.172Z        INFO    prometheushelper/helper.go:148  [prometheus_helper] Summary <httpserver_requests_size_bytes_percentage> already created!
2024-02-06T06:58:08.173Z        INFO    prometheushelper/helper.go:148  [prometheus_helper] Summary <httpserver_responses_size_bytes_percentage> already created!
2024-02-06T06:58:08.173Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_m1> is created!
2024-02-06T06:58:08.173Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_m5> is created!
2024-02-06T06:58:08.173Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_m15> is created!
2024-02-06T06:58:08.173Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_m1_err> is created!
2024-02-06T06:58:08.173Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_m5_err> is created!
2024-02-06T06:58:08.173Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_m15_err> is created!
2024-02-06T06:58:08.174Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_m1_err_percent> is created!
2024-02-06T06:58:08.174Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_m5_err_percent> is created!
2024-02-06T06:58:08.174Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_m15_err_percent> is created!
2024-02-06T06:58:08.174Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_min> is created!
2024-02-06T06:58:08.174Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_max> is created!
2024-02-06T06:58:08.175Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_mean> is created!
2024-02-06T06:58:08.175Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p25> is created!
2024-02-06T06:58:08.175Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p50> is created!
2024-02-06T06:58:08.175Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p75> is created!
2024-02-06T06:58:08.175Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p95> is created!
2024-02-06T06:58:08.175Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p98> is created!
2024-02-06T06:58:08.176Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p99> is created!
2024-02-06T06:58:08.176Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p999> is created!
2024-02-06T06:58:08.176Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_req_size> is created!
2024-02-06T06:58:08.176Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_resp_size> is created!
2024-02-06T06:58:08.176Z        INFO    trafficcontroller/trafficcontroller.go:283      create traffic gate ingress-controller-example/ingresscontroller/http-server-ingress-controller
/opt/easegress/log # cat stdout.log
2024-02-06T06:58:07.114Z        INFO    cmd/server.go:61        Easegress release: v2.7.0, repo: https://github.com/megaease/easegress.git, commit: git-25e42408
2024-02-06T06:58:07.115Z        INFO    cluster/config.go:110   etcd config: advertise-client-urls: [{Scheme:http Opaque: User: Host:localhost:2379 Path: RawPath: OmitHost:false ForceQuery:false RawQuery: Fragment: RawFragment:}] advertise-peer-urls: [{Scheme:http Opaque: User: Host:localhost:2380 Path: RawPath: OmitHost:false ForceQuery:false RawQuery: Fragment: RawFragment:}] init-cluster: easegress-7c47dfd8b4-97wlw=http://localhost:2380 cluster-state: new force-new-cluster: false
2024-02-06T06:58:07.86Z INFO    cluster/cluster.go:314  client connect with endpoints: [http://localhost:2380]
2024-02-06T06:58:07.862Z        INFO    cluster/cluster.go:328  client is ready
2024-02-06T06:58:07.873Z        INFO    cluster/cluster.go:620  server is ready
2024-02-06T06:58:07.887Z        INFO    cluster/cluster.go:480  lease is ready (grant new one: 67db8d7d35b0b007)
2024-02-06T06:58:07.887Z        INFO    cluster/cluster.go:208  cluster is ready
2024-02-06T06:58:07.936Z        INFO    supervisor/supervisor.go:140    create TrafficController
2024-02-06T06:58:07.956Z        INFO    supervisor/supervisor.go:140    create RawConfigTrafficController
2024-02-06T06:58:07.97Z INFO    supervisor/supervisor.go:140    create ServiceRegistry
2024-02-06T06:58:07.981Z        INFO    supervisor/supervisor.go:140    create StatusSyncController
2024-02-06T06:58:07.981Z        INFO    statussynccontroller/statussynccontroller.go:172     StatusUpdateMaxBatchSize is 20
2024-02-06T06:58:07.989Z        INFO    cluster/cluster.go:520  session is ready
2024-02-06T06:58:07.989Z        INFO    supervisor/supervisor.go:213    create ingress-controller-example
2024-02-06T06:58:07.99Z INFO    supervisor/supervisor.go:201    update TrafficController
2024-02-06T06:58:07.991Z        INFO    api/api.go:76   register api group admin
2024-02-06T06:58:07.992Z        INFO    supervisor/supervisor.go:201    update RawConfigTrafficController
2024-02-06T06:58:07.993Z        INFO    api/server.go:109       api server running in 0.0.0.0:2381
2024-02-06T06:58:07.994Z        INFO    supervisor/supervisor.go:201    update ServiceRegistry
2024-02-06T06:58:08.002Z        INFO    supervisor/supervisor.go:201    update StatusSyncController
2024-02-06T06:58:08.002Z        INFO    statussynccontroller/statussynccontroller.go:172     StatusUpdateMaxBatchSize is 20
2024-02-06T06:58:08.029Z        INFO    ingresscontroller/ingresscontroller.go:150      successfully connect to kubernetes
2024-02-06T06:58:08.13Z INFO    ingresscontroller/ingresscontroller.go:170      successfully watched ingress related resources
2024-02-06T06:58:08.17Z INFO    trafficcontroller/trafficcontroller.go:273      create namespace ingress-controller-example/ingresscontroller
2024-02-06T06:58:08.171Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_health> is created!
2024-02-06T06:58:08.171Z        INFO    prometheushelper/helper.go:70   [prometheus_helper] Counter <httpserver_total_requests> is created!
2024-02-06T06:58:08.171Z        INFO    prometheushelper/helper.go:70   [prometheus_helper] Counter <httpserver_total_responses> is created!
2024-02-06T06:58:08.172Z        INFO    prometheushelper/helper.go:70   [prometheus_helper] Counter <httpserver_total_error_requests> is created!
2024-02-06T06:58:08.172Z        INFO    prometheushelper/helper.go:123  [prometheus_helper] Histogram <httpserver_requests_duration> already created!
2024-02-06T06:58:08.172Z        INFO    prometheushelper/helper.go:123  [prometheus_helper] Histogram <httpserver_requests_size_bytes> already created!
2024-02-06T06:58:08.172Z        INFO    prometheushelper/helper.go:123  [prometheus_helper] Histogram <httpserver_responses_size_bytes> already created!
2024-02-06T06:58:08.172Z        INFO    prometheushelper/helper.go:148  [prometheus_helper] Summary <httpserver_requests_duration_percentage> already created!
2024-02-06T06:58:08.172Z        INFO    prometheushelper/helper.go:148  [prometheus_helper] Summary <httpserver_requests_size_bytes_percentage> already created!
2024-02-06T06:58:08.173Z        INFO    prometheushelper/helper.go:148  [prometheus_helper] Summary <httpserver_responses_size_bytes_percentage> already created!
2024-02-06T06:58:08.173Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_m1> is created!
2024-02-06T06:58:08.173Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_m5> is created!
2024-02-06T06:58:08.173Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_m15> is created!
2024-02-06T06:58:08.173Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_m1_err> is created!
2024-02-06T06:58:08.173Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_m5_err> is created!
2024-02-06T06:58:08.173Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_m15_err> is created!
2024-02-06T06:58:08.174Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_m1_err_percent> is created!
2024-02-06T06:58:08.174Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_m5_err_percent> is created!
2024-02-06T06:58:08.174Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_m15_err_percent> is created!
2024-02-06T06:58:08.174Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_min> is created!
2024-02-06T06:58:08.174Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_max> is created!
2024-02-06T06:58:08.175Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_mean> is created!
2024-02-06T06:58:08.175Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p25> is created!
2024-02-06T06:58:08.175Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p50> is created!
2024-02-06T06:58:08.175Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p75> is created!
2024-02-06T06:58:08.175Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p95> is created!
2024-02-06T06:58:08.175Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p98> is created!
2024-02-06T06:58:08.176Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p99> is created!
2024-02-06T06:58:08.176Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_p999> is created!
2024-02-06T06:58:08.176Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_req_size> is created!
2024-02-06T06:58:08.176Z        INFO    prometheushelper/helper.go:98   [prometheus_helper] Gauge <httpserver_resp_size> is created!
2024-02-06T06:58:08.176Z        INFO    trafficcontroller/trafficcontroller.go:283      create traffic gate ingress-controller-example/ingresscontroller/http-server-ingress-controller
  1. But strangely enough, no httpserver resource was created, Here's what I did to get into the easegress pod
root@cp01:~# kubectl exec -it easegress-7c47dfd8b4-97wlw -- /bin/sh
/opt/easegress/log # egctl get all
NAME                            KIND                            AGE
RawConfigTrafficController      RawConfigTrafficController      unknown
ServiceRegistry                 ServiceRegistry                 unknown
StatusSyncController            StatusSyncController            unknown
TrafficController               TrafficController               unknown
ingress-controller-example      IngressController               unknown

NAME                            ROLE            AGE     STATE   API-ADDR        HEARTBEAT
easegress-7c47dfd8b4-97wlw      primary         6m      Leader  0.0.0.0:2381    4s ago

NAME    ID-FIELD        JSON-SCHEMA     DATA-NUM

But I've confirmed that ConfigMap easegress-cm has a configuration for httpserver in its contents

root@cp01:~# kubectl describe configmap easegress-cm
Name:         easegress-cm
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
controller.yaml:
----
kind: IngressController
name: ingress-controller-example
kubeConfig:
masterURL:
namespaces: ["default"]
ingressClass: easegress
httpServer:
  port: 8080
  https: false
  keepAlive: true
  keepAliveTimeout: 60s
  maxConnections: 10240

easegress-server.yaml:
----
name: ingress-easegress
cluster-name: easegress-ingress-controller
cluster-role: primary
api-addr: 0.0.0.0:2381
data-dir: /opt/easegress/data
log-dir: /opt/easegress/log
debug: false


BinaryData
====

Events:  <none>

from easegress.

xxx7xxxx avatar xxx7xxxx commented on May 28, 2024
2024-02-06T06:58:08.176Z        INFO    trafficcontroller/trafficcontroller.go:283      create traffic gate ingress-controller-example/ingresscontroller/http-server-ingress-controller

It was created. We just support get/describe traffic gates for different namespaces[1], which will be in next release. But for now, you can use egctl describe TrafficController TrafficController to get the spec of HTTPServer of IngressController.

And I was reckoning that your manual installation is not completed. You could use helm[2] to install Ingress Controller with specifying image.tag=v1.7.0.

[1] #1197
[2] https://github.com/easegress-io/easegress/blob/main/helm-charts/ingress-controller/README.md

from easegress.

kursk-ye avatar kursk-ye commented on May 28, 2024

Thanks, I've been on vacation since the Lunar New Year is coming up and I can't access the server, I'll try again after fixing my vacation.
Happy New Year!

from easegress.

xxx7xxxx avatar xxx7xxxx commented on May 28, 2024

Sure, please give us feedback if it's still not working.

from easegress.

kursk-ye avatar kursk-ye commented on May 28, 2024

I just returned to work yesterday and have been very busy at work and haven't had a chance to look into it yet, give me a moment.....

from easegress.

xxx7xxxx avatar xxx7xxxx commented on May 28, 2024

Sure, please give us feedback if you have any issues.

from easegress.

kursk-ye avatar kursk-ye commented on May 28, 2024

I'm sorry, I've been so busy lately that I haven't had the time to study the methods you've provided, I'll definitely test them out as soon as I'm free after a while!

from easegress.

xxx7xxxx avatar xxx7xxxx commented on May 28, 2024

@kursk-ye Hi, we've released v2.7.2 to address a bug in Ingress Controller, please upgrade Easegress and check it out.

from easegress.

kursk-ye avatar kursk-ye commented on May 28, 2024

@kursk-ye Hi, we've released v2.7.2 to address a bug in Ingress Controller, please upgrade Easegress and check it out.

ok,I try it

from easegress.

kursk-ye avatar kursk-ye commented on May 28, 2024

Thank you very much, it worked!

I used the 2.7.2 source code, rebuilt the image for arm64 architecture, and after redeploying easegress and service, the experiment worked!

root@cp01:~/easegress/build/package# kcdd easegress
Name:                   easegress
Namespace:              default
CreationTimestamp:      Thu, 14 Mar 2024 02:22:45 +0000
Labels:                 app=easegress-ingress
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=easegress-ingress
Replicas:               1 desired | 1 updated | 1 total | 1 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:           app=easegress-ingress
  Service Account:  easegress-ingress-controller
  Containers:
   easegress-primary:
    Image:      privatehub:5000/arm_easegress:2.7.2
    Port:       <none>
    Host Port:  <none>
    Command:
      /bin/sh
    Args:
      -c
      /opt/easegress/bin/easegress-server \
        -f /opt/eg-config/easegress-server.yaml \
        --initial-object-config-files /opt/eg-config/controller.yaml \
        --initial-cluster $(EG_NAME)=http://localhost:2380
    Limits:
      cpu:     1200m
      memory:  2Gi
    Requests:
      cpu:     100m
      memory:  256Mi
    Environment:
      EG_NAME:   (v1:metadata.name)
    Mounts:
      /opt/easegress/data from ingress-data-volume (rw)
      /opt/easegress/log from ingress-data-volume (rw)
      /opt/eg-config/controller.yaml from easegress-cm (rw,path="controller.yaml")
      /opt/eg-config/easegress-server.yaml from easegress-cm (rw,path="easegress-server.yaml")
  Volumes:
   ingress-data-volume:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
   easegress-cm:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      easegress-cm
    Optional:  false
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   easegress-54cb6c4d94 (1/1 replicas created)
Events:
  Type    Reason             Age   From                   Message
  ----    ------             ----  ----                   -------
  Normal  ScalingReplicaSet  40s   deployment-controller  Scaled up replica set easegress-54cb6c4d94 to 1


root@cp01:~/easegress/build/package# kcds hello-service
Name:                     hello-service
Namespace:                default
Labels:                   <none>
Annotations:              <none>
Selector:                 app=products,department=sales
Type:                     NodePort
IP Family Policy:         SingleStack
IP Families:              IPv4
IP:                       10.108.110.93
IPs:                      10.108.110.93
Port:                     port-v1  39090/TCP
TargetPort:               9090/TCP
NodePort:                 port-v1  30281/TCP
Endpoints:                172.16.189.45:9090,172.16.198.159:9090
Port:                     port-v2  49191/TCP
TargetPort:               9191/TCP
NodePort:                 port-v2  31381/TCP
Endpoints:                172.16.189.45:9191,172.16.198.159:9191
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>


root@cp01:~/easegress/build/package# kubectl describe ingress
Name:             ingress-example
Labels:           <none>
Namespace:        default
Address:
Ingress Class:    easegress
Default backend:  <default>
Rules:
  Host             Path  Backends
  ----             ----  --------
  www.example.com
                   /   hello-service:39090 (172.16.189.45:9090,172.16.198.159:9090)
  *.megaease.com
                   /   hello-service:49191 (172.16.189.45:9191,172.16.198.159:9191)
Annotations:       <none>
Events:            <none>

root@cp01:~/easegress/build/package# kcgs
NAME               TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                           AGE   SELECTOR
easegress-public   NodePort    10.106.7.247    <none>        8080:30080/TCP                    6s    app=easegress-ingress
hello-service      NodePort    10.108.110.93   <none>        39090:30281/TCP,49191:31381/TCP   40d   app=products,department=sales
kubernetes         ClusterIP   10.96.0.1       <none>        443/TCP                           52d   <none>

root@cp01:~/easegress/build/package# curl http://10.106.7.247:8080/ -HHost:www.example.com    
IP Address: 172.16.189.45
Port 9090
Welcome to Kursk
root@cp01:~/easegress/build/package#
root@cp01:~/easegress/build/package#
root@cp01:~/easegress/build/package# curl http://10.106.7.247:8080/ -HHost:www.megaease.com
IP Address: 172.16.189.45
Port 9191
Welcome to Kursk

from easegress.

kursk-ye avatar kursk-ye commented on May 28, 2024

Thanks to the help of the easegress team, I wrote a wechat article about the experimental procedure

https://mp.weixin.qq.com/s?__biz=Mzg3OTYwMTE1NA==&mid=2247484007&idx=1&sn=1a1fa804c9831eaa5b9fc3ea720191e1&chksm=cf00b10af877381c2b589033a2fce713a773c7b78dab614592e4052cb1da25d471639fd82d9b&token=385145902&lang=zh_CN#rd

from easegress.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.