|
Il s'agit d'une documentation non publiée pour SUSE® Virtual Clusters v1.2.0 (Dev). |
Utilisation avancée
Ce document fournit des informations sur l’utilisation avancée de k3k, y compris des cas d’utilisation détaillés et des explications sur les champs de ressources Cluster pour la personnalisation.
Personnalisation de la ressource du cluster
La ressource Cluster offre une variété de champs pour personnaliser le comportement de vos clusters virtuels. Voir la documentation CRD pour les spécifications complètes.
La plupart de ces options de personnalisation peuvent également être configurées à l’aide de l’outil k3kcli. Référez-vous à la documentation k3kcli pour plus de détails.
|
Cet exemple crée un cluster K3k en mode "partagé" avec :
-
3 serveurs
-
Version K3s v1.31.3-k3s1
-
Configuration réseau personnalisée
-
Déploiement sur des nœuds spécifiques avec le
nodeSelector -
kube-apiexposé à l’aide d’un ingress -
K3s personnalisé
serverArgs -
Données ETCD persistées à l’aide d’un
PVC
apiVersion: k3k.io/v1beta1
kind: Cluster
metadata:
name: my-virtual-cluster
namespace: my-namespace
spec:
mode: shared
version: v1.31.3-k3s1
servers: 3
tlsSANs:
- my-cluster.example.com
nodeSelector:
disktype: ssd
expose:
ingress:
ingressClassName: nginx
annotations:
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/backend-protocol: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "HTTPS"
clusterCIDR: 10.42.0.0/16
serviceCIDR: 10.43.0.0/16
clusterDNS: 10.43.0.10
serverArgs:
- --tls-san=my-cluster.example.com
persistence:
type: dynamic
storageClassName: local-path
mode
Le champ mode spécifie le mode de provisionnement du cluster, qui peut être soit shared soit virtual. Le mode par défaut est shared.
-
sharedmode : Dans ce mode, le cluster virtuel partage les ressources et le réseau du cluster hôte. Ce mode est adapté aux charges de travail légères et aux environnements de développement où l’isolation n’est pas une préoccupation principale. -
virtualmode : Dans ce mode, le cluster virtuel fonctionne comme un cluster K3s séparé au sein du cluster hôte. Ce mode offre une isolation plus forte et est adapté aux charges de travail de production ou lorsque des ressources dédiées sont requises.
version
Le champ version spécifie la version de Kubernetes à utiliser par les nœuds virtuels. Si non spécifié, K3k utilisera la même version de K3s que le cluster hôte. Par exemple, si le cluster hôte exécute Kubernetes v1.31.3, K3k utilisera la version correspondante de K3s (par exemple, v1.31.3-k3s1).
servers
Le champ servers spécifie le nombre de nœuds serveur K3s à déployer pour le cluster virtuel. La valeur par défaut est 1.
agents
Le champ agents spécifie le nombre de nœuds agents K3s à déployer pour le cluster virtuel. La valeur par défaut est 0.
En mode shared, ce champ est ignoré, car le Virtual Kubelet agit en tant qu’agent, et il n’y a pas de nœuds de travail K3s.
|
nodeSelector
Le champ nodeSelector vous permet de spécifier un sélecteur de nœuds qui sera appliqué à tous les pods serveur/agent. En mode shared, le sélecteur de nœuds sera également appliqué aux charges de travail.
expose
Le champ expose contient des options pour exposer le serveur API du cluster virtuel. Par défaut, le serveur API est uniquement exposé en tant que ClusterIP, ce qui est relativement sécurisé mais difficile d’accès depuis l’extérieur du cluster.
Vous pouvez utiliser le champ expose pour activer l’exposition via NodePort, LoadBalancer ou Ingress.
Dans cet exemple, nous exposons le cluster avec un contrôleur d’entrée Nginx, qui doit être configuré avec l’option --enable-ssl-passthrough.
clusterCIDR
Le champ clusterCIDR spécifie la plage CIDR pour les pods du cluster. La valeur par défaut est 10.42.0.0/16 en mode partagé, et 10.52.0.0/16 en mode virtuel.
serviceCIDR
Le champ serviceCIDR spécifie la plage CIDR pour les services dans le cluster. La valeur par défaut est 10.43.0.0/16 en mode partagé, et 10.53.0.0/16 en mode virtuel.
En mode shared, le serviceCIDR doit correspondre au serviceCIDR du cluster hôte pour éviter les conflits et en mode virtual, serviceCIDR et clusterCIDR doivent être différents de ceux du cluster hôte.
|
Utiliser la CLI
Vous pouvez consulter la documentation de k3kcli pour les spécifications complètes.
Aucun fournisseur de stockage :
-
Stockage éphémère :
k3kcli cluster create --persistence-type ephemeral my-cluster
|