nvazquez commented on code in PR #458:
URL: 
https://github.com/apache/cloudstack-documentation/pull/458#discussion_r2113755015


##########
source/plugins/cloudstack-kubernetes-service.rst:
##########
@@ -405,6 +444,220 @@ To remove an Instance from an ExternalManaged Kubernetes 
cluster:
    These operations are only supported for an ExternalManaged Kubernetes 
Cluster
 
 
+.. _flexible-kubernetes-clusters:
+
+Flexible Kubernetes Clusters
+----------------------------
+
+Since 4.21.0, CloudStack introduces many enhancements to Kubernetes Clusters 
allowing users to:
+
+- Select the Hypervisor hype for the Kubernetes Cluster nodes
+- Specify different templates and/or service offerings for different types of 
Kubernetes Clusters nodes
+- Use CKS-ready custom and non-ready templates for Kubernetes cluster nodes
+- Separate etcd nodes from control nodes of the Kubernetes clusters
+- Add and remove a pre-created instance as a worker node to an existing 
Kubernetes cluster
+- Mark Kubernetes cluster nodes for manual-only upgrade
+- Dedicate specific hosts/clusters to a specific domain for CKS cluster 
deployment
+- Use diverse CNI plugins (Calico, Cilium, etc)
+
+Build a custom template to use for Kubernetes clusters nodes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+CloudStack provides a custom CKS-ready template based on Ubuntu 22.04 to be 
used for Kubernetes clusters nodes: 
https://download.cloudstack.org/testing/custom_templates/ubuntu/22.04/.
+
+This template contains all the required packages to be used as a Kubernetes 
cluster node. The default login credentials are: cloud:cloud.
+
+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:
+
+- The following packages or the equivalent ones for the specific OS need to be 
installed:
+
+   .. code-block:: bash
+      
+      cloud-init cloud-guest-utils conntrack apt-transport-https 
ca-certificates curl gnupg gnupg-agent software-properties-common gnupg 
lsb-release python3-json-pointer python3-jsonschema containerd.io
+   
+- A user named `cloud` needs to be created and added to the sudoers list:
+   
+   .. code-block:: bash
+
+         sudo useradd -m -s /bin/bash cloud
+         echo "cloud:<password>" | sudo chpasswd
+         
+         # Edit /etc/sudoers file with:
+         cloud ALL=(ALL) NOPASSWD:ALL
+
+- Create the necessary directory /opt/bin:
+   
+   .. code-block:: bash
+
+         sudo mkdir -p /opt/bin
+
+- Once the VM is deployed, place the Management Server’s SSH Public key at the 
cloud user’s authorized_keys file at ~/.ssh/authorized_keys
+
+
+Registering a custom template for Kubernetes cluster nodes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+By default, the Kubernetes clusters nodes are deployed from the System VM 
template. On the Advanced Settings for Kubernetes clusters creation, CloudStack 
allows selecting templates for different types of nodes.
+
+To register a template that will be listed as an option for Kubernetes cluster 
nodes:
+
+- Set URL to the provided CKS-ready template at: 
https://download.cloudstack.org/testing/custom_templates/ubuntu/22.04/ or a 
custom template built from the section above.
+
+- Set the template specific values as usual for template registration.
+
+- Mark the option 'For CKS'. This ensures the template is considered as an 
option for Kubernetes cluster nodes on the Advanced Settings section for 
clusters creation.
+
+
+Separate etcd nodes from control nodes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+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.
+
+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`
+
+Add an external VM Instance as a worker node to a Kubernetes cluster
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Requirements for a VM Instance to be added as worker node to a Kubernetes 
cluster:
+
+- At least 8GB ROOT disk size, 2 CPU cores and 2GB RAM
+
+- The VM Instance must have a NIC on the Kubernetes cluster network
+
+- The Management Server’s SSH Public key must be added at the cloud user’s 
authorized_keys file at `~/.ssh/authorized_keys`.

Review Comment:
   Sure, will do



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@cloudstack.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to