CaaS

Overview

This plugin deploys Magnum, the OpenStack CaaS service.

Note: This feature is currently only supported in channel 2023.2/edge of the openstack snap.

Enabling CaaS

To enable CaaS, run the following command:

sunbeam enable caas

Use the OpenStack CLI to manage container infrastructures. See the upstream Magnum documentation for details.

Note: The Secrets and Orchestration plugins are dependencies of the CaaS plugin. Make sure to enable them.

When using the CaaS plugin in conjunction with the Load Balancer plugin, you are subject to the same limitations as the latter plugin. In particular, the OVN provider only supports the SOURCE_IP_PORT load balancing algorithm.

Configuring CaaS

To configure the cloud for CaaS usage, run the following command:

sunbeam configure caas

Disabling CaaS

To disable CaaS, run the following command:

sunbeam disable caas

Usage

Note: The following example requires the loadbalancer plugin to be enabled. The user issuing the commands also must have the admin role.

Create a cluster template using the following command:

openstack coe cluster template \
   create k8s-cluster-template-ovn \
   --image fedora-coreos-38 \
   --keypair sunbeam \
   --external-network external-network \
   --flavor m1.small \
   --docker-volume-size 15 \
   --master-lb-enabled \
   --labels octavia_provider=ovn \
   --labels octavia_lb_algorithm=SOURCE_IP_PORT \
   --network-driver flannel \
   --coe kubernetes

Sample output:

Request to create cluster template k8s-cluster-template-ovn accepted
+-----------------------+-----------------------------------------------------------------------+
| Field                 | Value                                                                 |
+-----------------------+-----------------------------------------------------------------------+
| insecure_registry     | -                                                                     |
| labels                | {'octavia_provider': 'ovn', 'octavia_lb_algorithm': 'SOURCE_IP_PORT'} |
| updated_at            | -                                                                     |
| floating_ip_enabled   | True                                                                  |
| fixed_subnet          | -                                                                     |
| master_flavor_id      | -                                                                     |
| uuid                  | 4d675c2b-c4e6-4877-a949-987195125fbc                                  |
| no_proxy              | -                                                                     |
| https_proxy           | -                                                                     |
| tls_disabled          | False                                                                 |
| keypair_id            | sunbeam                                                               |
| public                | False                                                                 |
| http_proxy            | -                                                                     |
| docker_volume_size    | 15                                                                    |
| server_type           | vm                                                                    |
| external_network_id   | external-network                                                      |
| cluster_distro        | fedora-coreos                                                         |
| image_id              | fedora-coreos-38                                                      |
| volume_driver         | -                                                                     |
| registry_enabled      | False                                                                 |
| docker_storage_driver | overlay2                                                              |
| apiserver_port        | -                                                                     |
| name                  | k8s-cluster-template-ovn                                              |
| created_at            | 2023-10-16T09:45:24.751362+00:00                                      |
| network_driver        | flannel                                                               |
| fixed_network         | -                                                                     |
| coe                   | kubernetes                                                            |
| flavor_id             | m1.small                                                              |
| master_lb_enabled     | True                                                                  |
| dns_nameserver        | 8.8.8.8                                                               |
| hidden                | False                                                                 |
| tags                  | -                                                                     |
+-----------------------+-----------------------------------------------------------------------+

Create a Kubernetes cluster using the following command:

openstack coe cluster create --cluster-template k8s-cluster-template-ovn \
   --node-count 1 --timeout 60 sunbeam-k8s-ovn

Sample output:

Request to create cluster 27eba31c-66a5-4efe-8373-49dd186567e6 accepted

Check cluster list status using the following command:

openstack coe cluster list

+--------------------------------------+-----------------+---------+------------+--------------+-----------------+---------------+
| uuid                                 | name            | keypair | node_count | master_count | status          | health_status |
+--------------------------------------+-----------------+---------+------------+--------------+-----------------+---------------+
| 27eba31c-66a5-4efe-8373-49dd186567e6 | sunbeam-k8s-ovn | sunbeam |          1 |            1 | CREATE_COMPLETE | HEALTHY       |
+--------------------------------------+-----------------+---------+------------+--------------+-----------------+---------------+

