Comments (17)
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.
Can you post the whole logs of the Easegress ingress controller pod, maybe the reason lies in there?
from easegress.
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.
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.
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.
- You should post content from
stdout.log
, which indicate the server and pipeline were created correctly or not. /
could be 404, you should curl with path configured inIngress
.- Use
egctl describe httpserver <httpserver-name>
to get spec of httpserver of IngressController.
from easegress.
- 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:~#
- I redeployed deployment
easegress
,The completestdout.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
- 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.
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.
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.
Sure, please give us feedback if it's still not working.
from easegress.
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.
Sure, please give us feedback if you have any issues.
from easegress.
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.
@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 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.
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.
Thanks to the help of the easegress team, I wrote a wechat article about the experimental procedure
from easegress.
Related Issues (20)
- [Question]: how does the sidecar (mesh worker role) intercept outbound traffic HOT 7
- An option for enabling periodic health checks of the servers in Proxy plugin HOT 2
- Strict yaml schema validation via openAPIV3Schema HOT 1
- [Question]: Is there command `egctl convert ` ? HOT 2
- [Question]: egctl apply error HOT 2
- [Question]: New filter run panic HOT 8
- [Question]: Websocket handshake fail HOT 12
- Filter logger optimize HOT 5
- [Bug]: easegress-server --signal-upgrade=true panic HOT 2
- [Question]:Is buildOutputResponse missing ? HOT 4
- Filter will be created even it is not referenced in flow HOT 3
- Adding url decoding function to extend template functionality in easegress builder filters HOT 5
- [Question]: Why does pipeline not map properly to the backend server? HOT 3
- [Question]: Pipeline HandleWithBeforeAfter not work well HOT 23
- [Question]: Is there something wrong with the example in this IngressController doc? HOT 1
- [Question]: When using Easegress images version V2.6.1 and above, the IngressController does not function properly. HOT 5
- [Question]: When using Easegress as an Ingress controller, how can I add a global filter to the default HTTP server? HOT 8
- [Question]: Websocket log expected error HOT 3
- Report the use of components with vulnerabilities in easegress HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from easegress.