3.17. Managing Kubernetes clusters¶
3.17.1. vinfra service compute k8saas create¶
Create a new Kubernetes cluster:
usage: vinfra service compute k8saas create [--master-node-count <count>]
                                            [--node-count <count>]
                                            [--volume-storage-policy <policy>]
                                            [--kubernetes-version <version>]
                                            --master-flavor <flavor> --flavor
                                            <flavor> [--volume-size <size>]
                                            --external-network <network>
                                            [--network <network>] --key-name <key-name>
                                            [--use-floating-ip <use-floating-ip>]
                                            [--containers-network-cidr <cidr>]
                                            [--containers-network-node-subnet-prefix-length
                                            <prefix_length>] [--service-network-cidr <cidr>]
                                            [--dns-service-ip <ip>] <name>
<name>- Kubernetes cluster name
 --master-node-count <count>- The amount of master nodes in the Kubernetes cluster
 --node-count <count>- The amount of worker nodes in the Kubernetes cluster
 --volume-storage-policy <policy>- The ID or name of the storage policy for the volume where containers will reside.
 --kubernetes-version <version>- Kubernetes version
 --master-flavor <flavor>- The flavor to use for Kubernetes master nodes.
 --flavor <flavor>- The flavor to use for Kubernetes worker nodes.
 --volume-size <size>- The size of the storage volume on each Kubernetes node
 --external-network <network>- The ID or name of a physical network that will provide Internet access to Kubernetes nodes.
 --network <netwlork>- The ID or name of a virtual network that will provide networking between Kubernetes nodes.
 --key-name <key-name>- The key pair to use for accessing the Kubernetes nodes.
 --use-floating-ip <use-floating-ip>- Assign floating IP addresses to master and worker nodes (
trueorfalse). --containers-network-cidr <cidr>- Container network range in CIDR notation
 --containers-network-node-subnet-prefix-length <prefix_length>- The prefix length of a container subnet allocated to each Kubernetes node
 --service-network-cidr <cidr>- Kubernetes service network range in CIDR notation
 --dns-service-ip <ip>- DNS service IP address
 
The prerequisites for creating a Kubernetes cluster are:
- The Kubernetes-as-a-service component. It can be deployed along with the compute cluster or later (see Creating the Compute Cluster or Managing Add-On Services).
 - A virtual network that will interconnect Kubernetes nodes. It needs to have a gateway and a DNS server specified.
 - An SSH key that will be installed on both the master and worker nodes.
 - Enough resources for all of the Kubernetes nodes, taking their flavors into account.
 
Example:
# vinfra service compute k8saas create --master-node-count 1 --node-count 3 \
--volume-storage-policy default --kubernetes-version v1.15.6 --master-flavor medium \
--flavor small --volume-size 10 --external-network public1 --network private1 \
--key-name key1 --use-floating-ip true k8s1 --vinfra-username user1 \
--vinfra-password password --vinfra-domain domain1 --vinfra-project project1
+----------------------------------+--------------------------------------+
| Field                            | Value                                |
+----------------------------------+--------------------------------------+
| boot_volume_size                 | 10                                   |
| boot_volume_storage_policy       | default                              |
| containers_volume_size           | 10                                   |
| containers_volume_storage_policy | default                              |
| create_timeout                   | 60                                   |
| external_network_id              | 7006065f-9067-4aed-b888-d89baa7004b8 |
| id                               | c0754d99-6066-4675-8062-e62602939cf3 |
| key_name                         | key1                                 |
| master_flavor                    | medium                               |
| master_node_count                | 1                                    |
| name                             | k8s1                                 |
| network_id                       | d037623b-0db7-40c2-b38a-9ac34fbd1cc5 |
| project_id                       | c734b9832e9540bd8f79bc2272c167e6     |
| status                           | CREATING                             |
| user_id                          | c2cba773dc824125b07720744d0e49e2     |
| worker_pools                     | - flavor: small                      |
|                                  |   node_count: 3                      |
+----------------------------------+--------------------------------------+
This command, run as user1 from domain1 > project1, starts creation of the Kubernetes cluster k8s1 with these parameters:
- Kubernetes version 1.15.6
 - 1 master node based on the 
mediumflavor and 3 worker nodes based on thesmallflavor - 10 GB storage volumes covered by the default storage policy
 - Virtual network 
private1that will connect to the Internet via the physical networkpublic1 - Floating IP addresses for each node picked from the specified physical network
 - Public SSH key 
key1 
3.17.2. vinfra service compute k8saas list¶
List Kubernetes clusters:
usage: vinfra service compute k8saas list [--long]
--long- Enable access and listing of all fields of objects.
 
