Install func-e: https://func-e.io/
func-e makes running Envoy® easy
If you don’t have a configuration file, you can start the admin port like this:
zzh@ZZHPC:~/Downloads$ curl https://func-e.io/install.sh -o func-e-install.sh % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 9791 100 9791 0 0 3038 0 0:00:03 0:00:03 --:--:-- 3038 zzh@ZZHPC:~/Downloads$ lh func-e-install.sh -rw-rw-r-- 1 zzh zzh 9.6K May 13 13:47 func-e-install.sh zzh@ZZHPC:~/Downloads$ chmod a+x func-e-install.sh zzh@ZZHPC:~/Downloads$ sudo ./func-e-install.sh -b /usr/local/bin tetratelabs/func-e info checking GitHub for latest tag tetratelabs/func-e info found version: 1.1.4 for v1.1.4/linux/amd64 tetratelabs/func-e info installed /usr/local/bin/func-e zzh@ZZHPC:~/Downloads$ which func-e /usr/local/bin/func-e
node: id: todo-envoy-proxy cluster: grpc_cluster static_resources: listeners: - name: listener_grpc address: socket_address: address: 0.0.0.0 port_value: 50051 filter_chains: - filters: - name: envoy.filters.network.http_connection_manager typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager stat_prefix: listener_http http_filters: - name: envoy.filters.http.router typed_config: "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router route_config: name: route virtual_hosts: - name: vh domains: ["*"] routes: - match: prefix: /todo.v2.TodoService grpc: {} route: cluster: grpc_cluster transport_socket: name: envoy.transport_sockets.tls typed_config: "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext common_tls_context: tls_certificates: - certificate_chain: filename: ./certs/server_cert.pem private_key: filename: ./certs/server_key.pem clusters: - name: grpc_cluster type: STRICT_DNS http2_protocol_options: {} transport_socket: name: envoy.transport_sockets.tls typed_config: "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext lb_policy: round_robin load_assignment: cluster_name: grpc_cluster endpoints: - lb_endpoints: - endpoint: address: socket_address: address: "todo-server.default.svc.cluster.local" port_value: 50051
(see above envoy.yaml)
zzh@ZZHPC:/zdata/Github/zgrpc-go-professionals$ func-e run -c envoy/envoy.yaml looking up the latest patch for Envoy version 1.30 1.30.1 is already downloaded starting: /home/zzh/.func-e/versions/1.30.1/bin/envoy -c envoy/envoy.yaml --admin-address-path /home/zzh/.func-e/runs/1715580489771135748/admin-address.txt [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:428] initializing epoch 0 (base id=0, hot restart version=11.104) [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:430] statically linked extensions: [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.request_id: envoy.request_id.uuid [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.thrift_proxy.protocols: auto, binary, binary/non-strict, compact, twitter [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.internal_redirect_predicates: envoy.internal_redirect_predicates.allow_listed_routes, envoy.internal_redirect_predicates.previous_routes, envoy.internal_redirect_predicates.safe_cross_scheme [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.config.validators: envoy.config.validators.minimum_clusters, envoy.config.validators.minimum_clusters_validator [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.filters.http: envoy.bandwidth_limit, envoy.buffer, envoy.cors, envoy.csrf, envoy.ext_authz, envoy.ext_proc, envoy.fault, envoy.filters.http.adaptive_concurrency, envoy.filters.http.admission_control, envoy.filters.http.alternate_protocols_cache, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.bandwidth_limit, envoy.filters.http.basic_auth, envoy.filters.http.buffer, envoy.filters.http.cache, envoy.filters.http.cdn_loop, envoy.filters.http.composite, envoy.filters.http.compressor, envoy.filters.http.connect_grpc_bridge, envoy.filters.http.cors, envoy.filters.http.credential_injector, envoy.filters.http.csrf, envoy.filters.http.custom_response, envoy.filters.http.decompressor, envoy.filters.http.dynamic_forward_proxy, envoy.filters.http.ext_authz, envoy.filters.http.ext_proc, envoy.filters.http.fault, envoy.filters.http.file_system_buffer, envoy.filters.http.gcp_authn, envoy.filters.http.geoip, envoy.filters.http.grpc_field_extraction, envoy.filters.http.grpc_http1_bridge, envoy.filters.http.grpc_http1_reverse_bridge, envoy.filters.http.grpc_json_transcoder, envoy.filters.http.grpc_stats, envoy.filters.http.grpc_web, envoy.filters.http.header_mutation, envoy.filters.http.header_to_metadata, envoy.filters.http.health_check, envoy.filters.http.ip_tagging, envoy.filters.http.json_to_metadata, envoy.filters.http.jwt_authn, envoy.filters.http.local_ratelimit, envoy.filters.http.lua, envoy.filters.http.match_delegate, envoy.filters.http.oauth2, envoy.filters.http.on_demand, envoy.filters.http.original_src, envoy.filters.http.rate_limit_quota, envoy.filters.http.ratelimit, envoy.filters.http.rbac, envoy.filters.http.router, envoy.filters.http.set_filter_state, envoy.filters.http.set_metadata, envoy.filters.http.stateful_session, envoy.filters.http.tap, envoy.filters.http.wasm, envoy.geoip, envoy.grpc_http1_bridge, envoy.grpc_json_transcoder, envoy.grpc_web, envoy.health_check, envoy.ip_tagging, envoy.local_rate_limit, envoy.lua, envoy.rate_limit, envoy.router [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.clusters: envoy.cluster.eds, envoy.cluster.logical_dns, envoy.cluster.original_dst, envoy.cluster.static, envoy.cluster.strict_dns, envoy.clusters.aggregate, envoy.clusters.dynamic_forward_proxy, envoy.clusters.redis [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.grpc_credentials: envoy.grpc_credentials.aws_iam, envoy.grpc_credentials.default, envoy.grpc_credentials.file_based_metadata [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.stats_sinks: envoy.dog_statsd, envoy.graphite_statsd, envoy.metrics_service, envoy.open_telemetry_stat_sink, envoy.stat_sinks.dog_statsd, envoy.stat_sinks.graphite_statsd, envoy.stat_sinks.hystrix, envoy.stat_sinks.metrics_service, envoy.stat_sinks.open_telemetry, envoy.stat_sinks.statsd, envoy.stat_sinks.wasm, envoy.statsd [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.matching.http.custom_matchers: envoy.matching.custom_matchers.trie_matcher [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.upstream_options: envoy.extensions.upstreams.http.v3.HttpProtocolOptions, envoy.extensions.upstreams.tcp.v3.TcpProtocolOptions, envoy.upstreams.http.http_protocol_options, envoy.upstreams.tcp.tcp_protocol_options [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.tracers.opentelemetry.samplers: envoy.tracers.opentelemetry.samplers.always_on, envoy.tracers.opentelemetry.samplers.dynatrace [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.filters.http.upstream: envoy.buffer, envoy.ext_proc, envoy.filters.http.admission_control, envoy.filters.http.aws_lambda, envoy.filters.http.aws_request_signing, envoy.filters.http.buffer, envoy.filters.http.composite, envoy.filters.http.ext_proc, envoy.filters.http.header_mutation, envoy.filters.http.match_delegate, envoy.filters.http.upstream_codec [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.listener_manager_impl: envoy.listener_manager_impl.default, envoy.listener_manager_impl.validation [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.http.stateful_header_formatters: envoy.http.stateful_header_formatters.preserve_case, preserve_case [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.load_balancing_policies: envoy.load_balancing_policies.cluster_provided, envoy.load_balancing_policies.least_request, envoy.load_balancing_policies.maglev, envoy.load_balancing_policies.random, envoy.load_balancing_policies.ring_hash, envoy.load_balancing_policies.round_robin, envoy.load_balancing_policies.subset [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.matching.action: envoy.matching.actions.format_string, filter-chain-name [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.rate_limit_descriptors: envoy.rate_limit_descriptors.expr [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.path.match: envoy.path.match.uri_template.uri_template_matcher [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] filter_state.object: envoy.filters.listener.original_dst.local_ip, envoy.filters.listener.original_dst.remote_ip, envoy.network.application_protocols, envoy.network.transport_socket.original_dst_address, envoy.network.upstream_server_name, envoy.network.upstream_subject_alt_names, envoy.string, envoy.tcp_proxy.cluster, envoy.tcp_proxy.disable_tunneling, envoy.tcp_proxy.per_connection_idle_timeout_ms, envoy.upstream.dynamic_host, envoy.upstream.dynamic_port [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.transport_sockets.upstream: envoy.transport_sockets.alts, envoy.transport_sockets.http_11_proxy, envoy.transport_sockets.internal_upstream, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, envoy.transport_sockets.upstream_proxy_protocol, raw_buffer, starttls, tls [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.upstreams: envoy.filters.connection_pools.tcp.generic [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.config_mux: envoy.config_mux.delta_grpc_mux_factory, envoy.config_mux.grpc_mux_factory, envoy.config_mux.new_grpc_mux_factory, envoy.config_mux.sotw_grpc_mux_factory [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.geoip_providers: envoy.geoip_providers.maxmind [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.resolvers: envoy.ip [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.quic.proof_source: envoy.quic.proof_source.filter_chain [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.http.stateful_session: envoy.http.stateful_session.cookie, envoy.http.stateful_session.header [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.matching.network.input: envoy.matching.inputs.application_protocol, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.filter_state, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.subject, envoy.matching.inputs.transport_protocol, envoy.matching.inputs.uri_san [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] quic.http_server_connection: quic.http_server_connection.default [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.http.injected_credentials: envoy.http.injected_credentials.generic [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.upstream.local_address_selector: envoy.upstream.local_address_selector.default_local_address_selector [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.wasm.runtime: envoy.wasm.runtime.null, envoy.wasm.runtime.v8 [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.network.dns_resolver: envoy.network.dns_resolver.cares, envoy.network.dns_resolver.getaddrinfo [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.compression.decompressor: envoy.compression.brotli.decompressor, envoy.compression.gzip.decompressor, envoy.compression.zstd.decompressor [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.health_checkers: envoy.health_checkers.grpc, envoy.health_checkers.http, envoy.health_checkers.redis, envoy.health_checkers.tcp, envoy.health_checkers.thrift [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.router.cluster_specifier_plugin: envoy.router.cluster_specifier_plugin.lua [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.filters.network: envoy.echo, envoy.ext_authz, envoy.filters.network.connection_limit, envoy.filters.network.direct_response, envoy.filters.network.dubbo_proxy, envoy.filters.network.echo, envoy.filters.network.ext_authz, envoy.filters.network.http_connection_manager, envoy.filters.network.local_ratelimit, envoy.filters.network.mongo_proxy, envoy.filters.network.ratelimit, envoy.filters.network.rbac, envoy.filters.network.redis_proxy, envoy.filters.network.set_filter_state, envoy.filters.network.sni_cluster, envoy.filters.network.sni_dynamic_forward_proxy, envoy.filters.network.tcp_proxy, envoy.filters.network.thrift_proxy, envoy.filters.network.wasm, envoy.filters.network.zookeeper_proxy, envoy.http_connection_manager, envoy.mongo_proxy, envoy.ratelimit, envoy.redis_proxy, envoy.tcp_proxy [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.protocols: dubbo [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.rbac.matchers: envoy.rbac.matchers.upstream_ip_port [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.matching.network.custom_matchers: envoy.matching.custom_matchers.trie_matcher [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.tls.cert_validator: envoy.tls.cert_validator.default, envoy.tls.cert_validator.spiffe [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.quic.server_preferred_address: quic.server_preferred_address.fixed [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.route_config_update_requester: envoy.route_config_update_requester.default [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.http.custom_response: envoy.extensions.http.custom_response.local_response_policy, envoy.extensions.http.custom_response.redirect_policy [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.config_subscription: envoy.config_subscription.ads, envoy.config_subscription.ads_collection, envoy.config_subscription.aggregated_grpc_collection, envoy.config_subscription.delta_grpc, envoy.config_subscription.delta_grpc_collection, envoy.config_subscription.filesystem, envoy.config_subscription.filesystem_collection, envoy.config_subscription.grpc, envoy.config_subscription.rest [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.transport_sockets.downstream: envoy.transport_sockets.alts, envoy.transport_sockets.quic, envoy.transport_sockets.raw_buffer, envoy.transport_sockets.starttls, envoy.transport_sockets.tap, envoy.transport_sockets.tcp_stats, envoy.transport_sockets.tls, raw_buffer, starttls, tls [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.thrift_proxy.filters: envoy.filters.thrift.header_to_metadata, envoy.filters.thrift.payload_to_metadata, envoy.filters.thrift.rate_limit, envoy.filters.thrift.router [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.retry_priorities: envoy.retry_priorities.previous_priorities [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.path.rewrite: envoy.path.rewrite.uri_template.uri_template_rewriter [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.regex_engines: envoy.regex_engines.google_re2 [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.serializers: dubbo.hessian2 [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.guarddog_actions: envoy.watchdog.abort_action, envoy.watchdog.profile_action [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.matching.common_inputs: envoy.matching.common_inputs.environment_variable [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] network.connection.client: default, envoy_internal [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.filters.listener: envoy.filters.listener.http_inspector, envoy.filters.listener.local_ratelimit, envoy.filters.listener.original_dst, envoy.filters.listener.original_src, envoy.filters.listener.proxy_protocol, envoy.filters.listener.tls_inspector, envoy.listener.http_inspector, envoy.listener.original_dst, envoy.listener.original_src, envoy.listener.proxy_protocol, envoy.listener.tls_inspector [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.quic.server.crypto_stream: envoy.quic.crypto_stream.server.quiche [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.dubbo_proxy.filters: envoy.filters.dubbo.router [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.tracers: envoy.dynamic.ot, envoy.tracers.datadog, envoy.tracers.dynamic_ot, envoy.tracers.opencensus, envoy.tracers.opentelemetry, envoy.tracers.skywalking, envoy.tracers.xray, envoy.tracers.zipkin, envoy.zipkin [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.resource_monitors: envoy.resource_monitors.fixed_heap, envoy.resource_monitors.injected_resource [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.route.early_data_policy: envoy.route.early_data_policy.default [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.filters.udp_listener: envoy.filters.udp.dns_filter, envoy.filters.udp_listener.udp_proxy [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.http.original_ip_detection: envoy.http.original_ip_detection.custom_header, envoy.http.original_ip_detection.xff [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.tracers.opentelemetry.resource_detectors: envoy.tracers.opentelemetry.resource_detectors.dynatrace, envoy.tracers.opentelemetry.resource_detectors.environment [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.quic.connection_id_generator: envoy.quic.deterministic_connection_id_generator [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.compression.compressor: envoy.compression.brotli.compressor, envoy.compression.gzip.compressor, envoy.compression.zstd.compressor [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.udp_packet_writer: envoy.udp_packet_writer.default, envoy.udp_packet_writer.gso [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.formatter: envoy.formatter.cel, envoy.formatter.metadata, envoy.formatter.req_without_query [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.common.key_value: envoy.key_value.file_based [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.string_matcher: envoy.string_matcher.lua [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.filters.udp.session: envoy.filters.udp.session.dynamic_forward_proxy, envoy.filters.udp.session.http_capsule [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.matching.http.input: envoy.matching.inputs.cel_data_input, envoy.matching.inputs.destination_ip, envoy.matching.inputs.destination_port, envoy.matching.inputs.direct_source_ip, envoy.matching.inputs.dns_san, envoy.matching.inputs.request_headers, envoy.matching.inputs.request_trailers, envoy.matching.inputs.response_headers, envoy.matching.inputs.response_trailers, envoy.matching.inputs.server_name, envoy.matching.inputs.source_ip, envoy.matching.inputs.source_port, envoy.matching.inputs.source_type, envoy.matching.inputs.status_code_class_input, envoy.matching.inputs.status_code_input, envoy.matching.inputs.subject, envoy.matching.inputs.uri_san, query_params [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.retry_host_predicates: envoy.retry_host_predicates.omit_canary_hosts, envoy.retry_host_predicates.omit_host_metadata, envoy.retry_host_predicates.previous_hosts [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.http.header_validators: envoy.http.header_validators.envoy_default [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.health_check.event_sinks: envoy.health_check.event_sink.file [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.matching.input_matchers: envoy.matching.matchers.cel_matcher, envoy.matching.matchers.consistent_hashing, envoy.matching.matchers.ip, envoy.matching.matchers.runtime_fraction [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.http.early_header_mutation: envoy.http.early_header_mutation.header_mutation [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.connection_handler: envoy.connection_handler.default [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.bootstrap: envoy.bootstrap.internal_listener, envoy.bootstrap.wasm, envoy.extensions.network.socket_interface.default_socket_interface [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.access_loggers: envoy.access_loggers.file, envoy.access_loggers.fluentd, envoy.access_loggers.http_grpc, envoy.access_loggers.open_telemetry, envoy.access_loggers.stderr, envoy.access_loggers.stdout, envoy.access_loggers.tcp_grpc, envoy.access_loggers.wasm, envoy.file_access_log, envoy.fluentd_access_log, envoy.http_grpc_access_log, envoy.open_telemetry_access_log, envoy.stderr_access_log, envoy.stdout_access_log, envoy.tcp_grpc_access_log, envoy.wasm_access_log [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.thrift_proxy.transports: auto, framed, header, unframed [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.access_loggers.extension_filters: envoy.access_loggers.extension_filters.cel [2024-05-13 14:08:09.837][84829][info][main] [source/server/server.cc:432] envoy.http.cache: envoy.extensions.http.cache.file_system_http_cache, envoy.extensions.http.cache.simple [2024-05-13 14:08:09.840][84829][warning][misc] [source/common/protobuf/message_validator_impl.cc:21] Deprecated field: type envoy.config.cluster.v3.Cluster Using deprecated option 'envoy.config.cluster.v3.Cluster.http2_protocol_options' from file cluster.proto. This configuration will be removed from Envoy soon. Please see https://www.envoyproxy.io/docs/envoy/latest/version_history/version_history for details. If continued use of this field is absolutely necessary, see https://www.envoyproxy.io/docs/envoy/latest/configuration/operations/runtime#using-runtime-overrides-for-deprecated-features for how to apply a temporary and highly discouraged override. [2024-05-13 14:08:09.840][84829][info][main] [source/server/server.cc:486] HTTP header map info: [2024-05-13 14:08:09.841][84829][info][main] [source/server/server.cc:489] request header map: 664 bytes: :authority,:method,:path,:protocol,:scheme,accept,accept-encoding,access-control-request-headers,access-control-request-method,access-control-request-private-network,authentication,authorization,cache-control,cdn-loop,connection,content-encoding,content-length,content-type,expect,grpc-accept-encoding,grpc-timeout,if-match,if-modified-since,if-none-match,if-range,if-unmodified-since,keep-alive,origin,pragma,proxy-connection,proxy-status,referer,te,transfer-encoding,upgrade,user-agent,via,x-client-trace-id,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-downstream-service-cluster,x-envoy-downstream-service-node,x-envoy-expected-rq-timeout-ms,x-envoy-external-address,x-envoy-force-trace,x-envoy-hedge-on-per-try-timeout,x-envoy-internal,x-envoy-ip-tags,x-envoy-is-timeout-retry,x-envoy-max-retries,x-envoy-original-path,x-envoy-original-url,x-envoy-retriable-header-names,x-envoy-retriable-status-codes,x-envoy-retry-grpc-on,x-envoy-retry-on,x-envoy-upstream-alt-stat-name,x-envoy-upstream-rq-per-try-timeout-ms,x-envoy-upstream-rq-timeout-alt-response,x-envoy-upstream-rq-timeout-ms,x-envoy-upstream-stream-duration-ms,x-forwarded-client-cert,x-forwarded-for,x-forwarded-host,x-forwarded-port,x-forwarded-proto,x-ot-span-context,x-request-id [2024-05-13 14:08:09.841][84829][info][main] [source/server/server.cc:489] request trailer map: 120 bytes: [2024-05-13 14:08:09.841][84829][info][main] [source/server/server.cc:489] response header map: 432 bytes: :status,access-control-allow-credentials,access-control-allow-headers,access-control-allow-methods,access-control-allow-origin,access-control-allow-private-network,access-control-expose-headers,access-control-max-age,age,cache-control,connection,content-encoding,content-length,content-type,date,etag,expires,grpc-message,grpc-status,keep-alive,last-modified,location,proxy-connection,proxy-status,server,transfer-encoding,upgrade,vary,via,x-envoy-attempt-count,x-envoy-decorator-operation,x-envoy-degraded,x-envoy-immediate-health-check-fail,x-envoy-ratelimited,x-envoy-upstream-canary,x-envoy-upstream-healthchecked-cluster,x-envoy-upstream-service-time,x-request-id [2024-05-13 14:08:09.841][84829][info][main] [source/server/server.cc:489] response trailer map: 144 bytes: grpc-message,grpc-status [2024-05-13 14:08:09.847][84829][info][main] [source/server/server.cc:861] runtime: {} [2024-05-13 14:08:09.847][84829][info][main] [source/server/server.cc:721] No admin address given, so no admin HTTP server started. [2024-05-13 14:08:09.847][84829][info][config] [source/server/configuration_impl.cc:168] loading tracing configuration [2024-05-13 14:08:09.847][84829][info][config] [source/server/configuration_impl.cc:124] loading 0 static secret(s) [2024-05-13 14:08:09.847][84829][info][config] [source/server/configuration_impl.cc:130] loading 1 cluster(s) [2024-05-13 14:08:09.848][84829][info][config] [source/server/configuration_impl.cc:138] loading 1 listener(s) [2024-05-13 14:08:09.850][84829][info][config] [source/server/configuration_impl.cc:154] loading stats configuration [2024-05-13 14:08:09.850][84829][info][runtime] [source/common/runtime/runtime_impl.cc:614] RTDS has finished initialization [2024-05-13 14:08:09.850][84829][info][upstream] [source/common/upstream/cluster_manager_impl.cc:240] cm init: all clusters initialized [2024-05-13 14:08:09.850][84829][warning][main] [source/server/server.cc:928] There is no configured limit to the number of allowed active downstream connections. Configure a limit in `envoy.resource_monitors.downstream_connections` resource monitor. [2024-05-13 14:08:09.850][84829][info][main] [source/server/server.cc:950] all clusters initialized. initializing init manager [2024-05-13 14:08:09.850][84829][info][config] [source/common/listener_manager/listener_manager_impl.cc:930] all dependencies initialized. starting workers [2024-05-13 14:08:09.852][84829][info][main] [source/server/server.cc:969] starting main dispatch loop
zzh@ZZHPC:/zdata/Github/zgrpc-go-professionals$ go run ./client 0.0.0.0:50050 --------ADD-------- added task: 1 added task: 2 added task: 3 ------------------- --------LIST------- id:1 description:"This is a task" due_date:{seconds:1715580567 nanos:952664421} overdue: false id:2 description:"This is another task" due_date:{seconds:1715580567 nanos:952664421} overdue: false id:3 description:"And yet another task" due_date:{seconds:1715580567 nanos:952664421} overdue: false ------------------- -------UPDATE------ updated task with id: 1 updated task with id: 2 updated task with id: 3 id:1 description:"A better name for the task" due_date:{} overdue: true id:2 due_date:{seconds:1715598567 nanos:952664421} overdue: false id:3 done:true due_date:{} overdue: false ------------------- -------DELETE------ 2024/05/13 14:09:22 task deleted 2024/05/13 14:09:22 task deleted 2024/05/13 14:09:22 task deleted -------------------
envoy.dockerfile:
FROM envoyproxy/envoy-distroless:v1.30-latest COPY ./envoy/envoy.yaml /etc/envoy/envoy.yaml COPY ./certs/server_cert.pem /etc/envoy/certs/server_cert.pem COPY ./certs/server_key.pem /etc/envoy/certs/server_key.pem EXPOSE 50051 CMD ["--config-path", "/etc/envoy/envoy.yaml"]
The image is built successfully.
service.yaml:
apiVersion: v1 kind: Service metadata: name: todo-envoy spec: clusterIP: None ports: - name: grpc port: 50051 selector: app: todo-envoy
deployment.yaml:
apiVersion: apps/v1 kind: Deployment metadata: name: todo-envoy labels: app: todo-envoy spec: replicas: 1 selector: matchLabels: app: todo-envoy template: metadata: labels: app: todo-envoy spec: containers: - name: todo-envoy image: zgrpc-go-professionals:envoy-proxy imagePullPolicy: Never ports: - name: grpc containerPort: 50051
zzh@ZZHPC:/zdata/Github/zgrpc-go-professionals$ kubectl get pods NAME READY STATUS RESTARTS AGE todo-envoy-7d64f6b96-brzd7 1/1 Running 0 2m12s zzh@ZZHPC:/zdata/Github/zgrpc-go-professionals$ kubectl port-forward pod/todo-envoy-7d64f6b96-brzd7 50051 Forwarding from 127.0.0.1:50051 -> 50051 Forwarding from [::1]:50051 -> 50051
zzh@ZZHPC:/zdata/Github/zgrpc-go-professionals$ go run ./client 0.0.0.0:50051
--------ADD--------
2024/05/13 15:31:12 rpc error: code = Unavailable desc = no healthy upstream
exit status 1
zzh@ZZHPC:/zdata/Github/zgrpc-go-professionals$ kubectl port-forward pod/todo-envoy-7d64f6b96-brzd7 50051
Forwarding from 127.0.0.1:50051 -> 50051
Forwarding from [::1]:50051 -> 50051
Handling connection for 50051
Thie error is due to the todo-server isn't deployed in the k8s cluster. After deploy it the command runs successfully:
zzh@ZZHPC:/zdata/Github/zgrpc-go-professionals$ go run ./client 0.0.0.0:50051 --------ADD-------- added task: 1 added task: 1 added task: 1 ------------------- --------LIST------- id:1 description:"This is a task" due_date:{seconds:1715586368 nanos:576806057} overdue: false ------------------- -------UPDATE------ updated task with id: 1 updated task with id: 1 updated task with id: 1 id:1 description:"And yet another task" due_date:{seconds:1715586368 nanos:576806057} overdue: false ------------------- -------DELETE------ 2024/05/13 15:46:03 task deleted 2024/05/13 15:46:03 error while receiving: rpc error: code = Internal desc = unexpected error: task with id 1 not found exit status 1