Note! If the parameters provided below are changed, the existing Machines are NOT redeployed (new machines will be created with the updated parameters). Redeployment is only performed when NodeGroup and YandexInstanceClass are changed. Details in the node-manager module’s documentation.

The module has 3 alerts.

Storage

The module automatically creates StorageClasses covering all available disks in Yandex:

Type StorageClass Name Comment
network-hdd network-hdd  
network-ssd network-ssd  
network-ssd-nonreplicated network-ssd-nonreplicated  
network-ssd-io-m3 network-ssd-io-m3 Disk size must be a multiple of 93 GB.

You can filter out the unnecessary StorageClasses via the exclude parameter.

Important information concerning the increase of the PVC size

Due to the nature of volume-resizer, CSI, and Yandex Cloud API, you have to do the following after increasing the PVC size:

  1. On the node where the Pod is located, run the kubectl cordon <node_name> command.
  2. Delete the Pod.
  3. Make sure that the resize was successful. The PVC object must not have the Resizing state.

    The FileSystemResizePending state is OK.

  4. On the node where the Pod is located, run the kubectl uncordon <node_name> command.

LoadBalancer

The module subscribes to Service objects of the LoadBalancer type and creates the corresponding NetworkLoadBalancer and TargetGroup in Yandex Cloud.

For more information, see the Kubernetes Cloud Controller Manager for Yandex Cloud documentation.

The module is configured using the ModuleConfig custom resource named cloud-provider-yandex (learn more about setting up Deckhouse…).

Example of the ModuleConfig/cloud-provider-yandex resource for configuring the module:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: cloud-provider-yandex
spec:
  version: 1
  enabled: true
  settings: # <-- Module parameters from the "Parameters" section below.

Parameters

Schema version: 1

  • additionalExternalNetworkIDs
    array of strings

    A list of Network IDs that will be considered ExternalIP when listing Node addresses.

    Default: []

  • storageClass
    object
    • storageClass.default
      string

      The name of StorageClass that will be used by default in the cluster.

      If the parameter is omitted, the default StorageClass will be one of the following:

      • An arbitrary StorageClass present in the cluster that has the default annotation.
      • The first (in lexicographic order) StorageClass of those created by the module.

      Example:

      default: network-hdd
      
    • storageClass.exclude
      array of strings

      A list of StorageClass names (or regex expressions for names) to exclude from the creation in the cluster;

      Example:

      exclude:
      - network-ssd-.*
      - network-hdd