En este tema se describe cómo crear su propio recurso ClusterClass
personalizado para un clúster de administración independiente de Tanzu Kubernetes Grid (TKG), utilizarlo para crear clústeres de carga de trabajo basados en clases y trabajar con clústeres que se basan en la ClusterClass personalizada.
Para basar un clúster en un ClusterClass, establezca su spec.topology.class
en el nombre ClusterClass.
Estos procedimientos no se aplican a TKG con un supervisor de vSphere with Tanzu.
PrecauciónLa ClusterClass personalizada es una función experimental de Kubernetes según la documentación de la API del clúster ascendente. Debido a la variedad de personalizaciones disponibles con la ClusterClass personalizada, VMware no puede probar ni validar todas las personalizaciones posibles. Los clientes son responsables de probar, validar y solucionar los problemas que puedan surgir en sus clústeres ClusterClass personalizados. Los clientes pueden abrir tickets de soporte relacionados con sus clústeres ClusterClass personalizados. Sin embargo, el soporte de VMware tan solo puede ayudar dentro de unos límites y no puede garantizar la resolución de todos los problemas que se abran para los clústeres ClusterClass personalizados. Los clientes deben tener en cuenta estos riesgos antes de implementar clústeres ClusterClass personalizados en entornos de producción. Para crear clústeres de carga de trabajo mediante el recurso
ClusterClass
predeterminado, siga los procedimientos descritos en Pasos para la implementación del clúster.
Para crear una ClusterClass personalizada, debe ytt
, imgpkg
la CLI de Tanzu y kubectl
de forma local. Para obtener información sobre cómo descargar e instalar ytt
y imgpkg
, consulte Instalar carvel Tools.
Para crear un ClusterClass personalizado, VMware recomienda comenzar con el manifiesto ClusterClass o las plantillas YTT predeterminadas existentes que se describen en Crear un manifiesto ClusterClass base. Cuando se publica una nueva versión del objeto ClusterClass predeterminado, por ejemplo, con una nueva versión de TKG, puede aplicar la superposición a la nueva versión para implementar las mismas personalizaciones. Los procedimientos de este tema describen este método de creación de un objeto ClusterClass personalizado.
Para escribir un objeto ClusterClass completamente nuevo sin usar una plantilla existente, siga el procedimiento descrito en Escribir una ClusterClass en la documentación de la API del clúster.
Puede crear un manifiesto ClusterClass base basado en el manifiesto ClusterClass predeterminado o en las plantillas YTT que Tanzu Kubernetes Grid proporciona. Todos los clústeres personalizados que cree deben basarse en este manifiesto ClusterClass base. El proceso tiene 3 pasos:
Existen tres métodos en los que puede crear un manifiesto ClusterClass base para los clústeres.
ImportanteLos métodos 2 y 3 son para usuarios avanzados que necesitan satisfacer los siguientes casos prácticos:
- Desea generar definiciones de ClusterClass personalizadas para el sistema de CI sin implementar un clúster de administración independiente.
- Desea que los clústeres de carga de trabajo utilicen una infraestructura diferente a los clústeres de administración.
En Tanzu Kubernetes Grid 2.3.0 y versiones posteriores, después de implementar un clúster de administración, puede encontrar el manifiesto ClusterClass predeterminado en la carpeta ~/.config/tanzu/tkg/clusterclassconfigs
.
Para ver el manifiesto de las plataformas de destino en las que implementó un clúster de administración, ejecute el siguiente comando:
tree ~/.config/tanzu/tkg/clusterclassconfigs/
Por ejemplo, si implementó un clúster de administración en vSphere, verá el siguiente archivo YAML.
.config/tanzu/tkg/clusterclassconfigs/
└── tkg-vsphere-default-v1.1.0.yaml
1 directory, 1 file
El manifiesto generado contiene información sobre la plataforma de destino que se extrajo de la implementación del clúster de administración. Puede utilizar esto como el manifiesto base para la creación de ClusterClass personalizada directamente. Para ver los siguientes pasos, consulte Personalizar el manifiesto ClusterClass base.
Después de instalar la CLI de Tanzu v1.0.0 o una versión posterior, pero antes de implementar un clúster de administración, puede encontrar las plantillas YTT para clusterClass predeterminada en la carpeta ~/.config/tanzu/tkg/providers/infrastructure-<provider name>/<provider version>/cconly
. Puede utilizar estas plantillas para crear un manifiesto base para la creación personalizada de ClusterClass.
Para buscar las plantillas, ejecute el comando adecuado para su plataforma de destino.
tree ~/.config/tanzu/tkg/providers/infrastructure-vsphere/v1.7.0/cconly
Verá los siguientes archivos YAML.
.config/tanzu/tkg/providers/infrastructure-vsphere/v1.7.0/cconly
├── base.yaml
├── overlay-kube-apiserver-admission.yaml
└── overlay.yaml
1 directory, 3 files
tree ~/.config/tanzu/tkg/providers/infrastructure-aws/v2.1.3/cconly
Verá los siguientes archivos YAML.
.config/tanzu/tkg/providers/infrastructure-aws/v2.1.3/cconly
├── base.yaml
├── overlay-kube-apiserver-admission.yaml
└── overlay.yaml
tree ~/.config/tanzu/tkg/providers/infrastructure-azure/v1.9.2/cconly/
Verá los siguientes archivos YAML.
.config/tanzu/tkg/providers/infrastructure-azure/v1.9.2/cconly/
├── base.yaml
├── overlay-kube-apiserver-admission.yaml
└── overlay.yaml
Cree un archivo de valor de datos YTT llamado user_input.yaml
con el siguiente contenido.
#@data/values
#@overlay/match-child-defaults missing_ok=True
---
Añada valores de configuración apropiados para su plataforma de destino para user_input.yaml
.
Puede utilizar los valores de configuración que utilizó cuando implementó una implementación de clúster de administración. Por ejemplo, un archivo user_input.yaml
para vSphere será similar al siguiente:
#@data/values
#@overlay/match-child-defaults missing_ok=True
---
ENABLE_MHC: true
ENABLE_MHC_CONTROL_PLANE: true
ENABLE_MHC_WORKER_NODE: true
MHC_UNKNOWN_STATUS_TIMEOUT: 5m
MHC_FALSE_STATUS_TIMEOUT: 12m
MHC_MAX_UNHEALTHY_CONTROL_PLANE: 100%
MHC_MAX_UNHEALTHY_WORKER_NODE: 100%
NODE_STARTUP_TIMEOUT: 20m
VSPHERE_TLS_THUMBPRINT: 0A:B4:8F:2E:E4:34:82:90:D5:6A:F8:77:8C:8C:51:24:D2:49:3B:E8
VSPHERE_DATACENTER: /dc0
VSPHERE_DATASTORE: /dc0/datastore/sharedVmfs-0
VSPHERE_FOLDER: /dc0/vm
VSPHERE_NETWORK: /dc0/network/VM Network
VSPHERE_RESOURCE_POOL: /dc0/host/cluster0/Resources
VSPHERE_SERVER: xxx.xxx.xxx.xxx
VSPHERE_USERNAME: [email protected]
VSPHERE_CONTROL_PLANE_DISK_GIB: "20"
VSPHERE_CONTROL_PLANE_MEM_MIB: "8192"
VSPHERE_CONTROL_PLANE_NUM_CPUS: "4" VSPHERE_WORKER_DISK_GIB: "20"
VSPHERE_WORKER_MEM_MIB: "8192"
VSPHERE_WORKER_NUM_CPUS: "4"
VSPHERE_CLUSTER_CLASS_VERSION: "v1.1.0" # change it to the version in TKG BOM
NAMESPACE: "tkg-system" # DO NOT change it
Utilice ytt
para generar el manifiesto ClusterClass base para la plataforma de destino.
ytt -f ~/.config/tanzu/tkg/providers/infrastructure-vsphere/v1.7.0/cconly -f ~/.config/tanzu/tkg/providers/config_default.yaml -f user_input.yaml
ytt -f ~/.config/tanzu/tkg/providers/infrastructure-aws/v2.1.3/cconly -f ~/.config/tanzu/tkg/providers/config_default.yaml -f user_input.yaml
ytt -f ~/.config/tanzu/tkg/providers/infrastructure-azure/v1.9.2/cconly -f ~/.config/tanzu/tkg/providers/config_default.yaml -f user_input.yaml
Ahora que generó un manifiesto base para la infraestructura, para los siguientes pasos, consulte Personalizar el manifiesto ClusterClass base.
Las plantillas YTT de la ClusterClass predeterminada también se pueden descargar del repositorio de imágenes de TKG. Puede utilizar estas plantillas para crear un manifiesto base para la creación personalizada de ClusterClass.
Extraiga las plantillas YTT de la imagen providerTemplate
en el registro oficial de TKG.
Para TKG v2.3.1, la etiqueta de imagen providerTemplate
es v0.30.2
. Para encontrar la versión de la etiqueta en el archivo de lista de materiales de TKG, busque providerTemplateImage
.
imgpkg pull -i projects.registry.vmware.com/tkg/tanzu_core/provider/provider-templates:v0.30.2 -o providers
Verá resultados similares al siguiente:
Pulling image 'projects.registry.vmware.com/tkg/tanzu_core/provider/provider-templates@sha256:b210d26c610800f5da4b3aa55bfbc8ffae9275fa2c4073a2b1332e2045a6e1da'
Extracting layer 'sha256:3ba336232c0e616b2b6c8f263593497c5a059a645f4c6137ea0eb658f4a8538a' (1/1)
Succeeded
Los archivos de plantilla YAML se descargan en una carpeta providers
.
Cree un archivo de valor de datos YTT llamado user_input.yaml
con el siguiente contenido.
#@data/values
#@overlay/match-child-defaults missing_ok=True
---
Añada valores de configuración apropiados para su plataforma de destino para user_input.yaml
.
Puede utilizar los valores de configuración que utilizó cuando implementó una implementación de clúster de administración. Por ejemplo, un archivo user_input.yaml
para vSphere será similar al siguiente:
#@data/values
#@overlay/match-child-defaults missing_ok=True
---
ENABLE_MHC: true
ENABLE_MHC_CONTROL_PLANE: true
ENABLE_MHC_WORKER_NODE: true
MHC_UNKNOWN_STATUS_TIMEOUT: 5m
MHC_FALSE_STATUS_TIMEOUT: 12m
MHC_MAX_UNHEALTHY_CONTROL_PLANE: 100%
MHC_MAX_UNHEALTHY_WORKER_NODE: 100%
NODE_STARTUP_TIMEOUT: 20m
VSPHERE_TLS_THUMBPRINT: 0A:B4:8F:2E:E4:34:82:90:D5:6A:F8:77:8C:8C:51:24:D2:49:3B:E8
VSPHERE_DATACENTER: /dc0
VSPHERE_DATASTORE: /dc0/datastore/sharedVmfs-0
VSPHERE_FOLDER: /dc0/vm
VSPHERE_NETWORK: /dc0/network/VM Network
VSPHERE_RESOURCE_POOL: /dc0/host/cluster0/Resources
VSPHERE_SERVER: xxx.xxx.xxx.xxx
VSPHERE_USERNAME: [email protected]
VSPHERE_CONTROL_PLANE_DISK_GIB: "20"
VSPHERE_CONTROL_PLANE_MEM_MIB: "8192"
VSPHERE_CONTROL_PLANE_NUM_CPUS: "4" VSPHERE_WORKER_DISK_GIB: "20"
VSPHERE_WORKER_MEM_MIB: "8192"
VSPHERE_WORKER_NUM_CPUS: "4"
VSPHERE_CLUSTER_CLASS_VERSION: "v1.1.0" # change it to the version in TKG BOM
NAMESPACE: "tkg-system" # DO NOT change it
Utilice ytt
para generar el manifiesto ClusterClass base para la plataforma de destino.
ytt -f providers/infrastructure-vsphere/v1.7.0/cconly -f providers/config_default.yaml -f user_input.yaml
ytt -f providers/infrastructure-aws/v2.1.3/cconly -f providers/config_default.yaml -f user_input.yaml
ytt -f ~/.config/tanzu/tkg/providers/infrastructure-azure/v1.9.2/cconly -f ~/.config/tanzu/tkg/providers/config_default.yaml -f user_input.yaml
Ahora que generó un manifiesto base para la infraestructura, para los siguientes pasos, consulte Personalizar el manifiesto ClusterClass base.
Para personalizar el manifiesto de ClusterClass, cree archivos de superposición ytt
junto con el manifiesto. El siguiente ejemplo muestra cómo modificar un parámetro de kernel de Linux en la definición ClusterClass.
Cree una carpeta custom
estructurada de la siguiente manera:
tree custom
custom
|-- overlays
|-- filter.yaml
|-- kernels.yaml
Edite custom/overlays/kernels.yaml
.
Por ejemplo, agreguenfConntrackMax
como una variable y defina una revisión para él que agregue su valor al parámetro del kernel net.netfilter.nf_conntrack_max
para nodos del plano de control.
Esta superposición anexa un comando al campo preKubeadmCommands
, para escribir la configuración en sysctl.conf
. Para que ese ajuste surta efecto, puede anexar el comando sysctl -p
para aplicar este cambio. Las definiciones predeterminadas de ClusterClass son inmutables, por lo que esta superposición también cambia el nombre de la ClusterClass personalizada y todas sus plantillas agregando -extended
.
cat custom/overlays/kernels.yaml
#@ load("@ytt:overlay", "overlay")
#@overlay/match by=overlay.subset({"kind":"ClusterClass"})
---
apiVersion: cluster.x-k8s.io/v1beta1
kind: ClusterClass
metadata:
name: tkg-vsphere-default-v1.1.0-extended
spec:
variables:
- name: nfConntrackMax
required: false
schema:
openAPIV3Schema:
type: string
patches:
- name: nfConntrackMax
enabledIf: '{{ not (empty .nfConntrackMax) }}'
definitions:
- selector:
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
kind: KubeadmControlPlaneTemplate
matchResources:
controlPlane: true
jsonPatches:
- op: add
path: /spec/template/spec/kubeadmConfigSpec/preKubeadmCommands/-
valueFrom:
template: echo "net.netfilter.nf_conntrack_max={{ .nfConntrackMax }}" >> /etc/sysctl.conf
- op: add
path: /spec/template/spec/kubeadmConfigSpec/preKubeadmCommands/-
value: sysctl -p
Elimine los recursos que no desea cambiar.
En este ejemplo, todas las plantillas están diseñadas para compartirse entre la instancia de ClusterClass personalizada y predeterminada, de modo que todas se eliminen. También puede crear una plantilla personalizada basada en la plantilla predeterminada de la misma manera, en cuyo caso asegúrese de que no se excluya kind
.
cat custom/overlays/filter.yaml
#@ load("@ytt:overlay", "overlay")
#@overlay/match by=overlay.not_op(overlay.subset({"kind": "ClusterClass"})),expects="0+"
---
#@overlay/remove
Utilice el manifiesto ClusterClass predeterminado para generar la ClusterClass base.
ytt -f tkg-vsphere-default-v1.1.0.yaml -f custom/overlays/filter.yaml > default_cc.yaml
Generar la ClusterClass personalizada.
ytt -f tkg-vsphere-default-v1.1.0.yaml -f custom/ > custom_cc.yaml
(Opcional) Compruebe la diferencia entre la ClusterClass predeterminada y la personalizada para confirmar que se aplicaron los cambios.
diff default_cc.yaml custom_cc.yaml
Verá resultados similares al siguiente:
4c4
< name: tkg-vsphere-default-v1.1.0
---
> name: tkg-vsphere-default-v1.1.0-extended
638a639,643
> - name: nfConntrackMax
> required: false
> schema:
> openAPIV3Schema:
> type: string
2607a2613,2628
> - name: nfConntrackMax
> enabledIf: '{{ not (empty .nfConntrackMax) }}'
> definitions:
> - selector:
> apiVersion: controlplane.cluster.x-k8s.io/v1beta1
> kind: KubeadmControlPlaneTemplate
> matchResources:
> controlPlane: true
> jsonPatches:
> - op: add
> path: /spec/template/spec/kubeadmConfigSpec/preKubeadmCommands/-
> valueFrom:
> template: echo "net.netfilter.nf_conntrack_max={{ .nfConntrackMax }}" >> /etc/sysctl.conf
> - op: add
> path: /spec/template/spec/kubeadmConfigSpec/preKubeadmCommands/-
> value: sysctl -p
En este ejemplo, puede ver que -extended
se agregó al nombre del clúster.
Para permitir que su clúster de administración use su ClusterClass personalizada, instálelo aplicando el nuevo manifiesto.
Aplique el manifiesto de ClusterClass.
kubectl apply -f custom_cc.yaml
Debe ver el siguiente resultado.
clusterclass.cluster.x-k8s.io/tkg-vsphere-default-v1.1.0-extended created
Compruebe si la ClusterClass personalizada se propagó al espacio de nombres predeterminado, por ejemplo:
kubectl get clusterclass
Debe ver el siguiente resultado.
NAME AGE
tkg-vsphere-default-v1.1.0 2d23h
tkg-vsphere-default-v1.1.0-extended 11s
Después de crear la instancia de ClusterClass personalizada, puede utilizarla para crear un nuevo clúster de carga de trabajo que incluya la personalización.
Ejecute tanzu cluster create
con la opción --dry-run
para generar un manifiesto de clúster a partir de un archivo de configuración de clúster estándar.
tanzu cluster create --file workload-1.yaml --dry-run > default_cluster.yaml
Cree una superposición de ytt
o edite el manifiesto del clúster directamente.
La opción recomendada es crear una superposición de ytt
(por ejemplo, cluster_overlay.yaml
) para hacer lo siguiente:
topology.class
con el nombre de la ClusterClass personalizadavariables
, con un valor predeterminadoAl igual que con la modificación de especificaciones de objetos ClusterClass, el uso de una superposición de la siguiente manera permite aplicar automáticamente los cambios a los objetos nuevos cada vez que hay una nueva versión de clúster ascendente.
#@ load("@ytt:overlay", "overlay")
#@overlay/match by=overlay.subset({"kind":"Cluster"})
---
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
spec:
topology:
class: tkg-vsphere-default-v1.1.0-extended
variables:
- name: nfConntrackMax
value: "1048576
Genere el manifiesto custom_cluster.yaml
:
ytt -f default_cluster.yaml -f cluster_overlay.yaml > custom_cluster.yaml
(Opcional) Al igual que con la ClusterClass anterior, puede ejecutar diff
para comparar el manifiesto del clúster de clase personalizada con un clúster basado en clases predeterminado, por ejemplo:
diff custom_cluster.yaml default_cluster.yaml
Verá resultados similares al siguiente:
< class: tkg-vsphere-default-v1.1.0
---
> class: tkg-vsphere-default-v1.1.0-extended
142a143,144
> - name: nfConntrackMax
> value: "1048576"
Cree un clúster de carga de trabajo personalizado basado en el manifiesto personalizado generado anteriormente de la siguiente manera.
Cree el clúster.
tanzu cluster create -f custom_cluster.yaml
Compruebe las propiedades del objeto creado.
Por ejemplo, con la modificación del kernel anterior, recupere el objeto KubeadmControlPlane
y confirme que la configuración del kernel está establecida:
kubectl get kcp workload-1-jgwd9 -o yaml
Verá resultados similares al siguiente:
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
kind: KubeadmControlPlane
...
preKubeadmCommands:
- hostname "{{ ds.meta_data.hostname }}"
- echo "::1 ipv6-localhost ipv6-loopback" >/etc/hosts
- echo "127.0.0.1 localhost" >>/etc/hosts
- echo "127.0.0.1 {{ ds.meta_data.hostname }}" >>/etc/hosts
- echo "{{ ds.meta_data.hostname }}" >/etc/hostname
- echo "net.netfilter.nf_conntrack_max=1048576" >> /etc/sysctl.conf
- sysctl -p
...
Inicie sesión en un nodo de plano de control y confirme que su sysctl.conf
se haya modificado:
capv@workload-1-jgwd9:~$ sudo cat /etc/sysctl.conf
...
net.ipv6.neigh.default.gc_thresh3=16384
fs.file-max=9223372036854775807
net.netfilter.nf_conntrack_max=1048576
Si creó clústeres personalizados con una versión anterior, puede actualizarlos a la versión más reciente de TKG.
Antes de actualizar los clústeres, hay que realizar los pasos de preparación.
Antes de actualizar el clúster de administración, cree clústeres de prueba con la versión del manifiesto personalizado que creó para la versión anterior.
Por ejemplo, cree un clúster personalizado llamado test-upgrade
.
Obtenga información sobre las versiones de ClusterClass disponibles con el clúster de administración de TKG 2.2.
kubectl get clusterclass
Si creó los clústeres personalizados con TKG v2.2.0, la versión de ClusterClass debe ser 1.0.0. Por ejemplo:
NAME AGE
tkg-vsphere-default-extended-v1.0.0 21m
tkg-vsphere-default-v1.0.0 10d
Obtenga la información sobre las versiones de ClusterClass que se ejecutan en el clúster de test-upgrade
.
kubectl get cluster test-upgrade -o jsonpath='{.spec.topology.class}'
Los resultados deben ser tkg-vsphere-default-extended-v1.0.0
.
Siga las instrucciones en Actualizar clústeres de administración independientes para actualizar el clúster de administración a TKG 2.3.
Obtenga información sobre la versión ClusterClass disponible después de actualizar el clúster de administración a la versión 2.3.
kubectl get cluster mgmt-cluster-name -n tkg-system -o jsonpath='{.spec.topology.class}'
El resultado debe ser tkg-vsphere-default-v1.1.0
si el clúster de administración se ejecuta en vSphere.
tkg-vsphere-default-v1.1.0-extended
e incluya las mismas variables personalizadas que en la versión anterior tkg-vsphere-default-extended-v1.0.0
.custom_cc.yaml
de superposición.Instalar la nueva ClusterClass personalizada en el clúster de administración.
kubectl apply -f custom_cc.yaml
Obtenga información sobre las versiones de ClusterClass que ahora están disponibles con el clúster de administración.
kubectl get clusterclass
Se deben mostrar tanto las versiones anteriores como las versiones más recientes.
NAME AGE
tkg-vsphere-default-extended-v1.0.0 61m
tkg-vsphere-default-v1.0.0 10d
tkg-vsphere-default-v1.1.0 25m
tkg-vsphere-default-v1.1.0-extended 15s
Después de realizar los pasos de preparación, puede probar la actualización en el clúster de prueba antes de actualizar los clústeres de producción.
Vuelva a base el clúster test-upgrade
de la versión anterior de la ClusterClass personalizada a la nueva.
kubectl patch cluster test-upgrade --type merge -p '{"spec": {"topology": {"class": "tkg-vsphere-default-v1.1.0-extended"}}}'
Los resultados deben ser cluster.cluster.x-k8s.io/test-upgrade patched
.
Obtenga la información sobre la versión ClusterClass que se está ejecutando en el clúster de test-upgrade
.
kubectl get cluster test-upgrade -o jsonpath='{.spec.topology.class}'
Los resultados deben ser tkg-vsphere-default-v1.1.0-extended
. Anteriormente, era tkg-vsphere-default-extended-v1.0.0
.
Espere varios minutos y ejecute kubectl get cluster
hasta que vea que UpdatesAvailable
se actualizó a true
.
kubectl get cluster test-upgrade -o yaml
Cuando esté listo, debería aparecer un mensaje similar al siguiente en la salida:
...
status:
conditions:
...
- lastTransitionTime: "2023-06-19T09:59:21Z"
message: '[v1.25.9+vmware.1-tkg.1-20230609 v1.26.4+vmware.1-tkg.1-20230609]'
status: "True"
type: UpdatesAvailable
controlPlaneReady: true
infrastructureReady: true
observedGeneration: 5
phase: Provisioned
Actualice el clúster de test-upgrade
.
tanzu cluster upgrade test-upgrade
Compruebe las propiedades del objeto creado.
Por ejemplo, con la modificación del kernel descrita en el ejemplo anterior, recupere el objeto KubeadmControlPlane
y confirme que la configuración del kernel está establecida:
kubectl get kcp test-upgrade-nsc6d -o yaml
Verá resultados similares al siguiente:
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
kind: KubeadmControlPlane
...
preKubeadmCommands:
- hostname "{{ ds.meta_data.hostname }}"
- echo "::1 ipv6-localhost ipv6-loopback" >/etc/hosts
- echo "127.0.0.1 localhost" >>/etc/hosts
- echo "127.0.0.1 {{ ds.meta_data.hostname }}" >>/etc/hosts
- echo "{{ ds.meta_data.hostname }}" >/etc/hostname
- sed -i 's|".*/pause|"projects-stg.registry.vmware.com/tkg/pause|' /etc/containerd/config.toml
- systemctl restart containerd
- echo "net.netfilter.nf_conntrack_max=1048576" >> /etc/sysctl.conf
- sysctl -p
Si la actualización de prueba se realizó correctamente, repita los pasos de Realizar la actualización en los clústeres de producción.
NotaSi se produce algún error durante la actualización, puede revertir volviendo a equilibrar el clúster de la nueva versión de ClusterClass personalizada a la versión anterior.
Si creó clústeres con la ClusterClass predeterminada y desea actualizarlos para utilizar una ClusterClass personalizada, utilice kubectl
para editar el objeto Cluster:
spec.topology.class
al nombre del manifiesto de ClassClass personalizada.spec.topology.variables
para anexar las variables personalizadas.Si desea revertir a una nueva versión de la ClusterClass predeterminada:
spec.topology.class
a la nueva versión de la ClusterClass predeterminada.spec.topology.variables
para eliminar las variables personalizadas. Es posible que deba agregar nuevas variables definidas en la nueva versión de ClusterClass predeterminada.