Note: You may need to wait a few minutes before the cluster is ready.

Check cluster status using the following command:

openstack coe cluster show sunbeam-k8s-ovn

+----------------------+---------------------------------------------------------------------------------------------------------------------------+
| Field                | Value                                                                                                                     |
+----------------------+---------------------------------------------------------------------------------------------------------------------------+
| status               | CREATE_COMPLETE                                                                                                           |
| health_status        | HEALTHY                                                                                                                   |
| cluster_template_id  | 4d675c2b-c4e6-4877-a949-987195125fbc                                                                                      |
| node_addresses       | ['10.20.20.227']                                                                                                          |
| uuid                 | 27eba31c-66a5-4efe-8373-49dd186567e6                                                                                      |
| stack_id             | a4221337-395e-4328-a878-de3f08a29bb2                                                                                      |
| status_reason        | None                                                                                                                      |
| created_at           | 2023-10-16T11:11:37+00:00                                                                                                 |
| updated_at           | 2023-10-16T11:18:24+00:00                                                                                                 |
| coe_version          | v1.18.16                                                                                                                  |
| labels               | {'octavia_provider': 'ovn', 'octavia_lb_algorithm': 'SOURCE_IP_PORT'}                                                     |
| labels_overridden    | {}                                                                                                                        |
| labels_skipped       | {}                                                                                                                        |
| labels_added         | {}                                                                                                                        |
| fixed_network        | None                                                                                                                      |
| fixed_subnet         | None                                                                                                                      |
| floating_ip_enabled  | True                                                                                                                      |
| faults               |                                                                                                                           |
| keypair              | sunbeam                                                                                                                   |
| api_address          | https://10.20.20.215:6443                                                                                                 |
| master_addresses     | ['10.20.20.52']                                                                                                           |
| master_lb_enabled    | True                                                                                                                      |
| create_timeout       | 60                                                                                                                        |
| node_count           | 1                                                                                                                         |
| discovery_url        | https://discovery.etcd.io/e98c17817a572118135f4cfa60397792                                                                |
| docker_volume_size   | 15                                                                                                                        |
| master_count         | 1                                                                                                                         |
| container_version    | 1.12.6                                                                                                                    |
| name                 | sunbeam-k8s-ovn                                                                                                           |
| master_flavor_id     | None                                                                                                                      |
| flavor_id            | m1.small                                                                                                                  |
| health_status_reason | {'sunbeam-k8s-ovn-fvwzbaayuols-master-0.Ready': 'True', 'sunbeam-k8s-ovn-fvwzbaayuols-node-0.Ready': 'True', 'api': 'ok'} |
| project_id           | cf669675a9784b84805a5aa42afb21fe                                                                                          |
+----------------------+---------------------------------------------------------------------------------------------------------------------------+

Access your Kubernetes cluster using the following commands:

mkdir config-dir
openstack coe cluster config sunbeam-k8s-ovn --dir config-dir/
export KUBECONFIG=/home/ubuntu/config-dir/config
kubectl get pods -A

NAMESPACE     NAME                                         READY   STATUS    RESTARTS   AGE
kube-system   coredns-56448757b9-km7qj                     1/1     Running   0          4m43s
kube-system   coredns-56448757b9-w46cq                     1/1     Running   0          4m43s
kube-system   dashboard-metrics-scraper-67f57ff746-6phd6   1/1     Running   0          4m40s
kube-system   k8s-keystone-auth-4sqx8                      1/1     Running   0          4m39s
kube-system   kube-dns-autoscaler-6d5b5dc777-wbt4w         1/1     Running   0          4m42s
kube-system   kube-flannel-ds-c8dqt                        1/1     Running   0          2m44s
kube-system   kube-flannel-ds-t5kc8                        1/1     Running   0          4m42s
kube-system   kubernetes-dashboard-7b88d986b4-2qgm5        1/1     Running   0          4m40s
kube-system   magnum-metrics-server-6c4c77844b-p2ws4       1/1     Running   0          4m34s
kube-system   npd-h7xsg                                    1/1     Running   0          2m23s
kube-system   openstack-cloud-controller-manager-j8l4l     1/1     Running   0          4m43s
1 Like