Example:
# vinfra service compute k8saas list
+--------------------------------------+------+--------+
| id                                   | name | status |
+--------------------------------------+------+--------+
| f3e71ee8-8583-4b6a-abce-0132818f5108 | k8s1 | ACTIVE |
+--------------------------------------+------+--------+
This command displays the list of Kubernetes clusters.
3.17.3. vinfra service compute k8saas config¶
Print Kubernetes cluster configuration (must be run as the user who created the Kubernetes cluster):
usage: vinfra service compute k8saas config <cluster>
cluster- Cluster ID or name
 
Example:
# vinfra service compute k8saas config k8s1 --vinfra-domain domain1 \
--vinfra-project project1 --vinfra-username user1 --vinfra-password password \
> kubeconfig
This command prints the configuration of the Kubernetes cluster k8s1 to the file kubeconfig.
3.17.4. vinfra service compute k8saas show¶
Display Kubernetes cluster details:
usage: vinfra service compute k8saas show <cluster>
cluster- Cluster ID or name
 
Example:
# vinfra service compute k8saas show k8s1
+----------------------------------+--------------------------------------+
| Field                            | Value                                |
+----------------------------------+--------------------------------------+
| boot_volume_size                 | 10                                   |
| boot_volume_storage_policy       | default                              |
| containers_volume_size           | 10                                   |
| containers_volume_storage_policy | default                              |
| create_timeout                   | 60                                   |
| external_network_id              | 7006065f-9067-4aed-b888-d89baa7004b8 |
| id                               | c0754d99-6066-4675-8062-e62602939cf3 |
| key_name                         | key1                                 |
| master_flavor                    | medium                               |
| master_node_count                | 1                                    |
| name                             | k8s1                                 |
| network_id                       | d037623b-0db7-40c2-b38a-9ac34fbd1cc5 |
| project_id                       | c734b9832e9540bd8f79bc2272c167e6     |
| stack_id                         | 3ef9ec9d-fde4-4358-bdb6-91205cd8ca52 |
| status                           | ACTIVE                               |
| user_id                          | c2cba773dc824125b07720744d0e49e2     |
| version                          | v1.15.6                              |
| worker_pools                     | - flavor: small                      |
|                                  |   node_count: 3                      |
+----------------------------------+--------------------------------------+
This command displays the details of the Kubernetes cluster k8s1.
3.17.5. vinfra service compute k8saas set¶
Modify Kubernetes cluster parameters (must be run as the user who created the Kubernetes cluster):
usage: vinfra service compute k8saas set [--node-count <count>]
                                         [--volume-storage-policy <policy>]
                                         <cluster>
cluster- Cluster ID or name
 --node-count <count>- The amount of worker nodes in the Kubernetes cluster
 --volume-storage-policy <policy>- The ID or name of the storage policy for the volume where containers will reside.
 
Example:
# vinfra service compute k8saas set --node-count 5 k8s1 \
--vinfra-domain domain1 --vinfra-project project1 \
--vinfra-username user1 --vinfra-password password
+----------------------------------+--------------------------------------+
| Field                            | Value                                |
+----------------------------------+--------------------------------------+
| boot_volume_size                 | 10                                   |
| boot_volume_storage_policy       | default                              |
| containers_volume_size           | 10                                   |
| containers_volume_storage_policy | default                              |
| create_timeout                   | 60                                   |
| external_network_id              | 7006065f-9067-4aed-b888-d89baa7004b8 |
| id                               | c0754d99-6066-4675-8062-e62602939cf3 |
| key_name                         | key1                                 |
| master_flavor                    | medium                               |
| master_node_count                | 1                                    |
| name                             | k8s1                                 |
| network_id                       | d037623b-0db7-40c2-b38a-9ac34fbd1cc5 |
| project_id                       | c734b9832e9540bd8f79bc2272c167e6     |
| stack_id                         | 3ef9ec9d-fde4-4358-bdb6-91205cd8ca52 |
| status                           | ACTIVE                               |
| user_id                          | c2cba773dc824125b07720744d0e49e2     |
| version                          | v1.15.6                              |
| worker_pools                     | - flavor: small                      |
|                                  |   node_count: 3                      |
+----------------------------------+--------------------------------------+
This command starts configuring the Kubernetes cluster k8s1 to bring the number of worker nodes to 5.
3.17.6. vinfra service compute k8saas delete¶
Delete a Kubernetes cluster:
usage: vinfra service compute k8saas delete <cluster>
cluster- Cluster ID or name
 
Example:
# vinfra service compute k8saas delete k8s1
Operation accepted.
This command deletes the Kubernetes cluster k8s1.