×
Community Blog Introduction to Higress V0.7.0

Introduction to Higress V0.7.0

This article introduces the features of Higress v0.7.0 and the release of the GA version, v1.0.0.

By Higress

Overview

  1. The Higress console has been released, covering the service, routing, domain name, and certificate management capabilities of Higress, and providing out-of-the-box observability features.
  2. When installing or upgrading Higress, the corresponding version of the Higress Console can be automatically installed to avoid version incompatibility issues.
  3. Higress supports enabling the Istio API to implement more complex features, and it can be used to seamlessly replace Istio Ingress Gateway.

Features

Higress Console

When you run the helm command to install Higress, the corresponding version of the Higress console is automatically installed. You can use the higress-console.domain parameter to specify the domain name of the Higress console.

# If a repo has been added, execute helm repo update.
helm repo add higress.io https://higress.io/helm-charts
helm install higress -n higress-system higress.io/higress --create-namespace --render-subchart-notes --set higress-console.domain=console.higress.io

1

Note: After installation is complete, a message will be displayed containing the command to obtain the console login information. Execute the command and record the username and password.

2

When deploying a service in a production environment, we recommend enabling forced HTTPS access in the console by creating a TLS certificate and a secret corresponding to the private key in the higress-system namespace. For example:

apiVersion: v1
kind: Secret
type: kubernetes.io/tls
data:
  tls.crt: -----BEGIN CERTIFICATE-----...
  tls.key: -----BEGIN RSA PRIVATE KEY-----...
metadata:
  name: my-tls-secret
  namespace: higress-system

Then, run the following helm command to enable forced HTTPS access.

helm upgrade higress -n higress-system higress.io/higress --set higress-console.tlsSecretName=my-tls-secret

To enable Prometheus and Grafana that comes with Higress, run the following helm command to install.

helm upgrade higress -n higress-system higress.io/higress --set higress-console.o11y.enabled=true

The built-in observability dashboard can be seen in the Higress console.

3

You can also connect to the existing Prometheus and Grafana using the official Higress Dashboard configuration: https://higress.io/grafana/dashboard.json

You can log in to the Higress Demo console to try out all the existing functions: http://demo.higress.io

Enable Istio API

You can use Higress to seamlessly replace the Istio Ingress Gateway by using the Istio API. Below is the helm command.

helm upgrade higress -n higress-system higress.io/higress --set global.enableIstioAPI=true

You can use Istio API operations to enable Ingress annotations that are not provided by Higress. For example, you can use Istio EnvoyFilter to configure HTTP to Dubbo protocol conversion.

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: http-dubbo-transcoder
  namespace: higress-system
spec:
  configPatches:
  - applyTo: HTTP_FILTER
    match:
      context: GATEWAY
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.http_connection_manager
            subFilter:
              name: envoy.filters.http.router
    patch:
      operation: INSERT_BEFORE
      value:
        name: envoy.filters.http.http_dubbo_transcoder
        typed_config:
          '@type': type.googleapis.com/udpa.type.v1.TypedStruct
          type_url: type.googleapis.com/envoy.extensions.filters.http.http_dubbo_transcoder.v3.HttpDubboTranscoder
  - applyTo: HTTP_ROUTE
    match:
      context: GATEWAY
      routeConfiguration:
        vhost:
          route:
            name: test
    patch:
      operation: MERGE
      value:
        route:
          upgrade_configs:
          - connect_config:
              allow_post: true
            upgrade_type: CONNECT
        typed_per_filter_config:
          envoy.filters.http.http_dubbo_transcoder:
            '@type': type.googleapis.com/udpa.type.v1.TypedStruct
            type_url: type.googleapis.com/envoy.extensions.filters.http.http_dubbo_transcoder.v3.HttpDubboTranscoder
            value:
              request_validation_options:
                reject_unknown_method: true
                reject_unknown_query_parameters: true
              services_mapping:
              - group: dev
                method_mapping:
                - name: sayName
                  parameter_mapping:
                  - extract_key: p
                    extract_key_spec: ALL_QUERY_PARAMETER
                    mapping_type: java.lang.String
                  passthrough_setting:
                    passthrough_all_headers: true
                  path_matcher:
                    match_http_method_spec: ALL_GET
                    match_pattern: /dubbo/hello
                name: com.alibaba.nacos.example.dubbo.service.DemoService
                version: 1.0.0
              url_unescape_spec: ALL_CHARACTERS_EXCEPT_RESERVED

The above configuration is complex because the schema is designed to facilitate the logic processing of Envoy data plane programs. However, the Higress community is designing CRDs to simplify Ingress configuration. Additionally, the Higress community will provide corresponding configuration features in the Higress console.

GA Version

Higress has recently released the GA version, v1.0.0. You are welcomed to have a try.

Core Features:

  1. Support Wasm plugin OCI images containing more than two layers
  2. Support adding, modifying and deleting HTTP headers when forwarding requests and responses
  3. Support rewriting request path when forwarding requests
  4. Support toggling Wasm plugins on following levels: global, domain, route
  5. Support enabling local mode with Helm property global.local
  6. Allow watching Ingress resources in a specific namespace, so multiple Higress instances can be deployed within a single K8s cluster

Higress Community

Welcome to claim Higress Issue task: https://github.com/alibaba/higress/issues

1 2 1
Share on

You may also like

Comments

Dikky Ryan Pratama July 1, 2023 at 3:50 pm

awesome!