De forma predeterminada, cuando se implementa un clúster de administración mediante la ejecución de tanzu mc create
, Tanzu Kubernetes Grid crea un clúster kind
temporal en la máquina de arranque local. A continuación, utiliza el clúster local para aprovisionar el clúster de administración final en su infraestructura de nube de destino (vSphere, Amazon Web Services (AWS) o Azure, y elimina el clúster temporal después de que el clúster de administración se implemente correctamente. Al ejecutar tanzu mc delete
para eliminar un clúster de administración, se invoca un proceso similar para crear, usar y, a continuación, eliminar un clúster kind
local temporal.
En algunas circunstancias, es posible que desee conservar el clúster local después de implementar o eliminar un clúster de administración. Por ejemplo, para examinar los objetos del clúster o revisar sus registros. Para ello, puede implementar o eliminar el clúster de administración con las opciones de la CLI --use-existing-bootstrap-cluster
o --use-existing-cleanup-cluster
.
Con estas opciones, Tanzu Kubernetes Grid omite la creación y la eliminación del clúster kind
local y, en su lugar, utiliza un clúster local preexistente que ya tiene o crea un nuevo para el propósito.
PrecauciónEl uso de un clúster de arranque existente es un caso de uso avanzado para usuarios de Kubernetes experimentados. Si es posible, se recomienda encarecidamente utilizar el clúster
kind
predeterminado que Tanzu Kubernetes Grid proporciona para arrancar los clústeres de administración.
Para conservar el clúster kind
local durante la creación o la eliminación del clúster de administración, primero debe tener un clúster compatible en ejecución en la máquina de arranque. Asegúrese de esto identificando o creando el clúster, como se describe en las siguientes subsecciones.
Para utilizar un clúster local existente, debe asegurarse de que se cumpla lo siguiente:
El clúster nunca se utilizó previamente para arrancar o eliminar un clúster de administración.
El clúster se creó con kind
v0.11 o una versión posterior.
Para comprobarlo, ejecute docker ps
y asocie la versión kindest:node
que aparece con las versiones indicadas en las notas de la versión de kind
.
Fondo: Si la máquina de arranque utiliza un kernel de Linux compilado después de la revisión de seguridad de Linux de mayo de 2021 (por ejemplo, Linux 5.11 y 5.12 con Fedora), el clúster de arranque debe crearse con la versión 0.11 de kind
o una versión posterior. Las versiones anteriores de kind
intentan cambiar un archivo de solo lectura en las versiones recientes de Linux, lo que provoca un error. La revisión de seguridad se está adaptando a versiones anteriores de todos los kernels LTS a partir de la versión 4.9, lo que provoca posibles errores de implementación del clúster de administración a medida que se envían actualizaciones del sistema operativo, incluida la máquina Docker en el sistema operativo Mac y el subsistema Windows para Linux.
Si ambas calificaciones son ciertas para el clúster local actual, puede utilizarlo para crear o eliminar un clúster de administración. De lo contrario, debe reemplazar el clúster de la siguiente manera:
Elimine el clúster.
Descargue e instale una nueva versión de kind
, tal como se describe en la documentación de kind.
Cree un clúster kind
como se describe en la sección Crear un clúster nuevo a continuación.
Para crear un nuevo clúster de arranque local, realice una de las siguientes acciones, en función de la conectividad de la máquina de arranque:
Entorno completamente conectado:
Cree el clúster:
kind create cluster
Entorno con acceso a Internet restringido:
Cree un archivo de configuración del clúster kind
kind.yml
de la siguiente manera:
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: tkg-kind
nodes:
- role: control-plane
# This option mounts the host docker registry folder into
# the control-plane node, allowing containerd to access them.
extraMounts:
- containerPath: CONTAINER-CA-PATH
hostPath: HOST-CA-PATH
containerdConfigPatches:
- |-
[plugins."io.containerd.grpc.v1.cri".registry.configs."REGISTRY-FQDN".tls]
ca_file = "/etc/containerd/REGISTRY-FQDN/CA.crt"
Donde:
CONTAINER-CA-PATH
es la ruta del certificado de CA de Harbor en el contenedor kind
, como /etc/containerd/REGISTRY-FQDN
HOST-CA-PATH
es la ruta de acceso al certificado de CA de Harbor en la máquina virtual de arranque en la que se crea el clúster kind
, como /etc/docker/certs.d/REGISTRY-FQDN
REGISTRY-FQDN
es el nombre del registro de HarborCA.crt
es el certificado de CA del registro de HarborDe forma predeterminada, crashd
busca un clúster con el nombre tkg-kind
, de modo que asignar un nombre al clúster kind
tkg-kind
facilita la recopilación de registros si el clúster no puede arrancar.
Utilice el archivo de configuración anterior para crear el grupo kind
.
kind create cluster --config kind.yml
Para implementar un clúster de administración de Tanzu Kubernetes Grid con un clúster de arranque existente:
Siga el procedimiento anterior para Identificar o crear un clúster de arranque local.
Establecer el contexto dekubectl
al clúster de arranque local:
kubectl config use-context my-bootstrap-cluster-admin@my-bootstrap-cluster
Implemente el clúster de administración ejecutando el comando tanzu mc create
con la opción --use-existing-bootstrap-cluster
:
tanzu mc create --file mc.yaml --use-existing-bootstrap-cluster my-bootstrap-cluster
Consulte Implementar clústeres de administración para obtener más información sobre la ejecución de tanzu mc create
.
Para eliminar un clúster de administración de Tanzu Kubernetes Grid con un clúster de arranque existente:
Siga el procedimiento anterior para Identificar o crear un clúster de arranque local.
Establecer el contexto dekubectl
al clúster de arranque local:
kubectl config use-context my-bootstrap-cluster-admin@my-bootstrap-cluster
Elimine el clúster de administración ejecutando el comando tanzu mc delete
con la opción --use-existing-cleanup-cluster
:
tanzu mc delete --use-existing-cleanup-cluster my-bootstrap-cluster
Consulte Eliminar clústeres de administración para obtener más información sobre la ejecución de tanzu mc delete
.