Skip to content

Commit 9b51bde

Browse files
nvazquezDaanHooglandPearl1594
authored
Apply suggestions from code review
Co-authored-by: dahn <[email protected]> Co-authored-by: Pearl Dsilva <[email protected]>
1 parent 7b04580 commit 9b51bde

File tree

1 file changed

+26
-20
lines changed

1 file changed

+26
-20
lines changed

source/plugins/cloudstack-kubernetes-service.rst

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,15 @@ CloudStack Kubernetes Service
1515

1616
The Kubernetes Service plugin adds Kubernetes integration to CloudStack. The plugin is disabled by default and an admin can enable it using a Global Setting. It enables users to run containerized services using Kubernetes clusters.
1717

18-
With CoreOS having reached EOL, from 4.16 the Kubernetes Service Plugin will use the existing SystemVM Template by default for deploying kubernetes clusters. For installation of Kubernetes binaries on the cluster nodes, a binaries ISO is used for each Kubernetes version to be made available via CloudStack. This allows faster, offline installation of Kubernetes binaries and docker images along with support for adding multiple versions of Kubernetes for upgrades and running different clusters.
18+
With CoreOS having reached EOL, from 4.16 on the Kubernetes Service Plugin will use
19+
the existing SystemVM Template by default for deploying kubernetes clusters. For
20+
installation of Kubernetes binaries on the cluster nodes, a binaries ISO is used for each
21+
Kubernetes version to be made available via CloudStack. This allows faster, offline
22+
installation of Kubernetes binaries and docker images along with support for adding
23+
multiple versions of Kubernetes for upgrades and running different clusters.
1924

2025
.. note::
21-
Since version 4.21.0 users can choose different templates and service offerings for different types of nodes (worker, control, etcd nodes) for deploying Kubernetes clusters. The templates must be previously registered selecting the 'For CKS' option.
26+
From version 4.21.0, users can choose different templates and service offerings for different types of nodes (worker, control, etcd nodes) for deploying Kubernetes clusters. The templates must be previously registered selecting the 'For CKS' option.
2227
See :ref:`flexible-kubernetes-clusters`.
2328

