Skip to content

Commit

Permalink
Merge pull request #2889 from weaveworks/consistent-spacing-in-markdo…
Browse files Browse the repository at this point in the history
…wn-headings

Consisten spacing in Markdown headings
  • Loading branch information
marccarre committed Apr 10, 2017
2 parents 0bb62ae + 293f199 commit 1b7c386
Show file tree
Hide file tree
Showing 24 changed files with 111 additions and 111 deletions.
14 changes: 7 additions & 7 deletions site/cni-plugin.md
Expand Up @@ -15,7 +15,7 @@ application containers. CNI is supported by
and
[others](https://github.com/containernetworking/cni#who-is-using-cni).

###Installing the Weave Net CNI plugin
### Installing the Weave Net CNI plugin

If your machine has the directories normally used to host CNI plugins,
then the Weave Net CNI plugin is installed when you run `weave setup`.
Expand All @@ -29,7 +29,7 @@ Then run:

weave setup

####Launching Weave Net
#### Launching Weave Net

To create a network that spans multiple hosts, the Weave peers must be connected to each other.
This is accomplished by specifying the other hosts during `weave launch` or via
Expand All @@ -40,7 +40,7 @@ for a discussion on peer connections.

weave launch <peer hosts>

####Using the CNI network configuration file
#### Using the CNI network configuration file

All CNI plugins are configured by a JSON file in the directory
`/etc/cni/net.d/`. `weave setup` installs a minimal configuration
Expand All @@ -64,9 +64,9 @@ The following other fields in the spec are supported:
- `ipam / subnet` - default is to use Weave's IPAM default subnet
- `ipam / gateway` - default is to use the Weave bridge IP address (allocated by `weave expose`)

###Using the Weave Net CNI plugin
### Using the Weave Net CNI plugin

####Configuring Kubernetes to use the CNI Plugin
#### Configuring Kubernetes to use the CNI Plugin

After you've launched Weave and peered your hosts, you can configure
Kubernetes to use Weave, by adding the following options to the
Expand All @@ -79,7 +79,7 @@ for more details.

Now, whenever Kubernetes starts a pod, it will be attached to the Weave network.

####Configuring Mesos to use the CNI plugin
#### Configuring Mesos to use the CNI plugin

To use the CNI plugin, the Mesos Agent must be started with reference
to the CNI configuration and binary directories:
Expand All @@ -105,7 +105,7 @@ connected to the weave network)"
For more information, see the
[Mesos documentation](http://mesos.apache.org/documentation/cni/).

###Caveats
### Caveats

- The Weave Net router container must be running for CNI to allocate addresses
- The CNI plugin does not add entries to weaveDNS.
36 changes: 18 additions & 18 deletions site/features.md
Expand Up @@ -27,7 +27,7 @@ menu_order: 20

For step-by-step instructions on how to use Weave Net, see [Using Weave Net](/site/using-weave.md).

###<a name="virtual-ethernet-switch"></a>Virtual Ethernet Switch
### <a name="virtual-ethernet-switch"></a>Virtual Ethernet Switch

Weave Net creates a virtual network that connects Docker containers
deployed across multiple hosts.
Expand All @@ -46,7 +46,7 @@ over Weave Net.
To start using Weave Net, see [Installing Weave Net](/site/installing-weave.md)
and [Using Weave Net](/site/using-weave.md).

###<a name="fast-data-path"></a>Fast Datapath
### <a name="fast-data-path"></a>Fast Datapath

Weave Net automatically chooses the fastest available method to
transport data between peers. The best performing of these
Expand All @@ -55,7 +55,7 @@ transport data between peers. The best performing of these
See [Using Fast Datapath](/site/using-weave/fastdp.md) and
[How Fast Datapath Works](/site/how-it-works/fastdp-how-it-works.md).

###<a name="docker"></a>Seamless Docker Integration (Weave Docker API Proxy)
### <a name="docker"></a>Seamless Docker Integration (Weave Docker API Proxy)

Weave Net includes a [Docker API Proxy](/site/weave-docker-api.md), which can be
used to start containers using the Docker [command-line interface](https://docs.docker.com/reference/commandline/cli/) or the [remote API](https://docs.docker.com/reference/api/docker_remote_api/), and attach them to the Weave network before they begin execution.
Expand All @@ -73,7 +73,7 @@ policy, are re-attached to the Weave network by the `Weave Docker API Proxy`.
See [Integrating Docker via the API Proxy](/site/weave-docker-api.md).


###<a name="plugin"></a>Weave Network Docker Plugin
### <a name="plugin"></a>Weave Network Docker Plugin

Weave Net can also be used as a [Docker plugin](https://docs.docker.com/engine/extend/plugins_network/). A Docker network
named `weave` is created by `weave launch`, which is used as follows:
Expand All @@ -88,14 +88,14 @@ when there are network connectivity problems.
See [Integrating Docker via the Network Plugin](/site/plugin.md) for more details.


###<a name="cniplugin"></a>Weave Network CNI Plugin
### <a name="cniplugin"></a>Weave Network CNI Plugin

Weave can be used as a plugin to systems that support the [Container Network Interface](https://github.com/appc/cni), such as Kubernetes and Mesosphere.

See [Integrating Kubernetes and Mesos via the CNI Plugin](/site/cni-plugin.md) for more details.


###<a name="addressing"></a>IP Address Management (IPAM)
### <a name="addressing"></a>IP Address Management (IPAM)

Containers are automatically allocated a unique IP address. To view the addresses allocated by Weave, run `weave ps`.

Expand All @@ -106,7 +106,7 @@ For a discussion on how Weave Net uses IPAM, see [Automatic IP Address Managemen
[the basics of IP addressing](/site/how-it-works/ip-addresses.md) for an explanation of addressing and private networks.


###<a name="naming-and-discovery"></a>Naming and Discovery
### <a name="naming-and-discovery"></a>Naming and Discovery

Named containers are automatically registered in [weaveDNS](/site/weavedns.md),
and are discoverable by using standard, simple name lookups:
Expand All @@ -119,7 +119,7 @@ WeaveDNS also supports [load balancing](/site/weavedns/load-balance-fault-weaved

See [Discovering Containers with WeaveDNS](/site/weavedns.md).

###<a name="application-isolation"></a>Application Isolation
### <a name="application-isolation"></a>Application Isolation

A single Weave network can host multiple, isolated
applications, with each application's containers being able
Expand All @@ -136,13 +136,13 @@ See [Isolating Applications](/site/using-weave/application-isolation.md)
for information on how to use the isolation-through-subnets
technique with Weave Net.

###<a name="network-policy"></a>Network Policy
### <a name="network-policy"></a>Network Policy

The Weave [Kubernetes Addon](/site/kube-addon.md) includes a network
policy controller that implements [Kubernetes Network
Policies](http://kubernetes.io/docs/user-guide/networkpolicies/).

###<a name="dynamic-network-attachment"></a>Dynamic Network Attachment
### <a name="dynamic-network-attachment"></a>Dynamic Network Attachment

At times, you may not know the application network for a
given container in advance. In these cases, you can take
Expand All @@ -153,7 +153,7 @@ See [Dynamically Attaching and Detaching Containers](/site/using-weave/dynamical
for details.


###<a name="security"></a>Security
### <a name="security"></a>Security

In keeping with our ease-of-use philosophy, the cryptography
in Weave Net is intended to satisfy a particular user requirement:
Expand All @@ -179,14 +179,14 @@ and, additionally in the case of encrypted fast datapath using [the cryptography
For information on how to secure your Docker network connections, see [Securing Connections Across Untrusted Networks](/site/using-weave/security-untrusted-networks.md) and for a more technical discussion on how Weave implements encryption see, [Weave Encryption](/site/how-it-works/encryption.md) and [How Weave Implements Encryption](/site/how-it-works/encryption-implementation.md).


###<a name="host-network-integration"></a>Host Network Integration
### <a name="host-network-integration"></a>Host Network Integration

Weave Net application networks can be integrated with a host's network, and establish connectivity between the host and
application containers anywhere.

See [Integrating with the Host Network](/site/using-weave/host-network-integration.md).

###<a name="services"></a>Managing Services: Exporting, Importing, Binding and Routing
### <a name="services"></a>Managing Services: Exporting, Importing, Binding and Routing

* **Exporting Services** - Services running in containers on a Weave network can be made accessible to the outside world or to other networks.
* **Importing Services** - Applications can run anywhere, and yet still be made accessible by specific application containers or services.
Expand All @@ -195,7 +195,7 @@ See [Integrating with the Host Network](/site/using-weave/host-network-integrati

See [Managing Services - Exporting, Importing, Binding and Routing](/site/using-weave/service-management.md) for instructions on how to manage services on a Weave container network.

###<a name="multi-cloud-networking"></a>Multi-Cloud Networking
### <a name="multi-cloud-networking"></a>Multi-Cloud Networking

Weave can network containers hosted in different cloud providers
or data centers. For example, you can run an application consisting
Expand All @@ -206,7 +206,7 @@ of containers that run on [Google Compute Engine](https://cloud.google.com/compu
See [Enabling Multi-Cloud networking and Muti-hop Routing](/site/using-weave/multi-cloud-multi-hop.md).


###<a name="multi-hop-routing"></a>Multi-Hop Routing
### <a name="multi-hop-routing"></a>Multi-Hop Routing

A network of containers across more than two hosts can be established
even when there is only partial connectivity between the hosts. Weave Net
Expand All @@ -216,14 +216,14 @@ of connected hosts between them.
See [Enabling Multi-Cloud networking and Multi-hop Routing](/site/using-weave/multi-cloud-multi-hop.md).


###<a name="dynamic-topologies"></a>Dynamic Topologies
### <a name="dynamic-topologies"></a>Dynamic Topologies

Hosts can be added to or removed from a Weave network without stopping
or reconfiguring the remaining hosts. See [Adding and Removing Hosts
Dynamically.](/site/using-weave/finding-adding-hosts-dynamically.md)


###<a name="container-mobility"></a>Container Mobility
### <a name="container-mobility"></a>Container Mobility

Containers can be moved between hosts without requiring any
reconfiguration or, in many cases, restarts of other containers.
Expand All @@ -233,7 +233,7 @@ with the same IP address as it was given originally.
See [Managing Services - Exporting, Importing, Binding and Routing](/site/using-weave/service-management.md), in particular, Routing Services for more information on container mobility.


###<a name="fault-tolerance"></a>Fault Tolerance
### <a name="fault-tolerance"></a>Fault Tolerance

Weave Net peers continually exchange topology information, and
monitor and (re)establish network connections to other peers.
Expand Down
12 changes: 6 additions & 6 deletions site/how-it-works/encryption-implementation.md
Expand Up @@ -13,7 +13,7 @@ This section describes some details of Weave Net's built-in



####<a name="ephemeral-key"></a>Establishing the Ephemeral Session Key
#### <a name="ephemeral-key"></a>Establishing the Ephemeral Session Key

For every connection between peers, a fresh public/private key pair is
created at both ends, using NaCl's `GenerateKey` function. The public
Expand Down Expand Up @@ -48,7 +48,7 @@ not be able to form valid ephemeral session keys.
The same ephemeral session key is used for both TCP and UDP traffic
between two peers.

###<a name="csprng"></a> Key Generation and The Linux CSPRNG
### <a name="csprng"></a> Key Generation and The Linux CSPRNG

Generating fresh keys for every connection
provides forward secrecy at the cost of placing a demand on the Linux
Expand Down Expand Up @@ -84,7 +84,7 @@ Weave Net's demand on `/dev/urandom` is causing you problems with blocking
`/dev/random` reads, please get in touch with us - we'd love to hear
about your use case.

####<a name="tcp"></a>Encypting and Decrypting TCP Messages
#### <a name="tcp"></a>Encypting and Decrypting TCP Messages

TCP connection are only used to exchange topology information between
peers, via a message-based protocol. Encryption of each message is
Expand All @@ -105,9 +105,9 @@ polarity. As a result the receiver will only be able to decrypt a
message if it has the expected sequence number. This prevents replay
attacks.

####<a name="udp"></a>Encrypting and Decrypting UDP Packets
#### <a name="udp"></a>Encrypting and Decrypting UDP Packets

#####Sleeve
##### Sleeve

UDP connections carry captured traffic between peers. For a UDP packet
sent between peers that are using crypto, the encapsulation looks as
Expand Down Expand Up @@ -181,7 +181,7 @@ contained in the set. The window spans at least 2^20 message sequence
numbers, and hence any re-ordering between the most recent ~1 million
messages is handled without dropping messages.

#####Fast Datapath
##### Fast Datapath

Encryption in fastdp uses [the ESP protocol of IPsec](https://tools.ietf.org/html/rfc2406)
in the transport mode. Each VXLAN packet is encrypted with
Expand Down
8 changes: 4 additions & 4 deletions site/how-it-works/network-topology.md
Expand Up @@ -11,7 +11,7 @@ This section contains the following topics:
* [What Happens When The Topology is Out of Date?](#out-of-date-topology)


###<a name="topology"></a>Communicating Topology Among Peers
### <a name="topology"></a>Communicating Topology Among Peers

Topology messages capture which peers are connected to other peers.
Weave peers communicate their knowledge of the topology
Expand Down Expand Up @@ -49,7 +49,7 @@ improved update containing them is gossiped.
If the update mentions a peer that the receiver does not know, then
the entire update is ignored.

####<a name="messages"></a>How Messages Are Formed
#### <a name="messages"></a>How Messages Are Formed

Every gossip message is structured as follows:

Expand Down Expand Up @@ -120,14 +120,14 @@ which the structure is:
| Connection N: Established |
+-----------------------------------+

####<a name="removing-peers"></a>Removing Peers
#### <a name="removing-peers"></a>Removing Peers

If a peer, after receiving a topology update, sees that another peer
no longer has any connections within the network, it drops all
knowledge of that second peer.


####<a name="out-of-date-topology"></a>What Happens When The Topology is Out of Date?
#### <a name="out-of-date-topology"></a>What Happens When The Topology is Out of Date?

The propagation of topology changes to all peers is not instantaneous.
Therefore, it is very possible for a node elsewhere in the network to have an
Expand Down
6 changes: 3 additions & 3 deletions site/installing-weave.md
Expand Up @@ -20,13 +20,13 @@ After your VM is setup with Docker Machine, Weave Net can be launched directly f

With Weave Net downloaded onto your VMs or hosts, you are ready to launch a Weave network and deploy apps onto it. See [Using Weave Net](/site/using-weave.md).

###Quick Start Screencast
### Quick Start Screencast

<a href="https://youtu.be/kihQCCT1ykE" target="_blank">
<img src="hello-screencast.png" alt="Click to watch the screencast" />
</a>

###Checkpoint
### Checkpoint

Weave Net [periodically contacts Weaveworks servers for available
versions](https://github.com/weaveworks/go-checkpoint). New versions
Expand All @@ -45,7 +45,7 @@ To disable this check, run the following before launching Weave Net:

export CHECKPOINT_DISABLE=1

###Guides for Specific Platforms
### Guides for Specific Platforms

CoreOS users see [here](/guides/networking-docker-containers-with-weave-on-coreos/) for an example of installing Weave using cloud-config.

Expand Down
22 changes: 11 additions & 11 deletions site/introducing-weave.md
Expand Up @@ -9,52 +9,52 @@ Weave Net creates a virtual network that connects Docker containers across multi
Services provided by application containers on the weave network can be exposed to the outside world, regardless of where they are running. Similarly, existing internal systems can be opened to accept connections from application containers irrespective of their location.


##Why Weave?
## Why Weave?

###Hassle Free Configuration
### Hassle Free Configuration

Weave Net simplifies setting up a container network. Because containers on a Weave network use standard port numbers, (for example MySQL’s default is port 3306), managing microservices is straightforward. Every container can find the IP of any other container using a simple DNS query on the container's name, and it can also communicate directly without NAT, without using port mappings or complicated ambassador linking. And best of all deploying a Weave container network requires zero changes to your application’s code.

![Weave Net Encapsulation](weave-net-overview.png)

###Service Discovery
### Service Discovery

Weave Net implements service discovery by providing a fast "micro DNS" server at each node. You simply name containers and everything 'just works', including load balancing across multiple containers with the same name.

###No External Cluster Store Required
### No External Cluster Store Required

All other Docker networking plugins, including Docker's own "Overlay" driver, require that you set up Docker with a cluster store – a central database like Consul or Zookeeper – before you can even use them. Besides being difficult to set up, maintain and manage, every Docker host must also be in constant contact with the cluster store: if you lose the connection, even temporarily, then you cannot start or stop any containers.

Weave Net is bundled with a Docker Network plugin that doesn't require an external cluster store. You can get started right away and you can start and stop containers even when there are network connectivity problems.
For information about the Weave Docker Plugin, see [How The Weave Network Plugin Works](/site/plugin/plugin-how-it-works.md).

###Operates in Partially Connected Networks
### Operates in Partially Connected Networks

Weave Net can forward traffic between nodes, and it works even if the mesh network is only partially connected. This means that you can have a mix of legacy systems and containerized apps and still use Weave Net to keep everything in communication.

###Weave Net is Fast
### Weave Net is Fast

Weave Net automatically chooses the fastest path between two hosts, offering near native throughput and latency, all without your intervention.

See [How Fast Datapath Works](/site/using-weave/fastdp.md) for more information.

###Network Operations Friendly
### Network Operations Friendly

Weave uses industry-standard VXLAN encapsulation between hosts. This means you can continue using your favorite packet analyzing tools, such as ‘Wireshark’ to inspect and troubleshoot protocols.

###Weave Net is Secure
### Weave Net is Secure

Weave Net traverses firewalls without requiring a TCP add-on. You can encrypt your traffic, which allows you to connect to apps on hosts even across an untrusted network.

###Multicast Support
### Multicast Support

Multicast addressing and routing is fully supported in Weave Net. Data can be sent to one multicast address and it will be automatically broadcast to all of its recipients.

###NAT Traversal
### NAT Traversal

With Weave Net, deploy your applications - whether peer-to-peer file sharing, voice over IP or anything else - and take advantage of built-in NAT traversal. With Weave your app is portable, containerized and with its standardized approach to networking it gives you one less thing to worry about.

###Run with Anything: Kubernetes, Mesos, Amazon ECS, ...
### Run with Anything: Kubernetes, Mesos, Amazon ECS, ...

Weave Net is a good choice if you want one tool for everything. For example: In addition to Docker plugins, you can also use Weave as a Kubernetes plugin. You can also use Weave with Amazon ECS or with Mesos and Marathon.
Refer to our Getting Started and Integration Guides for more information.
Expand Down
2 changes: 1 addition & 1 deletion site/ipam.md
Expand Up @@ -112,7 +112,7 @@ peers. This can be useful to add peers to an existing fixed cluster
(for example in response to a scale-out event) without worrying about
adjusting initial peer counts accordingly.

####<a name="quorum"></a> `--ipalloc-init consensus=` and How Quorum is Achieved
#### <a name="quorum"></a> `--ipalloc-init consensus=` and How Quorum is Achieved

Normally it isn't a problem to over-estimate the value supplied to
`--ipalloc-init consensus=`, but if you supply a number that is too
Expand Down

0 comments on commit 1b7c386

Please sign in to comment.