|
Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado. |
SUSE® Rancher Prime: K3s Referencia de configuración del clúster
Esta sección cubre las opciones de configuración que están disponibles en Rancher para un clúster de Kubernetes K3s nuevo o existente.
Descripción general
Puedes configurar las opciones de Kubernetes de una de dos maneras:
-
Interfaz de Rancher: Utiliza la interfaz de Rancher para seleccionar opciones que se personalizan comúnmente al configurar un clúster de Kubernetes.
-
Archivo de Configuración del Clúster: En lugar de utilizar la interfaz de Rancher para elegir opciones de Kubernetes para el clúster, los usuarios avanzados pueden crear un archivo de configuración K3s. Utilizar un archivo de configuración te permite establecer cualquiera de las opciones disponibles durante una instalación de K3s.
Editando Clústeres en la Interfaz de Rancher
La interfaz de Rancher proporciona dos maneras de editar un clúster:
-
Con un formulario.
-
Con YAML.
Editando Clústeres con un Formulario
El formulario cubre las opciones más frecuentemente necesarias para los clústeres.
Para editar tu clúster,
-
Haz clic en ☰ > Gestión de Clústeres.
-
Ve al clúster que deseas configurar y haz clic en ⋮ > Editar Config.
Editando Clústeres en YAML
Para una referencia completa de las opciones configurables para clústeres K3s en YAML, consulta la documentación de K3s.
Para editar tu clúster con YAML:
-
Haz clic en ☰ > Gestión de Clústeres.
-
Ve al clúster que deseas configurar y haz clic en ⋮ > Editar como YAML.
-
Edita las opciones de RKE bajo la directiva
rkeConfig.
Opciones de configuración en la interfaz de usuario de Rancher
Configuración del grupo de máquinas
Esta subsección cubre configuraciones genéricas del grupo de máquinas. Para configuraciones específicas de proveedores de infraestructura, consulta lo siguiente:
Nombre de repositorio
El nombre del grupo de máquinas.
Número de máquinas
El número de máquinas en el grupo.
Funciones
Opción para asignar roles de etcd, plano de control y trabajador a los nodos.
Avanzadas
Reemplazo automático
La cantidad de tiempo que los nodos pueden estar inalcanzables antes de ser eliminados y reemplazados automáticamente.
Drenar antes de eliminar
Permite drenar nodos desalojando todos los pods antes de que el nodo sea eliminado.
Etiquetas de nodo de Kubernetes
Añadir etiquetas a los nodos para ayudar con la organización y selección de objetos.
Para detalles sobre los requisitos de sintaxis de etiquetas, consulta la documentación de Kubernetes.
Taints
Añadir taints a los nodos, para evitar que los pods se programen o se ejecuten en los nodos, a menos que los pods tengan tolerancias coincidentes.
Configuración del clúster
Fundamentos
Kubernetes Version
La versión de Kubernetes instalada en los nodos de su clúster.
Para obtener detalles sobre cómo actualizar o revertir Kubernetes, consulte Actualización de Kubernetes.
Plantilla de configuración de admisión de seguridad de pods
La plantilla de configuración de admisión de seguridad de pods predeterminada plantilla de configuración de admisión de seguridad de pods para el clúster.
Cifrar secretos
Opción para habilitar o deshabilitar el cifrado de secretos. Cuando está habilitado, los secretos se cifran utilizando una clave AES-CBC. Si está deshabilitado, los secretos cifrados anteriormente no son legibles hasta que el cifrado se habilite nuevamente. Consulte la documentación de K3s para obtener detalles.
Aislamiento de red del proyecto
Si su proveedor de red permite el aislamiento de red del proyecto, puede elegir habilitar o deshabilitar la comunicación entre proyectos.
SELinux
Opción para habilitar o deshabilitar el soporte de SELinux.
CoreDNS
Por defecto, CoreDNS se instala como el proveedor de DNS predeterminado. Si CoreDNS no está instalado, debe instalar usted mismo un proveedor de DNS alternativo. Consulte la documentación de K3s para obtener detalles.
Klipper Service LB
Opción para habilitar o deshabilitar el equilibrador de carga del servicio Klipper. Consulte la documentación de K3s para obtener detalles.
Traefik Ingress
Opción para habilitar o deshabilitar el proxy inverso HTTP y equilibrador de carga Traefik. Para más detalles y opciones de configuración, consulta la documentación de K3s.
Almacenamiento local
Opción para habilitar o deshabilitar el almacenamiento local en los nodos.
Servidor de Métricas
Opción para habilitar o deshabilitar el servidor de métricas. Si está habilitado, asegúrate de que el puerto 10250 esté abierto para el tráfico TCP entrante.
Configuración de Complementos
Manifiestos adicionales de Kubernetes, gestionados como un Complemento, que se aplicarán al clúster al inicio. Consulte la documentación de K3s para obtener detalles.
Variables de Entorno del Agente
Opción para establecer variables de entorno para agentes de K3s. Las variables de entorno se pueden establecer utilizando pares clave-valor. Consulta la documentación de K3 para más detalles.
etcd
Instantáneas Automáticas
Opción para habilitar o deshabilitar instantáneas recurrentes de etcd. Si está habilitado, los usuarios tienen la opción de configurar la frecuencia de las instantáneas. Para más detalles, consulta la documentación de K3s.
Conectividad
CIDR del Clúster
CIDRs de red IPv4/IPv6 a utilizar para IPs de pod (predeterminado: 10.42.0.0/16).
Valores de ejemplo:
-
Solo IPv4:
10.42.0.0/16 -
Solo IPv6:
2001:cafe:42::/56 -
Pila dual:
10.42.0.0/16,2001:cafe:42::/56
Para requisitos y limitaciones adicionales relacionados con la red de pila dual o solo IPv6, consulta los siguientes recursos:
|
Debes configurar el Service CIDR cuando crees el clúster por primera vez. No puedes habilitar el Service CIDR en un clúster existente después de que haya comenzado. |
Service CIDR
CIDRs de red IPv4/IPv6 a utilizar para las IPs del servicio (predeterminado: 10.43.0.0/16).
Valores de ejemplo:
-
Solo IPv4:
10.43.0.0/16 -
Solo IPv6:
2001:cafe:43::/112 -
Pila dual:
10.43.0.0/16,2001:cafe:43::/112
Para requisitos y limitaciones adicionales relacionados con la red de pila dual o solo IPv6, consulta los siguientes recursos:
|
Debes configurar el Service CIDR cuando crees el clúster por primera vez. No puedes habilitar el Service CIDR en un clúster existente después de que haya comenzado. |
DNS del clúster
IP de clúster IPv4 para el servicio coredns. Debería estar en el rango de tu service-cidr (predeterminado: 10.43.0.10).
Rango de puertos del servicio NodePort
Opción para cambiar el rango de puertos que se pueden utilizar para servicios NodePort. El valor por defecto es 30000-32767.
Truncar nombres de host
Opción para truncar nombres de host a 15 caracteres o menos. Solo puedes establecer este campo durante la creación inicial del clúster. No puedes habilitar o deshabilitar el límite de 15 caracteres después de la creación del clúster.
Esta configuración solo afecta a los clústeres provisionados por máquina. Dado que los clústeres personalizados establecen nombres de host durante su propio proceso de creación de nodos, que ocurre fuera de Rancher, este campo no restringe la longitud del nombre de host del clúster personalizado.
Truncar nombres de host en un clúster mejora la compatibilidad con sistemas basados en Windows. Aunque Kubernetes permite nombres de host de hasta 63 caracteres de longitud, los sistemas que utilizan NetBIOS restringen los nombres de host a 15 caracteres o menos.
Nombres Alternativos de TLS
Añadir nombres de host o direcciones IPv4/IPv6 como Nombres Alternativos de Sujeto en el certificado TLS del servidor.
Preferencia de Pila
Elige la pila de red para el clúster. Esta opción afecta a:
-
La dirección utilizada para las sondas de salud y disponibilidad de componentes como Calico, etcd, kube-apiserver, kube-scheduler, kube-controller-manager y kubelet.
-
La URL del servidor en el
authentication-token-webhook-config-filepara el Punto de Acceso Autorizado del Clúster. -
La configuración de
advertise-client-urlspara etcd durante la restauración de instantáneas.
Las opciones son ipv4, ipv6, dual:
-
Cuando se establece en
ipv4, el clúster utiliza127.0.0.1 -
Cuando se establece en
ipv6, el clúster utiliza[::1] -
Cuando se establece en
dual, el clúster utilizalocalhost
La preferencia de pila debe coincidir con la configuración de red del clúster:
-
Establecer en
ipv4para clústeres solo IPv4 -
Establecer en
ipv6para clústeres solo IPv6 -
Establecer en
dualpara clústeres de doble pila
|
Asegurarse de que la configuración de la dirección de retrobucle sea correcta es fundamental para la provisión exitosa del clúster. Para más información, consulta la página Requisitos del Nodo. |
Punto de Acceso Autorizado del Clúster
El Punto de Acceso Autorizado del Clúster se puede utilizar para acceder directamente al servidor API de Kubernetes, sin requerir comunicación a través de Rancher.
Para más detalles sobre cómo funciona un punto de acceso autorizado del clúster y por qué se utiliza, consulta la sección de arquitectura.
Recomendamos utilizar un equilibrador de carga con el punto de acceso autorizado del clúster. Para más detalles, consulta la sección de arquitectura recomendada.
Registros
Selecciona el repositorio de imágenes del que se extraerán las imágenes de Rancher. Para más detalles y opciones de configuración, consulta la K3s documentación.
Estrategia de Actualización
Concurrencia del Plano de Control
Selecciona cuántos nodos pueden actualizar versión al mismo tiempo. Puede ser un número fijo o un porcentaje.
Avanzadas
Opción para establecer opciones de kubelet para diferentes nodos. Para las opciones disponibles, consulta la Kubernetes documentación.
Referencia del Archivo de Configuración del Clúster
Editar clústeres en YAML te permite establecer configuraciones que ya están listadas en Opciones de Configuración en la UI de Rancher, así como establecer parámetros específicos de Rancher.
Haz clic para expandir Ejemplo de Fragmento de Archivo de Configuración del Clúster
apiVersion: provisioning.cattle.io/v1 kind: Cluster especificación: cloudCredentialSecretName: cattle-global-data:cc-fllv6 clusterAgentDeploymentCustomization: {} fleetAgentDeploymentCustomization: {} kubernetesVersion: v1.26.7+k3s1 localClusterAuthEndpoint: {} rkeConfig: additionalManifest: "" chartValues: {} etcd: snapshotRetention: 5 snapshotScheduleCron: 0 */5 * * * machineGlobalConfig: disable-apiserver: false disable-cloud-controller: false disable-controller-manager: false disable-etcd: false disable-kube-proxy: false disable-network-policy: false disable-scheduler: false etcd-expose-metrics: false kube-apiserver-arg: - audit-policy-file=/etc/rancher/k3s/user-audit-policy.yaml - audit-log-path=/etc/rancher/k3s/user-audit.logs profile: null secrets-encryption: false machinePools: - controlPlaneRole: true etcdRole: true machineConfigRef: kind: Amazonec2Config name: nc-test-pool1-pwl5h name: pool1 quantity: 1 unhealthyNodeTimeout: 0s workerRole: true machineSelectorConfig: - config: docker: false protect-kernel-defaults: false selinux: false machineSelectorFiles: - fileSources: - configMap: name: '' secret: name: audit-policy items: - key: audit-policy path: /etc/rancher/k3s/user-audit-policy.yaml machineLabelSelector: matchLabels: rke.cattle.io/control-plane-role: 'true' registries: {} upgradeStrategy: controlPlaneConcurrency: '1' controlPlaneDrainOptions: deleteEmptyDirData: true disableEviction: false enabled: false force: false gracePeriod: -1 ignoreDaemonSets: true ignoreErrors: false postDrainHooks: null preDrainHooks: null skipWaitForDeleteTimeoutSeconds: 0 timeout: 120 workerConcurrency: '1' workerDrainOptions: deleteEmptyDirData: true disableEviction: false enabled: false force: false gracePeriod: -1 ignoreDaemonSets: true ignoreErrors: false postDrainHooks: null preDrainHooks: null skipWaitForDeleteTimeoutSeconds: 0 timeout: 120
additionalManifest
Especificar manifiestos adicionales para entregar a los nodos del plano de control.
El valor es una cadena, y se colocará en la vía /var/lib/rancher/k3s/server/manifests/rancher/addons.yaml en los nodos de destino.
Ejemplo:
additionalManifest: |-
apiVersion: v1
kind: Namespace
metadata:
name: name-xxxx
|
Si deseas personalizar los gráficos del sistema, deberías usar el campo Alternativas, como usar un HelmChartConfig para personalizar los gráficos del sistema a través de |
chartValues
Especificar los valores para los gráficos del sistema instalados por K3s.
Para más información sobre cómo K3s gestiona componentes empaquetados, por favor consulta K3s documentación.
Ejemplo:
chartValues:
chart-name:
key: value
machineGlobalConfig
Especificar configuraciones de K3s. Cualquier cambio de configuración realizado aquí se aplicará a cada nodo. Las opciones de configuración disponibles en la versión independiente de k3s se pueden aplicar aquí.
Ejemplo:
machineGlobalConfig:
etcd-arg:
- key1=value1
- key2=value2
Para facilitar la colocación de archivos en los nodos de antemano, Rancher espera que se incluyan los siguientes valores en la configuración, mientras que K3s espera que los valores se introduzcan como rutas de archivo:
-
registro-privado
-
flannel-conf
Rancher entrega los archivos a la ruta /var/lib/rancher/k3s/etc/config-files/<option> en los nodos de destino y establece las opciones adecuadas en el servidor K3s.
Ejemplo:
apiVersion: provisioning.cattle.io/v1
kind: Cluster
spec:
rkeConfig:
machineGlobalConfig:
private-registry: |
mirrors:
docker.io:
endpoint:
- "http://mycustomreg.com:5000"
configs:
"mycustomreg:5000":
auth:
username: xxxxxx # this is the registry username
password: xxxxxx # this is the registry password
machineSelectorConfig
machineSelectorConfig es lo mismo que machineGlobalConfig excepto que se puede especificar un selector de etiquetas con la configuración. La configuración solo se aplicará a los nodos que coincidan con el selector de etiquetas proporcionado.
Se permiten múltiples entradas de config, cada una especificando su propio machineLabelSelector. Un usuario puede especificar matchExpressions, matchLabels, ambos o ninguno. Omitir la sección machineLabelSelector de este campo tiene el mismo efecto que poner la configuración en la sección machineGlobalConfig.
Ejemplo:
machineSelectorConfig
- config:
config-key: config-value
machineLabelSelector:
matchExpressions:
- key: example-key
operator: string # Valid operators are In, NotIn, Exists and DoesNotExist.
values:
- example-value1
- example-value2
matchLabels:
key1: value1
key2: value2
machineSelectorFiles
|
Esta función está disponible en Rancher v2.7.2 y versiones posteriores. |
Entregar archivos a los nodos, para que los archivos puedan estar en su lugar antes de iniciar los procesos del servidor o agente K3s.
El contenido del archivo se recupera de un secreto o un configmap. Los nodos de destino se filtran por el machineLabelSelector.
Ejemplo:
machineSelectorFiles:
- fileSources:
- secret:
items:
- key: example-key
path: path-to-put-the-file-on-nodes
permissions: 644 (optional)
hash: base64-encoded-hash-of-the-content (optional)
name: example-secret-name
machineLabelSelector:
matchExpressions:
- key: example-key
operator: string # Valid operators are In, NotIn, Exists and DoesNotExist.
values:
- example-value1
- example-value2
matchLabels:
key1: value1
key2: value2
- fileSources:
- configMap:
items:
- key: example-key
path: path-to-put-the-file-on-nodes
permissions: 644 (optional)
hash: base64-encoded-hash-of-the-content (optional)
name: example-configmap-name
machineLabelSelector:
matchExpressions:
- key: example-key
operator: string # Valid operators are In, NotIn, Exists and DoesNotExist.
values:
- example-value1
- example-value2
matchLabels:
key1: value1
key2: value2
El secreto o configmap debe cumplir con los siguientes requisitos:
-
Debe estar en el espacio de nombres
fleet-defaultdonde existe el objeto Cluster. -
Debe tener la anotación
rke.cattle.io/object-authorized-for-clusters: cluster-name1,cluster-name2, que permite a los clústeres de destino usarlo.
|
Rancher Dashboard proporciona un formulario fácil de usar para crear el secreto o configmap. |
Ejemplo:
apiVersion: v1
data:
audit-policy: >-
IyBMb2cgYWxsIHJlcXVlc3RzIGF0IHRoZSBNZXRhZGF0YSBsZXZlbC4KYXBpVmVyc2lvbjogYXVkaXQuazhzLmlvL3YxCmtpbmQ6IFBvbGljeQpydWxlczoKLSBsZXZlbDogTWV0YWRhdGE=
kind: Secret
metadata:
annotations:
rke.cattle.io/object-authorized-for-clusters: cluster1
name: name1
namespace: fleet-default