2429
For deployment and setup of Kubernetes on cluster nodes, the plugin uses the Kubernetes tool, 'kubeadm'. kubeadm is the command-line tool for easily provisioning a secure Kubernetes cluster on top of physical or cloud servers or Instances. Under the hood, control node(s) of the cluster starts a Kubernetes cluster using kubeadm init command with a custom token, and worker nodes join this Kubernetes cluster using kubeadm join command with the same token. More about kubeadm here: https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/. Weave Net CNI provider plugin is used for cluster networking. More about Weave Net provide plugin here: https://www.weave.works/docs/net/latest/kubernetes/kube-addon/.
@@ -89,15 +94,16 @@ Eg:
8994
From ACS 4.16 onwards, Kubernetes versions >= 1.20.x are only supported (https://endoflife.date/kubernetes).
9095

9196
**NOTE:**
92-
From ACS 4.21 onwards, it is possible specify the version for etcd binaries on the create-kubernetes-binaries-iso.sh script as an optional parameter ETCD_VERSION. When the ETCD_VERSION parameter is set, the specified etcd version binaries are downloaded and stored on the /etcd directory on the Kubernetes ISO.
97+
From ACS 4.21 onwards, it is possible to specify the version for etcd binaries in the create-kubernetes-binaries-iso.sh script as an optional parameter - ETCD_VERSION. When the ETCD_VERSION parameter is set, the specified etcd version binaries are downloaded and stored in the Kubernetes ISO.
9398

9499
Example for etcd version 3.5.1:
95100

96101
.. parsed-literal::
97102
98103
# ./create-kubernetes-binaries-iso.sh ./ 1.27.2 1.3.0 1.27.0 https://raw.githubusercontent.com/weaveworks/weave/master/prog/weave-kube/weave-daemonset-k8s-1.11.yaml https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml setup-v1.27.2 3.5.1
99104
100-
The Kubernetes ISOs generated with an specific etcd version are required to create separate etcd nodes on Kubernetes clusters. See :ref:`flexible-kubernetes-clusters`.
105+
To deploy Kubernetes clusters with
106+
Kubernetes ISOs built with a specified etcd version are necessary for creating Kubernetes clusters with separate etcd nodes. See :ref:`flexible-kubernetes-clusters`.
101107

102108
Working with Kubernetes supported version
103109
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -110,7 +116,7 @@ Once the ISO has been built for a desired Kubernetes version, it can be added by
110116
|cks-add-version-form.png|
111117

112118
.. note::
113-
Since 4.21.0 it is possible to deploy separate dedicated etcd nodes. This requires
119+
From 4.21.0, it is possible to deploy separate dedicated etcd nodes. This requires
114120
the Kubernetes ISO contains the etcd binaries.
115121

116122
addKubernetesSupportedVersion API can be used by an admin to add a new supported version for the service. It takes following input parameters:
@@ -215,12 +221,12 @@ New Kubernetes clusters can be created using the API or via the UI. User will be
215221

216222
|cks-create-cluster-form.png|
217223

218-
Since 4.21.0, the Hypervisor selection is available for Kubernetes Cluster nodes. By default the Hypervisor selection is empty.
224+
From 4.21.0, you can select the hypervisor type for Kubernetes cluster nodes. By default, no hypervisor is selected.
219225

220-
Since 4.21.0, users will be provided with an optional section displayed when toggling the option: 'Show Advanced Settings'. On this section, users can select templates and service offerings for:
226+
From 4.21.0, users will be provided with an optional section displayed on toggling the 'Show Advanced Settings' button. In this section, users can select templates and service offerings for:
221227
- Worker nodes
222228
- Control nodes
223-
- Etcd nodes (if one or more are selected, no etcd nodes are selected by default)
229+
- Etcd nodes (if etcd node count >= 1; By default etcd node count is 0)
224230

225231
For more information about the Advanced Settings see :ref:`flexible-kubernetes-clusters`.
226232

@@ -249,11 +255,11 @@ createKubernetesCluster API can be used to create new Kubernetes cluster. It tak
249255
- **dockerregistryemail** (email of the docker image private registry user; Experimental)
250256
- **hypervisor** (an optional parameter to specify the hypervisor on which the Kubernetes cluster will be deployed)
251257
- **nodeofferings** (an optional map parameter to set the service offerings for worker, control or etcd nodes. If this parameter is not set, then every VM in the cluster will be deployed using the default service offering set on the serviceofferingid parameter)
252-
- **etcdnodes** (an optional integer parameter to specify the number etcd nodes in the cluster, the default value is 0. In case the number is greater than 0, etcd nodes are separate from master nodes and are provisioned accordingly)
253-
- **nodetemplates**: (an optional map parameter to set the template to be used by worker, control or etcd nodes. If this parameter is not set, then every VM in the cluster will be deployed using the System VM template)
258+
- **etcdnodes** (An optional integer parameter that specifies the number of etcd nodes in the cluster. The default value is 0. If set to a value greater than 0, dedicated etcd nodes are created separately from the master nodes.)
259+
- **nodetemplates**: (an optional map parameter to set the template to be used by worker, control or etcd nodes. If not set, then every VM in the cluster will be deployed using the System VM template)
254260
- **asnumber** (an optional parameter to set the AS Number of the Kubernetes cluster network)
255261
- **cniconfigurationid** (an optional parameter to set the UUID of a registered CNI configuration)
256-
- **cniconfigdetails** (an optional parameter to specify the parameters values for the variables in the CNI configuration)
262+
- **cniconfigdetails** (an optional parameter to specify the parameters values for the variables defined in the CNI configuration)
257263

258264
For example:
259265

@@ -449,7 +455,7 @@ To remove an Instance from an ExternalManaged Kubernetes cluster:
449455
Flexible Kubernetes Clusters
450456
----------------------------
451457

452-
Since 4.21.0, CloudStack introduces many enhancements to Kubernetes Clusters allowing users to:
458+
From 4.21.0, many enhancements have been added to CloudStack Kubernetes Service that allows users to:
453459

454460
- Select the Hypervisor hype for the Kubernetes Cluster nodes
455461
- Specify different templates and/or service offerings for different types of Kubernetes Clusters nodes
@@ -467,7 +473,7 @@ CloudStack provides a custom CKS-ready template based on Ubuntu 22.04 to be used
467473

468474
This template contains all the required packages to be used as a Kubernetes cluster node. The default login credentials are: cloud:cloud.
469475

470-
A user may decide not to use the provided CKS-ready template and build its own template. The following needs to be made sure is present on the template:
476+
A user may decide not to use the provided CKS-ready template and build their own template. The following needs to be made sure is present on the template:
471477

472478
- The following packages or the equivalent ones for the specific OS need to be installed:
473479

@@ -511,9 +517,9 @@ To register a template that will be listed as an option for Kubernetes cluster n
511517
Separate etcd nodes from control nodes
512518
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
513519

514-
By default, the number of etcd nodes in a CKS cluster is 0, the etcd service is included on the control nodes. If the number of etcd nodes passed on the CKS cluster creation is at least 1, then CloudStack will dedicate nodes only to the etcd service, separating them from the control nodes.
520+
By default, a CKS cluster has 0 dedicated etcd nodes, and the etcd service runs on the control nodes. If etcd node count is set to a value greater than or equal to 1 during cluster creation, CloudStack will provision separate nodes exclusively for the etcd service, isolating them from the control nodes with the desired template and service offering if specified.
515521

516-
To use separate etcd nodes, it is required to build and register a CKS ISO version containing the etcd service as explained on: :ref:`kubernetes-supported-versions`
522+
To use separate etcd nodes, it is required to build and register a CKS ISO version containing the etcd binaries as explained in: :ref:`kubernetes-supported-versions`
517523

518524
Add an external VM Instance as a worker node to a Kubernetes cluster
519525
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -526,23 +532,23 @@ Requirements for a VM Instance to be added as worker node to a Kubernetes cluste
526532

527533
- The Management Server’s SSH Public key must be added at the cloud user’s authorized_keys file at `~/.ssh/authorized_keys`.
528534

529-
The VM Instances meeting the requirements above must be added to the Kubernetes cluster by the `addNodesToKubernetesCluster` API specifying:
535+
The VM Instances meeting the requirements above can be added to the Kubernetes cluster by the `addNodesToKubernetesCluster` API specifying:
530536

531537
- **id** (UUID of the Kubernetes cluster. Required)
532538
- **nodeids** (comma separated list of (external) node (physical or virtual machines) IDs that need to be added as worker nodes to an existing managed Kubernetes cluster (CKS). Required)
533539
- **mountcksisoonvr** (optional parameter for Vmware only, uses the CKS cluster network VR to mount the CKS ISO)
534540
- **manualupgrade** (optional parameter that indicates if the node is marked for manual upgrade and excluded from the Kubernetes cluster upgrade operation)
535541

536542
.. note::
537-
Users are able to add nodes to Kubernetes cluster and mark them for manual upgrade only. Once the nodes are marked for manual upgrade, the future cluster upgrade operations will exclude these nodes and their Kubernetes version won't be upgraded.
543+
Users will have the ability to add nodes to the Kubernetes cluster and mark them for manual upgrade. Once the nodes are marked for manual upgrade, the future cluster upgrade operations will exclude these nodes i.e., the Kubernetes version won't be upgraded.
538544

539545
The following course of actions are taken:
540546

541547
- Validation: The external node(s) are validated to ensure that all the above-mentioned prerequisites are present
542548

543549
- Addition of port-forwarding rules and firewall rules (for isolated networks)
544550

545-
- VM is rebooted with the Kubernetes config passed as userdata
551+
- VM is rebooted with the Kubernetes configuration passed as userdata
546552

547553
- The ISO is attached either to the node or to the VR based on the value of `mountcksisoonvr` that is passed as a parameter to the addNodesToKubernetesCluster API (Vmware only).
548554

@@ -553,7 +559,7 @@ The following course of actions are taken:
553559
Removing an external worker node from a Kubernetes cluster
554560
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
555561

556-
External worker nodes must be removed from a Kubernetes cluster by the `removeNodesFromKubernetesCluster` API specifying:
562+
External worker nodes can be removed from a Kubernetes cluster by the `removeNodesFromKubernetesCluster` API specifying:
557563

558564
- **id** (UUID of the Kubernetes cluster. Required)
559565
- **nodeids** (comma separated list of (external) node (physical or virtual machines) IDs that need to be removed from an existing managed Kubernetes cluster (CKS). Required)
@@ -575,7 +581,7 @@ When node(s) are being removed from a Kubernetes cluster, the following happens:
575581
Dedicate specific hosts/clusters to a specific domain for CKS cluster deployment
576582
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
577583

578-
Administratos are able to dedicate hosts to a domain or account. CloudStack will take the host dedication in consideration when deploying Kubernetes clusters.
584+
Administrators are able to dedicate hosts to a domain or account. CloudStack will take the host dedication into consideration when deploying Kubernetes clusters.
579585

580586
- When there are no hosts dedicated to the domain/account the user belongs, then the nodes will be deployed on any host.
581587

0 commit comments

Comments
 (0)