diff --git a/ROADMAP.md b/ROADMAP.md index f8d2c3efdd8..64eccf955fa 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -29,14 +29,16 @@ We will continue to add more advanced NetworkPolicy features. * **Network diagnostics and observability** Network diagnostics and observability is one area we want to focus on. Antrea -already implements some useful features on this front, including [Octant UI -plugin](docs/octant-plugin-installation.md), [CLI](docs/antctl.md), -[Traceflow](docs/traceflow-guide.md), [network flow export and visualization](docs/network-flow-visibility.md), -[Prometheus metrics](docs/prometheus-integration.md), [OVS flow dumping](docs/antctl.md#dumping-ovs-flows) -and [packet tracing](docs/antctl.md#ovs-packet-tracing), [NetworkPolicy -diagnostics](docs/antctl.md#networkpolicy-commands). We will continue to -enhance existing features and add new features to help diagnose K8s networking -and NetworkPolicy implementation, and to provide good visibility into the Antrea +already implements some useful features on this front, including the [Antrea +UI](https://github.com/antrea-io/antrea-ui), [CLI](docs/antctl.md), +[Traceflow](docs/traceflow-guide.md), [network flow export and +visualization](docs/network-flow-visibility.md), [Prometheus +metrics](docs/prometheus-integration.md), [OVS flow +dumping](docs/antctl.md#dumping-ovs-flows) and [packet +tracing](docs/antctl.md#ovs-packet-tracing), [NetworkPolicy +diagnostics](docs/antctl.md#networkpolicy-commands). We will continue to enhance +existing features and add new features to help diagnose K8s networking and +NetworkPolicy implementation, and to provide good visibility into the Antrea network. * **NFV and Telco use cases** diff --git a/docs/assets/arch.svg b/docs/assets/arch.svg index b531191c53d..a549e33ff6e 100644 --- a/docs/assets/arch.svg +++ b/docs/assets/arch.svg @@ -2,216 +2,224 @@ + inkscape:export-filename="../../../Desktop/arch.svg.png" + inkscape:export-xdpi="300" + inkscape:export-ydpi="300" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:stockid="Arrow2Mend" + viewBox="0 0 6.9304588 5.1962256" + markerWidth="6.9304585" + markerHeight="5.1962256" + preserveAspectRatio="xMidYMid"> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6)" /> + inkscape:stockid="Arrow2Mstart" + viewBox="0 0 6.9304588 5.1962256" + markerWidth="6.9304585" + markerHeight="5.1962256" + preserveAspectRatio="xMidYMid"> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(-0.6)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="scale(0.6)" /> + inkscape:window-width="1680" + inkscape:window-height="943" + inkscape:window-x="0" + inkscape:window-y="25" + inkscape:window-maximized="0" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1"> + id="grid1527" + units="px" + originx="-4.9609373" + originy="-15.507812" /> @@ -244,7 +258,6 @@ image/svg+xml - @@ -253,9 +266,10 @@ id="layer9" inkscape:label="Export" style="display:inline" + transform="matrix(0.9375,0,0,0.9375,-4.9609374,-15.507812)" sodipodi:insensitive="true"> + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.529167;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.529167;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.529167;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> Kubernetes Nodes + x="0" + y="0" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.31598px;font-family:Oswald;-inkscape-font-specification:'Oswald, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.264583">Kubernetes Nodes Pods + x="0" + y="0" + style="stroke-width:0.264583">Pods DaemonSet + x="0" + y="0" + style="stroke-width:0.264583">DaemonSet Deployment + x="0" + y="0" + style="stroke-width:0.264583">Deployment + width="63.667091" + height="13.343343" + x="10.499789" + y="35.296444" + ry="2.9651885" /> Octant UI + x="0" + y="0" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.27852px;font-family:Oswald;-inkscape-font-specification:'Oswald, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583" + id="tspan398">Antrea Web UI - - + x="0" + y="0" + style="stroke-width:0.257806">Kubernetes API AntreaAntreaController AntreaAntreaAgent OVSdaemons - Antrea Kubelet + x="0" + y="0" + style="stroke-width:0.264583">Kubelet antrea-cni + x="0" + y="0" + style="stroke-width:0.264583">antrea-cni OVS bridge + x="0" + y="0" + style="stroke-width:0.264583">OVS bridge antctl + x="0" + y="0" + style="stroke-width:0.264583">antctl kube-proxy + x="0" + y="0" + style="stroke-width:0.264583">kube-proxy iptables + x="0" + y="0" + style="stroke-width:0.264583">iptables + Antrea CRDs + x="0" + y="0" + style="font-style:italic;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.93889px;font-family:Oswald;-inkscape-font-specification:'Oswald, Light';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.264583">Antrea CRDs Agent CRD + x="0" + y="0" + style="font-style:italic;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.93889px;font-family:Oswald;-inkscape-font-specification:'Oswald, Light';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.264583">AgentInfo CRD Controller CRD + x="0" + y="0" + style="font-style:italic;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.93889px;font-family:Oswald;-inkscape-font-specification:'Oswald, Light';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.264583">ControllerInfo CRD NetworkPolicyNetworkPolicyPodNamespace CNI Cmds + x="0" + y="0" + style="font-style:italic;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.93889px;font-family:Oswald;-inkscape-font-specification:'Oswald, Light';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.264583">CNI Cmds OVSDBOVSDBOpenFlow NodeNodePod Computed Network Policies + x="0" + y="0" + style="font-style:italic;font-variant:normal;font-weight:300;font-stretch:normal;font-size:4.93889px;font-family:Oswald;-inkscape-font-specification:'Oswald, Light';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.264583">Computed Network Policies veth + x="0" + y="0" + style="stroke-width:0.264583">veth veth + x="0" + y="0" + style="stroke-width:0.264583">veth + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/arch.svg.png b/docs/assets/arch.svg.png deleted file mode 100644 index 1fc89a80060..00000000000 Binary files a/docs/assets/arch.svg.png and /dev/null differ diff --git a/docs/contributors/github-labels.md b/docs/contributors/github-labels.md index b77070699f6..0e1d31f7cd1 100644 --- a/docs/contributors/github-labels.md +++ b/docs/contributors/github-labels.md @@ -24,7 +24,6 @@ The labels in this list originated within Kubernetes at | area/component/cni | Issues or PRs related to the cni component | Any | | area/component/controller | Issues or PRs related to the Controller component | Any | | area/component/flow-aggregator | Issues or PRs related to the Flow Aggregator component | Any | -| area/component/octant-plugin | Issues or PRs related to the octant-plugin component | Any | | area/dependency | Issues or PRs related to dependency changes | Any | | area/endpoint/identity | Issues or PRs related to endpoint identity | Any | | area/endpoint/selection | Issues or PRs related to endpoint selection | Any | @@ -51,7 +50,6 @@ The labels in this list originated within Kubernetes at | area/network-policy/lifecycle | Issues or PRs related to the network policy lifecycle | Any | | area/network-policy/match | Issues or PRs related to matching packets | Any | | area/network-policy/precedence | Issues or PRs related to network policy precedence | Any | -| area/octant | Issues or PRs related to Octant | Any | | area/ops | Issues or PRs related to features which support network operations and troubleshooting | Any | | area/ops/traceflow | Issues or PRs related to the Traceflow feature | Any | | area/ovs/openflow | Issues or PRs related to Open vSwitch Open Flow | Any | diff --git a/docs/design/architecture.md b/docs/design/architecture.md index 1ebbd44243b..b4be72f14d1 100644 --- a/docs/design/architecture.md +++ b/docs/design/architecture.md @@ -25,10 +25,9 @@ init container that installs the CNI plugin - `antrea-cni` - on the Node and ensures that the OVS kernel module is loaded and it is chained with the portmap and bandwidth CNI plugins. All Antrea Controller, Agent, OVS daemons, and `antrea-cni` bits are included in a single Docker image. Antrea also has a -command-line tool called `antctl`, and an [Octant](https://github.com/vmware-tanzu/octant) -UI plugin. +command-line tool called `antctl`. -Antrea Architecture Overview +Antrea Architecture Overview ### Antrea Controller @@ -137,14 +136,17 @@ executed through `kubectl` as a `kubectl` plugin as well. When accessing the Agent, `antctl` connects to the Agent's local REST endpoint, and can only be executed locally in the Agent's container. -### Octant UI plugin +### Antrea web UI -Antrea also implements an Octant plugin which can show the Controller and -Agent's health and basic runtime information in the Octant UI. The Octant plugin -gets the Controller and Agent's information from the `AntreaControllerInfo` and -`AntreaAgentInfo` CRDs (Custom Resource Definition) in the Kubernetes API. The -CRDs are created by the Antrea Controller and each Antrea Agent to populate -their health and runtime information. +Antrea also comes with a web UI, which can show the Controller and Agent's +health and basic runtime information. The UI gets the Controller and Agent's +information from the `AntreaControllerInfo` and `AntreaAgentInfo` CRDs (Custom +Resource Definition) in the Kubernetes API. The CRDs are created by the Antrea +Controller and each Antrea Agent to populate their health and runtime +information. + +The Antrea web UI provides additional capabilities. Please refer to the [Antrea +UI repository](https://github.com/antrea-io/antrea-ui) for more information. ## Pod Networking diff --git a/docs/getting-started.md b/docs/getting-started.md index 61bd15d8bf8..0c1c64abb13 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -212,11 +212,12 @@ are in different subnets, but does not encapsulate when the source and the destination Nodes are in the same subnet. Refer to [this guide](noencap-hybrid-modes.md) to learn how to configure Antrea with `NoEncap` or `Hybrid` mode. -### Octant UI +### Antrea Web UI -Antrea ships with an Octant UI plugin which can show runtime information of Antrea -components and perform Antrea Traceflow operations. Refer to [this guide](octant-plugin-installation.md) -to learn how to install Octant and the Antrea plugin. +Antrea comes with a web UI, which can show runtime information of Antrea +components and perform Antrea Traceflow operations. Please refer to the [Antrea +UI repository](https://github.com/antrea-io/antrea-ui) for installation +instructions and more information. ### OVS Hardware Offload diff --git a/docs/octant-plugin-installation.md b/docs/octant-plugin-installation.md index f781a5d974c..66d91d94230 100644 --- a/docs/octant-plugin-installation.md +++ b/docs/octant-plugin-installation.md @@ -1,5 +1,11 @@ # Octant and antrea-octant-plugin installation +***Octant is no longer maintained and the antrea-octant-plugin is deprecated as + of Antrea v1.12. It will be removed completely in subsequent + releases. Please refer to [#4640](https://github.com/antrea-io/antrea/issues/4640) + for more information, and check out the [Antrea web UI](https://github.com/antrea-io/antrea-ui) + for an alternative.*** + ## Overview There are two ways to deploy Octant and antrea-octant-plugin. diff --git a/docs/traceflow-guide.md b/docs/traceflow-guide.md index 66b5a33fc78..fee45ec347a 100644 --- a/docs/traceflow-guide.md +++ b/docs/traceflow-guide.md @@ -1,16 +1,16 @@ # Traceflow User Guide Antrea supports using Traceflow for network diagnosis. It can inject a packet -into OVS on a Node and trace the forwarding path of the packet across Nodes, -and it can also trace a matched packet of real traffic from or to a Pod. In -either case, a Traceflow operation is triggered by a Traceflow CRD which -specifies the type of Traceflow, the source and destination of the packet to -trace, and the headers of the packet. And the Traceflow results will be -populated to the `status` field of the Traceflow CRD, which include the -observations of the trace packet at various observations points in the -forwarding path. Besides creating the Traceflow CRD using kubectl, users can -also start a Traceflow using `antctl`, or from the Antrea Octant Plugin. When -using the Antrea Octant plugin, the Traceflow results can be visualized using a +into OVS on a Node and trace the forwarding path of the packet across Nodes, and +it can also trace a matched packet of real traffic from or to a Pod. In either +case, a Traceflow operation is triggered by a Traceflow CRD which specifies the +type of Traceflow, the source and destination of the packet to trace, and the +headers of the packet. And the Traceflow results will be populated to the +`status` field of the Traceflow CRD, which include the observations of the trace +packet at various observations points in the forwarding path. Besides creating +the Traceflow CRD using kubectl, users can also start a Traceflow using +`antctl`, or from the [Antrea web UI](https://github.com/antrea-io/antrea-ui). +When using the Antrea web UI, the Traceflow results can be visualized using a graph. ## Table of Contents @@ -22,7 +22,8 @@ graph. - [Using kubectl and YAML file (IPv6)](#using-kubectl-and-yaml-file-ipv6) - [Live-traffic Traceflow](#live-traffic-traceflow) - [Using antctl](#using-antctl) - - [Using Octant with antrea-octant-plugin](#using-octant-with-antrea-octant-plugin) + - [Using the Antrea web UI](#using-the-antrea-web-ui) + - [Using Octant with antrea-octant-plugin (DEPRECATED)](#using-octant-with-antrea-octant-plugin-deprecated) - [View Traceflow Result and Graph](#view-traceflow-result-and-graph) - [View Traceflow CRDs](#view-traceflow-crds) - [RBAC](#rbac) @@ -51,8 +52,6 @@ is enabled in the Agent configuration: AntreaProxy: true ``` -For antrea-octant-plugin installation, please refer to [antrea-octant-installation](octant-plugin-installation.md). - ## Start a New Traceflow You can choose to use `kubectl` together with a YAML file, the `antctl traceflow` @@ -172,7 +171,19 @@ spec: Please refer to the corresponding [antctl page](antctl.md#traceflow). -### Using Octant with antrea-octant-plugin +### Using the Antrea web UI + +Please refer to the [Antrea UI documentation](https://github.com/antrea-io/antrea-ui) +for installation instructions. Once you can access the UI in your browser, +navigate to the `Traceflow` page. + +### Using Octant with antrea-octant-plugin (DEPRECATED) + +***Octant is no longer maintained and the antrea-octant-plugin is deprecated as + of Antrea v1.12. It will be removed completely in subsequent + releases. Please refer to [#4640](https://github.com/antrea-io/antrea/issues/4640) + for more information, and check out the [Antrea web UI](https://github.com/antrea-io/antrea-ui) + for an alternative.*** Start a New Trace diff --git a/plugins/octant/cmd/antrea-octant-plugin/main.go b/plugins/octant/cmd/antrea-octant-plugin/main.go index f7e91befff1..1dbdb442534 100644 --- a/plugins/octant/cmd/antrea-octant-plugin/main.go +++ b/plugins/octant/cmd/antrea-octant-plugin/main.go @@ -82,6 +82,8 @@ func main() { // See https://github.com/vmware-tanzu/octant/issues/3012 logger.Info("antrea-octant-plugin is starting") log.Printf("antrea-octant-plugin is starting") + logger.Info("***WARNING***: Octant is no longer maintained and this plugin is deprecated; it will be removed in the next Antrea release (see https://github.com/antrea-io/antrea/issues/4640)") + log.Printf("***WARNING***: Octant is no longer maintained and this plugin is deprecated; it will be removed in the next Antrea release (see https://github.com/antrea-io/antrea/issues/4640)") p.Serve() }