github.com/cilium/cilium@v1.16.2/Documentation/network/servicemesh/l7-traffic-management.rst (about)

     1  .. only:: not (epub or latex or html)
     2  
     3      WARNING: You are looking at unreleased Cilium documentation.
     4      Please use the official rendered version released here:
     5      https://docs.cilium.io
     6  
     7  .. _gs_l7_traffic_management:
     8  
     9  ***************************
    10  L7-Aware Traffic Management
    11  ***************************
    12  
    13  Cilium provides a way to control L7 traffic via CRDs (e.g. CiliumEnvoyConfig
    14  and CiliumClusterwideEnvoyConfig).
    15  
    16  Prerequisites
    17  #############
    18  
    19  * Cilium must be configured with NodePort enabled, using
    20    ``nodePort.enabled=true`` or by enabling the kube-proxy replacement with
    21    ``kubeProxyReplacement=true``. For more information, see :ref:`kube-proxy
    22    replacement <kubeproxy-free>`.
    23  
    24  Caveats
    25  #######
    26  
    27  * ``CiliumEnvoyConfig`` resources have only minimal validation performed, and
    28    do not have a defined conflict resolution behavior. This means that if you
    29    create multiple CECs that modify the same parts of Envoy's config, the results
    30    may be unpredictable.
    31  * In addition to this minimal validation, ``CiliumEnvoyConfig`` has minimal
    32    feedback to the user about the correctness of the configuration. So in the
    33    event a CEC does produce an undesirable outcome, troubleshooting will require
    34    inspecting the Envoy config and logs, rather than being able to look at the
    35    ``CiliumEnvoyConfig`` in question.  
    36  * ``CiliumEnvoyConfig`` is used by Cilium's Ingress and Gateway API support to
    37    direct traffic through the per-node Envoy proxies. If you create CECs that
    38    conflict with or modify the autogenerated config, results may be unpredictable.
    39    Be very careful using CECs for these use cases. The above risks are managed
    40    by ensuring that all config generated by Cilium is semantically valid, as far
    41    as possible.
    42  
    43  .. include:: installation.rst
    44  
    45  Supported Envoy API Versions
    46  ============================
    47  
    48  As of now only the Envoy API v3 is supported.
    49  
    50  Supported Envoy Extension Resource Types
    51  ========================================
    52  
    53  Envoy extensions are resource types that may or may not be built in to
    54  an Envoy build. The standard types referred to in Envoy documentation,
    55  such as ``type.googleapis.com/envoy.config.listener.v3.Listener``, and
    56  ``type.googleapis.com/envoy.config.route.v3.RouteConfiguration``, are
    57  always available.
    58  
    59  Cilium nodes deploy an Envoy image to support Cilium HTTP policy
    60  enforcement and observability. This build of Envoy has been optimized
    61  for the needs of the Cilium Agent and does not contain many of the
    62  Envoy extensions available in the Envoy code base.
    63  
    64  To see which Envoy extensions are available, please have a look at
    65  the `Envoy extensions configuration
    66  file <https://github.com/cilium/proxy/blob/main/envoy_build_config/extensions_build_config.bzl>`_.
    67  Only the extensions that have not been commented out with ``#`` are
    68  built in to the Cilium Envoy image. We will evolve the list of built-in
    69  extensions based on user feedback.
    70  
    71  Examples
    72  ########
    73  
    74  Please refer to one of the below examples on how to use and leverage
    75  Cilium's Ingress features:
    76  
    77  .. toctree::
    78     :maxdepth: 1
    79     :glob:
    80  
    81     envoy-custom-listener
    82     envoy-traffic-management
    83     envoy-circuit-breaker
    84     envoy-load-balancing
    85     envoy-traffic-shifting