Skip to content

Weave

Weave

⚠ The Weave CNI is not supported for Kubernetes 1.23 or later.

Installation

To use the Weave, specify the following in the cluster spec.

  networking:
    weave: {}

The following command sets up a cluster using Weave.

export ZONES=mylistofzone
kops create cluster \
  --zones $ZONES \
  --networking weave \
  --yes \
  --name myclustername.mydns.io

Configuring Weave MTU

The Weave MTU is configurable by editing the cluster and setting mtu option in the weave configuration. AWS VPCs support jumbo frames, so on cluster creation kOps sets the weave MTU to 8912 bytes (9001 minus overhead).

spec:
  networking:
    weave:
      mtu: 8912

Configuring Weave Net EXTRA_ARGS

Weave allows you to pass command line arguments to weave by adding those arguments to the EXTRA_ARGS environmental variable. This can be used for debugging or for customizing the logging level of weave net.

spec:
  networking:
    weave:
      netExtraArgs: "--log-level=info"

Note that it is possible to break the cluster networking if flags are improperly used and as such this option should be used with caution.

Configuring Weave NPC EXTRA_ARGS

Weave-npc (the Weave network policy controller) allows you to customize arguments of the running binary by setting the EXTRA_ARGS environmental variable. This can be used for debugging or for customizing the logging level of weave npc.

spec:
  networking:
    weave:
      npcExtraArgs: "--log-level=info"

Note that it is possible to break the cluster networking if flags are improperly used and as such this option should be used with caution.

Configuring Weave network encryption

The Weave network encryption is configurable by creating a weave network secret password. Weaveworks recommends choosing a secret with at least 50 bits of entropy. If no password is supplied, kOps will generate one at random.

cat /dev/urandom | tr -dc A-Za-z0-9 | head -c9 > password
kops create secret weavepassword -f password
kops update cluster

Since unencrypted nodes will not be able to connect to nodes configured with encryption enabled, this configuration cannot be changed easily without downtime.

Override Weave image tag

Introduced Minimum K8s Version
kOps 1.19 k8s 1.12

Weave networking comes with default specs and version which are the recommended ones, already configured by kOps . In case users want to override Weave image tag, thus default version, specs should be customized as follows:

spec:
  networking:
    weave:
      version: "2.7.0"

Override default CPU/Memory resources

Weave networking comes with default specs related to CPU/Memory requests and limits, already configured by kOps. In case users want to override default values, specs should be customized as follows:

spec:
  networking:
    weave:
      memoryRequest: 300Mi
      cpuRequest: 100m
      memoryLimit: 300Mi
      cpuLimit: 100m
      npcMemoryRequest: 300Mi
      npcCPURequest: 100m
      npcMemoryLimit: 300Mi
      npcCPULimit: 100m

NOTE: These are just example values and not necessarily the recommended values. You should override the default values according to your needs.