2.3. Configuring the Network Protocols

Documentation

VoltDB Home » Documentation » VoltDB Kubernetes Administrator's Guide

2.3. Configuring the Network Protocols

Kubernetes has the ability to configure the networks serving your pods using IPv4, IPv6, or both (what is known as a dual stack). How the network protocols are configured differs depending on the flavor of Kubernetes and the hosting service you use. But once established, Volt can use whichever protocol is available. In the case of a dual stack, Volt will choose one or the other protocol for the individual interfaces as it needs.

Since XDCR involves communication between clusters, it is important you know which protocol is in use so you can configure the XDCR connections. So the Volt Helm chart provides the .ipFamilies property so you can choose which protocol to use for XDCR communication. There are two flavors of the .ipFamilies property, depending on how you are configuring XDCR. If you are establishing an XDCR environment within a single namespace (as described in Section 8.4, “Configuring XDCR in Local Namespaces”), you set the IP version in the cluster.serviceSpec.dr.ipFamilies property, as in the following example that sets the IP family to IPv6:

cluster:
  serviceSpec:
    dr:
      enabled: true
      ipFamilies:
        - IPv6

If you are configuring per pod XDCR, you select the IP version in the cluster.serviceSpec.perpod.dr.ipFamilies property; as in this example:

cluster:
  serviceSpec:
    perpod:
      dr:
        enabled: true
        ipFamilies:
          - IPv6

It is possible to customize the network environment even further using third-party networking services, such as Multus — which is a container networking service (CNI) plugin that gives pods access to multiple networks. Again, how you configure third-party services is beyond the scope of this manual and differs from one service to the next. However, these services provide instructions to the pods through annotations that you include in your Helm chart. Specifically, Volt supports annotation properties that affect the XDCR settings, which Multus can use to specify alternate networks, as in the following example:

cluster:
  ServiceSpec:
     dr:
        annotations: 
           aviinfrasetting.ako.vmware.com/name: my-infra-sets
  clusterSpec:
     additionalAnnotations:
       k8s.v1.cni.cncf.io/networks: my-custom-network

See the Multus documentation for more information.