From 664ab859df674b228a8c22191cac05d5fd47cee3 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Steenis Date: Wed, 20 Mar 2019 13:41:38 +0100 Subject: [PATCH] Review CNI --- .../en/faq/networking/cni-providers/_index.md | 61 +++++----- .../add-ons/network-plugins/_index.md | 43 +++---- static/img/rancher/encapsulated-network.png | Bin 0 -> 37743 bytes static/img/rancher/encapsulated-network.svg | 109 ------------------ static/img/rancher/unencapsulated-network.png | Bin 0 -> 28017 bytes static/img/rancher/unencapsulated-network.svg | 105 ----------------- static/img/rancher/weave-logo.png | Bin 0 -> 5098 bytes 7 files changed, 46 insertions(+), 272 deletions(-) create mode 100644 static/img/rancher/encapsulated-network.png delete mode 100644 static/img/rancher/encapsulated-network.svg create mode 100644 static/img/rancher/unencapsulated-network.png delete mode 100644 static/img/rancher/unencapsulated-network.svg create mode 100644 static/img/rancher/weave-logo.png diff --git a/content/rancher/v2.x/en/faq/networking/cni-providers/_index.md b/content/rancher/v2.x/en/faq/networking/cni-providers/_index.md index f3cee5d0f52..a9e1229e230 100644 --- a/content/rancher/v2.x/en/faq/networking/cni-providers/_index.md +++ b/content/rancher/v2.x/en/faq/networking/cni-providers/_index.md @@ -15,7 +15,7 @@ For more information visit [CNI GitHub project](https://github.com/containernetw ### What Network Models are Used in CNI? -CNI providers implement their network fabric using either an encapsulated network model such as Virtual Extensible Lan ([VXLAN](https://github.com/coreos/flannel/blob/master/Documentation/backends.md#vxlan)) or an unencapsulated network model such as Border Gateway Protocol ([BGP](https://en.wikipedia.org/wiki/Border_Gateway_Protocol)). +CNI network providers implement their network fabric using either an encapsulated network model such as Virtual Extensible Lan ([VXLAN](https://github.com/coreos/flannel/blob/master/Documentation/backends.md#vxlan)) or an unencapsulated network model such as Border Gateway Protocol ([BGP](https://en.wikipedia.org/wiki/Border_Gateway_Protocol)). #### What is an Encapsulated Network? @@ -23,11 +23,11 @@ This network model provides a logical Layer 2 (L2) network encapsulated over the In simple terms, this network model generates a kind of network bridge extended between Kubernetes workers, where pods are connected. -This network model is used when an extended L2 bridge is preferred. This network model is sensible for L3 network latencies of the Kubernetes workers. If datacenters are in distinct geolocations, be sure to have low latencies between them to avoid eventual network segmentation. +This network model is used when an extended L2 bridge is preferred. This network model is sensitive to L3 network latencies of the Kubernetes workers. If datacenters are in distinct geolocations, be sure to have low latencies between them to avoid eventual network segmentation. -CNI providers using this network model include Flannel, Canal, and Weave. +CNI network providers using this network model include Flannel, Canal, and Weave. -![Encapsulated Network]({{< baseurl >}}/img/rancher/encapsulated-network.svg) +![Encapsulated Network]({{< baseurl >}}/img/rancher/encapsulated-network.png) #### What is an Unencapsulated Network? @@ -35,23 +35,23 @@ This network model provides an L3 network to route packets between containers. T In simple terms, this network model generates a kind of network router extended between Kubernetes workers, which provides information about how to reach pods. -This network model is used when a routed L3 network is preferred. This mode dynamically updates routes at the OS level for Kubernetes workers. It's less sensible to latency. +This network model is used when a routed L3 network is preferred. This mode dynamically updates routes at the OS level for Kubernetes workers. It's less sensitive to latency. -CNI providers using this network model include Calico and Romana. +CNI network providers using this network model include Calico and Romana. -![Unencapsulated Network]({{< baseurl >}}/img/rancher/unencapsulated-network.svg) +![Unencapsulated Network]({{< baseurl >}}/img/rancher/unencapsulated-network.png) ### What CNI Providers are Provided by Rancher? -Out-of-the-box, Rancher provides three different CNI providers for Kubernetes clusters: Canal, Flannel, and Calico. You can choose your CNI when you create new Kubernetes clusters from Rancher. +Out-of-the-box, Rancher provides the following CNI network providers for Kubernetes clusters: Canal, Flannel, Calico and Weave (Weave is available as of v2.2.0). You can choose your CNI network provider when you create new Kubernetes clusters from Rancher. #### Canal ![Canal Logo]({{< baseurl >}}/img/rancher/canal-logo.png) -Canal is a CNI provider that gives you the best of Flannel and Calico. It allows users to easily deploy Calico and Flannel networking together as a unified networking solution, combining Calico’s network policy enforcement with the rich superset of Calico (unencapsulated) and/or Flannel (encapsulated) network connectivity options. +Canal is a CNI network provider that gives you the best of Flannel and Calico. It allows users to easily deploy Calico and Flannel networking together as a unified networking solution, combining Calico’s network policy enforcement with the rich superset of Calico (unencapsulated) and/or Flannel (encapsulated) network connectivity options. -In Rancher, Canal is the default CNI provider combined with Flannel and VXLAN encapsulation. +In Rancher, Canal is the default CNI network provider combined with Flannel and VXLAN encapsulation. Kubernetes workers should open UDP port `8472` (VXLAN) and TCP port `9099` (healthcheck). See [Port Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/references/) for more details. @@ -65,7 +65,7 @@ For more information, see the [Canal GitHub Page](https://github.com/projectcali Flannel is a simple and easy way to configure L3 network fabric designed for Kubernetes. Flannel runs a single binary agent named flanneld on each host, which is responsible for allocating a subnet lease to each host out of a larger, preconfigured address space. Flannel uses either the Kubernetes API or etcd directly to store the network configuration, the allocated subnets, and any auxiliary data (such as the host's public IP). Packets are forwarded using one of several backend mechanisms, with the default encapsulation being [VXLAN](https://github.com/coreos/flannel/blob/master/Documentation/backends.md#vxlan). -Encapsulated traffic is unencrypted by default. Threfore, flannel provides an experimental backend for encryption, [IPSec](https://github.com/coreos/flannel/blob/master/Documentation/backends.md#ipsec), which makes use of [strongSwan](https://www.strongswan.org/) to establish encrypted IPSec tunnels between Kubernetes workers. +Encapsulated traffic is unencrypted by default. Therefore, flannel provides an experimental backend for encryption, [IPSec](https://github.com/coreos/flannel/blob/master/Documentation/backends.md#ipsec), which makes use of [strongSwan](https://www.strongswan.org/) to establish encrypted IPSec tunnels between Kubernetes workers. Kubernetes workers should open UDP port `8472` (VXLAN) and TCP port `9099` (healthcheck). See [Port Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/references/) for more details. @@ -81,7 +81,7 @@ Calico enables networking and network policy in Kubernetes clusters across the c Calico also provides a stateless IP-in-IP encapsulation mode that can be used, if necessary. Calico also offers policy isolation, allowing you to secure and govern your Kubernetes workloads using advanced ingress and egress policies. -Kubernetes workers should open TCP port `179` (BGP). +Kubernetes workers should open TCP port `179` (BGP). See [Port Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/references/) for more details. ![Calico Diagram]({{< baseurl >}}/img/rancher/calico-diagram.svg) @@ -95,26 +95,19 @@ For more information, see the following pages: ![Weave Logo]({{< baseurl >}}/img/rancher/weave-logo.png) +_Available as of v2.2.0_ + Weave enables networking and network policy in Kubernetes clusters across the cloud. Additionally, it support encrypting traffic between the peers. -To enable encryption, `WEAVE_PASSWORD` has to be set as a network plugin parameter. Rancher UI automatically generates the password when weave CNI plugin is selected. You can change the default password by editing the cluster YAML from the UI: +Kubernetes workers should open TCP port `6783` (control port), UDP port `6783` and UDP port `6784` (data ports). See [Port Requirements]({{< baseurl >}}/rancher/v2.x/en/installation/references/) for more details. -```yaml -network: - plugin: "weave" -weave_network_provider: - password: "Q]SZOQ5wp@n$oijz" -``` - -Kubernetes workers should open TCP port 6783 and UDP 6783/6784. - -Weave is available as a CNI plugin in Rancher as of version 2.2, For more information, see the following pages: +For more information, see the following pages: - [Weave Net Official Site](https://www.weave.works/) ### CNI Features by Provider -The following table summarizes the different features available for each CNI provider provided by Rancher. +The following table summarizes the different features available for each CNI network provider provided by Rancher. | Provider | Network Model | Route Distribution | Network Policies | Mesh | External Datastore | Encryption | Ingress/Egress Policies | | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | @@ -125,13 +118,13 @@ The following table summarizes the different features available for each CNI pro - Network Model: Encapsulated or unencapsulated. For more information, see [What Network Models are Used in CNI?](#what-network-models-are-used-in-cni) -- Route Distribution: An exterior gateway protocol designed to exchange routing and reachability information on the Internet. BGP can assist with pod-to-pod networking between clusters. This feature is a must on unencapsulated CNI providers, and it is typically done by BGP. If you plan to build clusters split across network segments, route distribution is a feature that's nice-to-have. +- Route Distribution: An exterior gateway protocol designed to exchange routing and reachability information on the Internet. BGP can assist with pod-to-pod networking between clusters. This feature is a must on unencapsulated CNI network providers, and it is typically done by BGP. If you plan to build clusters split across network segments, route distribution is a feature that's nice-to-have. - Network Policies: Kubernetes offers functionality to enforce rules about which services can communicate with each other using network policies. This feature is stable as of Kubernetes v1.7 and is ready to use with certain networking plugins. - Mesh: This feature allows service-to-service networking communication between distinct Kubernetes clusters. -- External Datastore: CNI providers with this feature need an external datastore for its data. +- External Datastore: CNI network providers with this feature need an external datastore for its data. - Encyption: This feature allows cyphered and secure network control and data planes. @@ -143,16 +136,18 @@ The following table summarizes different GitHub metrics to give you an idea of e | Provider | Project | Stars | Forks | Contributors | | ---- | ---- | ---- | ---- | ---- | -| Canal | https://github.com/projectcalico/canal | 536 | 75 | 19 | -| flannel | https://github.com/coreos/flannel | 3.279 | 774 | 107 | -| Calico | https://github.com/projectcalico/calico | 572 | 225 | 82 | -| Weave | https://github.com/weaveworks/weave/ | 5446 | 498 | 63 | +| Canal | https://github.com/projectcalico/canal | 580 | 84 | 20 | +| flannel | https://github.com/coreos/flannel | 3980 | 987 | 123 | +| Calico | https://github.com/projectcalico/calico | 953 | 305 | 101 | +| Weave | https://github.com/weaveworks/weave/ | 5457 | 501 | 63 |
### Which CNI Provider Should I Use? -It depends on your project needs. There are many different providers, which each have various features and options. There isn't one provider that meets everyone's needs. At the moment, Rancher v2.0 provides the 3 most versatile CNI providers. +It depends on your project needs. There are many different providers, which each have various features and options. There isn't one provider that meets everyone's needs. -As of Rancher v2.0.7, Canal is the default CNI provider. We recommend it for most use cases. It provides encapsulated networking for containers with Flannel, while adding Calico network policies that can provide project/namespace isolation in terms of networking. +As of Rancher v2.0.7, Canal is the default CNI network provider. We recommend it for most use cases. It provides encapsulated networking for containers with Flannel, while adding Calico network policies that can provide project/namespace isolation in terms of networking. -All of 3 solutions are capable CNI providers and will likely suit your needs. +### How can I configure a CNI network provider? + +Please see [Cluster Options]({{< baseurl >}}/rancher/v2.x/en/cluster-provisioning/rke-clusters/options/) on how to configure a network provider for your cluster. For more advanced configuration options, please see how to configure your cluster using a [Config File](/rancher/v2.x/en/cluster-provisioning/rke-clusters/options/#config-file) and the options for [Network Plug-ins]({{< baseurl >}}/rke/v0.1.x/en/config-options/add-ons/network-plugins/). diff --git a/content/rke/v0.1.x/en/config-options/add-ons/network-plugins/_index.md b/content/rke/v0.1.x/en/config-options/add-ons/network-plugins/_index.md index 29f78535040..7b552e8e300 100644 --- a/content/rke/v0.1.x/en/config-options/add-ons/network-plugins/_index.md +++ b/content/rke/v0.1.x/en/config-options/add-ons/network-plugins/_index.md @@ -45,8 +45,8 @@ The `canal_flannel_backend_type` option allows you to specify the type of [flann network: plugin: flannel options: - flannel_iface: eth1 - flannel_backend_type: vxlan + flannel_iface: eth1 + flannel_backend_type: vxlan ``` #### Flannel Interface @@ -59,30 +59,10 @@ The `flannel_backend_type` option allows you to specify the type of [flannel bac ```yaml network: plugin: calico - calico_cloud_provider: aws + options: + calico_cloud_provider: aws ``` - -### Weave Network Plug-in Options - -```yaml -network: - plugin: "weave" -``` - -#### Weave encryption - -Weave encryption can be enabled by passing a string password to the network provider config. - -### Weave Network Plug-in Options - -```yaml -network: - plugin: "weave" -weave_network_provider: - password: "Q]SZOQ5wp@n$oijz" -``` - -#### Cloud Provider +#### Calico Cloud Provider Calico currently only supports 2 cloud providers, AWS or GCE, which can be set using `calico_cloud_provider`. @@ -90,3 +70,16 @@ Calico currently only supports 2 cloud providers, AWS or GCE, which can be set u - `aws` - `gce` + +### Weave Network Plug-in Options + +```yaml +network: + plugin: weave + weave_network_provider: + password: "Q]SZOQ5wp@n$oijz" +``` + +#### Weave encryption + +Weave encryption can be enabled by passing a string password to the network provider config. diff --git a/static/img/rancher/encapsulated-network.png b/static/img/rancher/encapsulated-network.png new file mode 100644 index 0000000000000000000000000000000000000000..43c0ab436518e5819a074297a901eec293522c84 GIT binary patch literal 37743 zcmZ_01ymeM^9PCr3$|!**C4^&-AN$0ySux)1$UPaEV#S71$Sq0cX^w8Z}R=$JLho* zcBiMhyQ;dnyM9&Egel00Bf{grgMon|N=k@)0Rw}00|NtZhlK!@L^wSYgFe6=zK9Ef zRgB{SK{s%=5^4@$VDHg>|AK?1Wqbe;%$g~wI;zUba2eQG(d!x7=o`_yTG@iA!N7Q2 zxjbcTcJCOd{$e(sZj2sN?&1@abY^;fXx2vab1byBzn-ie{u2u% zAj9t`42<-j82+{ms><`bluOvg%GTbe`?|Ml}Py@IKYqYX$4_GSi> z){aK@pvsPVzq#XM`mgr?KgIvIEqQx0Baqbp)Mosz_Wv#WkDiC&x8VOr5&vrWpHh&T z`QUjN{tg)*{LgKsRWL9CFi8)b? zh%kGDsbDdGt*?nz5z*v@h6mAvf2Y!Y_qmgvXd0^UuKHm;mN-5$H4{H+adC7sImATL z+S=O9hJy1h!$CgMNrbi35AMZcvD3am@fNPQ!Tf+iW9$yTID2U@UYkE-&Hc^xQPLxL zW*HAf&PJIbW9_!n)_taV^LhpuMD#O+@?}H8-MYfb^TgJ@MVJRz*9|nm!;#~+zO#Ky z4GEfVu&#?Av{}@5o0;I{%J5c-vVFaZK`gXc zv&65H=4k7&+q@<%4Vhu!;7e#XQ_Q+(KJQg{?2mGrW-te}-fG^M5s_{szpjg~OrGH_ zd8P0eeB(CForx#MUu)0dQ>-WiJepTqyB<*wo}MqSOH+d1KU<+mXm^&)x~4A%m6g?} zDIx54w8~O>-TdGIYAsvK>zLtxA zW4GHJcwx`(bu&vs`$i=Xu)!Ira3VXMvQ0i&;c?xe3{om+1nA*L<+XMUdZ<;!`!WIg z)WMc|JBr}}x@clZWk0pl`3%`Uyfg<*?>{F|zEoHU0c(85(${zsUiTT?rq7z_6J7@< z=DayKFW+2VZm+X13)Ve^sa_gVK@ZOWQg2RTYuD*Qz>a5ARvG~Pn_pJ$b+*r7{Ocs$ z@=Wo*q)(#?)l2c&RRRArcLJYgWEJ=2VKHz54+oR zcB_HM<2>lInK^;)rL-0JA_QFbNu_)Nwg>}figqM@_OcWnUE<52{cO2mo*5EePq0AL zEjAvH`))I5$b~-4jPj3H$br)xue9=yogqR%9q%~Gm%b2Tpd!VNB;mCLmDlCKrr4#j z7qIFCxP4X7@$5?FH7)Kot>Z?L@cPim1FYl&Y35!q>zepQ7?>S3mj3EU^)fRBq98<( zdNWkYy3U;lo~Dc(jeqTT$i0pc2eEY(r0^(ywku26$osO&1GH)TAoX^h$ph@sfiLtq zch0(Y(MBqa@%kwL*isodJ;q$>Ei?9>DMF=kW|}Y8nRVuwDzl5I&7%# zf0rSo-)CXSxx=qTLVcD8Wsg)4Bt-vRMS4V3Q{s1ie~1N?0kFnjZD!Q~DB%BHuxTIV z(BA#;evkm7p0w>@b~p>EwD@mBYOp-rD;YfRFbvd+ z`cK2yE-U#*3HejiovwCtYL=ew%Tr$>s8zaNRW@#yWtjI>6ic-^wv*_BdsEl3(LR0s z5i*m1hxuYvB+K~mwWek_A(D?!Dr~(V3U?H7KfOnuWw&8KA#{;p_|YWy;Q}{ZKBM{4 zDp2k}rFF`od|+iU<pAC<*Qb+Rxpq}QAd=^2Ya z#yFiO)4W+nZ4vKyP6^D@$GmXWVRrKzWv)UyYwJRA=a?v&=ug@6NRyUloX@mKn`30) zN!ho&?z()F*-tXgfdOWBq%fx~yjh=Es!egRL%gpY=BA#hjRPkw@j(z@?Ip&s4k#c_s&Cd1-19~>1CD%Wm@>qG0qk;~PnhjI2xj}zhg^vc>grf>Vp z%5zPpccS}xoiyemwdz0yV&U2Eowr83Wc#j=d6|Yv#?WYmkrT6)G98Idz zZ(F$wsc;A^47--8R8loE@QKl5vTV^vN{?Wy;Ywqaq(09r!EqaKctgtGZQ#RmP;?b?FF1jA!(lz zwplE>)G`Pc)#wnw{yE!TDTV_xtG5_ zn)bCm4o>YbgWh;$xjwgdF;@N7QWuGT&BM&p=b*;;0Bf(U#CTX=(T0%u0KlCYd~;~X zZK1e*ZgU)$Ok3+jw`yIZF?joI>R~eBHP#N3#=uvrxZwKnOnt=jrNqII!pk(Rp$3lbUZfxb?q_gb36RzldSdU0;b;;%g*lQ*1U{kqe z)bY~KCZeP$$23`b;;5T^(MDb#Gw7imROg)Q-RvK!w`*(qQE6ruY{g?=U#?-f7{S)@ z8pL@Js-W-xmMiq$y0mXhzL3f$kNuaH>KJ_^&7%y*JBQ781L-fwtXdvHXsf*8PVPHJ z3ap5s3tQ}PQ|8HO_5L)k{bOJzh6;F*MU_=Sq9Q%Xgb_a9#>4;J=>?eJGMohyt^@o- zoaUpiQM51|Tv$F@ez&!6Si-?!8~r+vVQD^BooS$Y+4FQic$n)mcCDf+QQy948fj>&`Mw2DIg8!Wa(R2DoRKNY$m5<% zL*z`=I|$tRgofFt-a|Bxdm)QNgarxzD7^u;EWDD(`V`j?0^G*ll@OOaJZVHdg>64Q znV-pMBuKu=107c{aT%|);$BvWMFfn_*1#0S*~~W4ygsvHc5&~QgOzXr+kcy%1hHR+ zttn>1+)LWR9)TrxVLfL{BM=sf!zaVBIkR&)0-whd5Wwd-uyW4N{SAxkZM=m(A{C;EjOy6c+oBnnz>VKoVdft zXTcE1eRj9qrOOqc42*-L6xMhiPUaWJHjIu}eF^b-O|KP}?^X_fM+sYT%3mrl&HmD>&S0GAq43{iAZEZY}7QPgSV<*6~NZLHyR#ro7Xi7qVo&6uxR zr(&PM>=N|I#He&9&6UcnPu;qd-!|@Bg>lsj6GtpZGHc4U43@X^#!T+jUu<%$WE@}d zJrhdSC)Z5;K5Wmv(6(4{==K4;sIr^eA81>(C)gg;ob`J#izQtX@_B^IsBI014zTo7 zTV8lpZ=t3s{&P;LNo}wCs>0yICmUKyxnqB;R{`46vuq<%%Ee_BPCrx(4K%5h`xaj zJJeM6UNuXfP0Pfr@%2PI`ql7N5vp6Sk9&>t`NX4%4x6Zm=_z!27kmJU@9xoe zV`slXfqPueX2N3s_brRnNER)s6EWei{1*DN8@i=KTjwU@1d7h z4;SbtUzu(>lBRNBx;N7hf#=T#RvwtR5ZL&RZ@E_8I_bj7O{7Crug|R?>-*fZ%qv^B z2``W{PpaCTiA`4*1_LO$FBhMiZmU_J8^7TI3KodO*h~<8yk&)QJnwe>Uoua&B8jcL z*PfOiKb<0eK;77wncADiM@P)eyH@#c1B93D9JcZB37z$1DD|s)V?|IeCbaZ=ax+}> zu=zP5N03eVl9^nd?@~8|OmE}F-ScQwD4Epv? zxts!{Trfu6#i`*=yaO=Yy1~!_es>3}gIm?$BWZCjy;=L}vPkDrUuRLqr&R_yvhXfT zb%5UOYHzaSXuJ-I$_ihH+c72G0$*o@%P9Li2z|NE>R|H0=C)EfWc#>ZVJSDU+~lmT z-nwog(sfMk!W#XiJ0KTIs{MP3)_u6q8m-%{+344k%YxAi^US#g`Xrxo$EnXa)GVa# zEk`&J}iV$Fib7o*dxI0i1bzBGxdZqgC2seklDV&*r zIPoFU3$VT;B{eh^wBg@l&cuE$?-*=YnDeEZs1M%FWlY_hT%0AW?s{XjRL^_Spm@8Y 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 literal 0 HcmV?d00001 diff --git a/static/img/rancher/encapsulated-network.svg b/static/img/rancher/encapsulated-network.svg deleted file mode 100644 index 3f5634e6af2..00000000000 --- a/static/img/rancher/encapsulated-network.svg +++ /dev/null @@ -1,109 +0,0 @@ - - - - Produced by OmniGraffle 7.4.3 - 2018-07-27 08:48:50 +0000 - - - - - - - - - - Canvas 1 - - - Layer 1 - - - - - k8s worker - - - - - workload 1 - 10.42.0.2 - - - - - fl - anneld - 10.42.0.1 - - - - - workload 2 - 10.42.0.3 - - - - - 192.168.34.10 - - - - - docker0 - - - - - - - - - - k8s worker - - - - - workload 1 - 10.42.1.2 - - - - - fl - anneld - 10.42.1.1 - - - - - workload 2 - 10.42.1.3 - - - - - 192.168.34.11 - - - - - docker0 - - - - - - - - - - encapsulation - - - - Overlay network 10.42.0.0/16 - - - - diff --git a/static/img/rancher/unencapsulated-network.png b/static/img/rancher/unencapsulated-network.png new file mode 100644 index 0000000000000000000000000000000000000000..a2a44eb31dc292d32e77f656ce22e1b1de9eda88 GIT binary patch literal 28017 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 z z)vBIg<;Z$RduDXpwy8Y8oV2xJ(0FL!`s+z=%aRo4c-@WGY%=fIgP$(X;xi1)vYUF? zT1x__bI#Y_Nb9zgk>(e;?0S}CpG=DjrCrs*3FFnhhEJ~MrU54C+f*gq*8J_v9 z#5|?MTtw(c6{!fv@aL9=PG5^9>{e(?8$NyLim{HX8hqhdeq^KM2=^<-#1Z!Mq@v~c zPb6w$5j-;0-!K%8JJOVnD8=EgoW+(j5!}M2iI$QI)r7h*&6kf=TF)q<6_y3^W{DO{ zmL`iiz>(%xE~)rX+dh+Wmh5T9ue0hT(oW zWV7gdcK=Q}4n{5yzuWw zysUqzG2k~jIN4(O)&I(KGx*`|TcA+Rvy(z0iXd9}L4aZb`cH0B0N*WG{a?|Lu7V|d zXURZjp))Pkr9(fccB}3xAxX^n9TKV(#h%K=o5dOYcgO=XRc^yEUZ{8Mvk{A3;!a*~ z!jK`rl=WEA$H&Lc?)}2p0Z(2FNB5S~NfCzvpE;CbvDoozKF99qBJv$dfT(7RF&8U> zA3$}~4cvwRCf2~fAhv$(y*4ZZ19lO(V3t^PjaRz^le`XT$nASg1w5#?-!Q>=yy(H3OtQ;ks)3IW8s^w7UL@Nu|AS=hy_z028l*hd_U;q5rw?DX4 z6AQm$|5~m)ZW^0)9WcEPy8c_j5jy;_bZsVU!{%R!cS64a{s-32Z4vzyP;xt;(v#Oz zv-10!Zm9JlYRmXjHbKRme*A)3A^RECej${|lSUkzS9N9$t?)EQc*8*A6^e)-`z7;# zzh&I}%*ylI;Rw2th3IgvF7o~AlSmScP|#enngIlD0Ff=$d`ak_u#Dd@GHb>j*Jp&( zeWzQQ4$!TB$z;7?NsAe>oyTK2Gi)vY{_@^C-xLiJU>&@r=!k=OCH~j1xv0Dzn8mvj zhL|C#t4J7jV(g^wrvv6<$|E_T(sB^HOXX12vL_5_J_jNU{rhp%e;}w#9S$yr z*ej3N9A`?xHviv$i&I@#7}Z@eWK?JaDUdC|^1|;?jKF5s)s2HZ6WK7>lwnpWj}ZQw z9{-ty|2iRxrs@BW0;e7NCqiXoA%7w?969&b=(1`3V_yAZbOCMs^LSFn@}E&e#`|}_ z4u!Y+Su^dxKL0YQOwF7yTNaD}{((<8(ogN3N#!3bX+6`YRtj^FZf6d*{hEWOW?zXX z4zz;MR5dh!_3Gb`U+i3-%QE{<;oKAujGg{>Zy{WJn3dJEO|VALbvF8)C`ar>d7H|? z6aVK6uvSn|Jz8F(nN`TzYm{Xc^_?Vv3m zdZjZC`z%#@|72@n8$|QhKVu|E^lrSlTj@TTygHvT^~j$?3(z#hscn+JU47HN;|kB< Q&!FwnRMS;0R>s}@4<9D^`Tzg` literal 0 HcmV?d00001 diff --git a/static/img/rancher/unencapsulated-network.svg b/static/img/rancher/unencapsulated-network.svg deleted file mode 100644 index 58bfdbf3760..00000000000 --- a/static/img/rancher/unencapsulated-network.svg +++ /dev/null @@ -1,105 +0,0 @@ - - - - Produced by OmniGraffle 7.4.3 - 2018-07-27 09:12:19 +0000 - - - - - - - - - - Canvas 1 - - - Layer 1 - - - - - k8s worker - - - - - workload 1 - 10.42.0.2 - - - - - bgp r - outing - - - - - workload 2 - 10.42.0.3 - - - - - 192.168.34.10 - - - - - docker0 - - - - - - - - - - k8s worker - - - - - workload 1 - 10.42.1.2 - - - - - bgp r - outing - - - - - workload 2 - 10.42.1.3 - - - - - 192.168.34.11 - - - - - docker0 - - - - - - - - - - ETCD - - - - - - diff --git a/static/img/rancher/weave-logo.png b/static/img/rancher/weave-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..bc01f579fe48b4d88956647a4580083a66b0e3f5 GIT binary patch literal 5098 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 M07*qoM6N<$g0iyN