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.

Servidor K3s

En esta sección, aprenderás a configurar el servidor K3s.

Ten en cuenta que los servidores también ejecutan un agente, por lo que todas las opciones de configuración que se enumeran en la k3s agent documentación también son compatibles en los servidores.

Las opciones están documentadas en esta página como banderas de CLI, pero también se pueden pasar como opciones de archivo de configuración. Consulta la documentación del archivo de configuración para obtener más información sobre el uso de archivos de configuración YAML.

Valores de configuración críticos

Las siguientes opciones deben establecerse al mismo valor en todos los servidores del clúster. No hacerlo provocará que los nuevos servidores no puedan unirse al clúster al usar etcd embebido, o un funcionamiento incorrecto del clúster al usar un almacén de datos externo.

  • --agent-token

  • --cluster-cidr

  • --cluster-dns

  • --cluster-domain

  • --disable-cloud-controller

  • --disable-helm-controller

  • --disable-network-policy

  • --disable=servicelb nota: otros componentes empaquetados pueden estar deshabilitados de forma individual en cada servidor

  • --egress-selector-mode

  • --embedded-registry

  • --flannel-backend

  • --flannel-external-ip

  • --flannel-ipv6-masq

  • --secrets-encryption

  • --secrets-encryption-provider

  • --service-cidr

Opciones comúnmente utilizadas

Base de datos

Indicadores Variable de entorno Default Descripción

--datastore-endpoint valor

K3S_DATASTORE_ENDPOINT

Especificar el nombre de la fuente de datos etcd, NATS, MySQL, Postgres o SQLite

--datastore-cafile valor

K3S_DATASTORE_CAFILE

Archivo de autoridad de certificación TLS utilizado para asegurar la comunicación del backend del almacén de datos

--datastore-certfile valor

K3S_DATASTORE_CERTFILE

Archivo de certificación TLS utilizado para asegurar la comunicación del backend del almacén de datos

--datastore-keyfile valor

K3S_DATASTORE_KEYFILE

Archivo de clave TLS utilizado para asegurar la comunicación del backend del almacén de datos

--etcd-expose-metrics

false

Exponer métricas de etcd a la interfaz del cliente

--etcd-disable-snapshots

false

Deshabilitar instantáneas automáticas de etcd

--etcd-snapshot-name valor

"etcd-snapshot-<unix-timestamp>"

Establece el nombre base de las instantáneas de etcd.

--etcd-snapshot-schedule-cron valor

"0 */12 * * *"

Tiempo de intervalo de instantáneas en la especificación cron. por ejemplo, cada 5 horas '0 */5 _ * _'

--etcd-snapshot-retention valor

5

Número de instantáneas a retener

--etcd-snapshot-dir valor

${data-dir}/db/snapshots

Directorio para guardar las instantáneas de la base de datos

--etcd-s3

Habilitar copia de seguridad en S3

--etcd-s3-endpoint valor

"s3.amazonaws.com"

URL del punto final de S3

--etcd-s3-endpoint-ca valor

Certificado CA personalizado de S3 para conectarse al punto final de S3

--etcd-s3-skip-ssl-verify

Desactiva la validación del certificado SSL de S3

--etcd-s3-access-key valor

AWS_ACCESS_KEY_ID

Clave de acceso de S3

--etcd-s3-secret-key valor

AWS_SECRET_ACCESS_KEY

Clave secreta de S3

--etcd-s3-bucket valor

Nombre del bucket de S3

--etcd-s3-region valor

"us-east-1"

Región de S3 / ubicación del bucket (opcional)

--etcd-s3-folder valor

Carpeta de S3

--etcd-s3-proxy

Servidor proxy a utilizar al conectarse a S3, sobrescribiendo cualquier variable de entorno relacionada con el proxy

--etcd-s3-config-secret

Nombre del secreto en el espacio de nombres kube-system utilizado para configurar S3, si etcd-s3 está habilitado y no se establecen otras opciones de etcd-s3

--etcd-s3-insecure

Desactiva S3 sobre HTTPS

--etcd-s3-timeout valor

5m0s

Tiempo de espera de S3 (por defecto: 5m0s)

Opciones de clúster

Indicadores Variable de entorno Descripción

--token valor, -t valor

K3S_TOKEN

Secreto compartido utilizado para unir un servidor o agente a un clúster

--token-file valor

K3S_TOKEN_FILE

Archivo que contiene el secreto/token del clúster

--agent-token valor

K3S_AGENT_TOKEN

Secreto compartido utilizado para unir agentes al clúster, pero no servidores

--agent-token-file valor

K3S_AGENT_TOKEN_FILE

Archivo que contiene el secreto del agente

--server valor

K3S_URL

Servidor al que conectarse, utilizado para unirse a un clúster

--cluster-init

K3S_CLUSTER_INIT

Inicializar un nuevo clúster utilizando Etcd embebido

--cluster-reset

K3S_CLUSTER_RESET

Olvidar todos los pares y convertirse en el único miembro de un nuevo clúster

Opciones de Kubeconfig para administrador

Indicadores Variable de entorno Descripción

--write-kubeconfig value, -o valor

K3S_KUBECONFIG_OUTPUT

Escribir kubeconfig para el cliente administrador en este archivo

--write-kubeconfig-mode valor

K3S_KUBECONFIG_MODE

Escribir kubeconfig con este modo. El archivo kubeconfig es propiedad de root y se escribe con un modo por defecto de 600. Cambiar el modo a 644 permitirá que otros usuarios no privilegiados en el host puedan leerlo.

--write-kubeconfig-group valor

K3S_KUBECONFIG_GROUP

Escribir grupo de kubeconfig. Combinando con --write-kubeconfig-mode, permitirá a sus administradores de k3s acceder al archivo kubeconfig pero manteniendo el archivo como propiedad de root.

Opciones avanzadas

Registro

Indicadores Default Descripción

--debug

N/D

Activar los registros de depuración

-v valor

0

Número para la verbosidad del nivel de registro

--vmodule valor

N/D

Lista separada por comas de configuraciones FILE_PATTERN=LOG_LEVEL para el registro filtrado por archivo

--log value, -l valor

N/D

Registro en archivo

--alsologtostderr

N/D

Registrar en error estándar así como en archivo (si está configurado)

Escuchadores

Indicadores Default Descripción

--bind-address valor

0.0.0.0

Dirección de enlace de k3s

--https-listen-port valor

6443

Puerto de escucha HTTPS

--advertise-address valor

node-external-ip/node-ip

Dirección IPv4/IPv6 que el apiserver publicita para su punto final de servicio
Tenga en cuenta que el rango de IP principal service-cidr debe ser de la misma familia de direcciones que la dirección publicitada

--advertise-port valor

listen-port/0

Puerto que el apiserver utiliza para publicitar a los miembros del clúster

--tls-san valor

N/D

Añadir nombres de host adicionales o direcciones IPv4/IPv6 como Nombres Alternativos de Sujeto en el certificado TLS

--tls-san-security

true

Proteger el certificado TLS del servidor negándose a añadir Nombres Alternativos de Sujeto no asociados con el servicio apiserver de kubernetes, nodos del servidor o valores de la opción tls-san

Datos

Indicadores Default Descripción

--data-dir value, -d valor

/var/lib/rancher/k3s o ${HOME}/.rancher/k3s si no es root

Carpeta para mantener el estado

Cifrado de secretos

Indicadores Default Descripción

--secrets-encryption

false

Habilitar cifrado de secretos en reposo

--secrets-encryption-provider

aescbc

Proveedor de cifrado a utilizar

Conectividad

Indicadores Default Descripción

--cluster-cidr valor

"10.42.0.0/16"

CIDRs de red IPv4/IPv6 a utilizar para IPs de pod

--service-cidr valor

"10.43.0.0/16"

CIDRs de red IPv4/IPv6 a utilizar para las IPs del servicio

--service-node-port-range valor

"30000-32767"

Rango de puertos a reservar para servicios con visibilidad NodePort

--cluster-dns valor

"10.43.0.10"

IP de clúster IPv4 para el servicio coredns. Debería estar en el rango de tu servicio-cidr

--cluster-domain valor

"cluster.local"

Dominio del clúster

--flannel-backend valor

"vxlan"

Uno de 'none', 'vxlan', 'ipsec' (obsoleto), 'host-gw', 'wireguard-native' o 'wireguard' (obsoleto)

--flannel-ipv6-masq

"N/A"

Habilitar el enmascaramiento IPv6 para el pod

--flannel-external-ip

"N/A"

Utilizar direcciones IP externas de nodo para el tráfico de Flannel

--servicelb-namespace valor

"kube-system"

Espacio de nombres de los pods para el componente servicelb

--egress-selector-mode valor

"agente"

Debe ser uno de los siguientes:

  • inhabilitado: El apiserver no utiliza túneles de agente para comunicarse con los nodos. Requiere que los servidores ejecuten agentes y tengan conectividad directa con el kubelet en los agentes, o el apiserver no podrá acceder a los puntos finales del servicio ni realizar kubectl exec y kubectl logs.

  • agente: El apiserver utiliza túneles de agente para comunicarse con los nodos. Los nodos permiten la conexión de túneles desde direcciones de retrobucle. Requiere que los servidores también ejecuten agentes, o el apiserver no podrá acceder a los puntos finales del servicio. El valor predeterminado histórico para k3s.

  • pod: El apiserver utiliza túneles de agente para comunicarse con los nodos y los puntos finales del servicio, redirigiendo las conexiones de los puntos finales al agente correcto al observar los nodos. Los nodos permiten la conexión de túneles desde direcciones de retrobucle, o un CIDR asignado a su nodo.

  • clúster: El apiserver utiliza túneles de agente para comunicarse con los nodos y los puntos finales del servicio, redirigiendo las conexiones de los puntos finales al agente correcto al observar los puntos finales. Los nodos permiten la conexión de túneles desde direcciones de retrobucle, o el rango CIDR del clúster configurado.

Clase de almacenamiento

Indicadores Descripción

--default-local-storage-path valor

Ruta de almacenamiento local predeterminada para la clase de almacenamiento del aprovisionador local

Componentes de Kubernetes

Indicadores Descripción

--disable valor

Ver "Usando la bandera --disable"

--disable-scheduler

Deshabilitar el programador predeterminado de Kubernetes

--disable-cloud-controller

Deshabilitar el administrador de control de nube predeterminado de k3s

--disable-kube-proxy

Deshabilitar la ejecución de kube-proxy

--disable-network-policy

Deshabilitar el controlador de políticas de red predeterminado de k3s

--disable-helm-controller

Deshabilitar el controlador de Helm

Banderas personalizadas para procesos de Kubernetes

Indicadores Descripción

--etcd-arg valor

Bandera personalizada para el proceso etcd

--kube-apiserver-arg valor

Bandera personalizada para el proceso kube-apiserver

--kube-scheduler-arg valor

Bandera personalizada para el proceso kube-scheduler

--kube-controller-manager-arg valor

Bandera personalizada para el proceso kube-controller-manager

--kube-cloud-controller-manager-arg valor

Bandera personalizada para el proceso kube-cloud-controller-manager

--kubelet-arg valor

Bandera personalizada para el proceso kubelet

--kube-proxy-arg valor

Bandera personalizada para el proceso kube-proxy

Opciones experimentales

Indicadores Descripción

--rootless

Ejecutar sin privilegios

--enable-pprof

Habilitar el endpoint pprof en el puerto del supervisor

--docker

Usar cri-dockerd en lugar de containerd

--prefer-bundled-bin

Preferir los binarios de espacio de usuario empaquetados sobre los binarios del host

--disable-agent

Ver "Ejecutando Servidores Sin Agente"

--embedded-registry

Ver "Espejo de Registro Embebido"

--vpn-auth

Ver "Integración con el proveedor de VPN Tailscale"

--vpn-auth-file

Ver "Integración con el proveedor de VPN Tailscale"

Opciones obsoletas

Indicadores Variable de entorno Descripción

--no-flannel

N/D

Uso --flannel-backend=none

--no-deploy valor

N/D

Uso --disable

--cluster-secret valor

K3S_CLUSTER_SECRET

Uso --token

--flannel-backend wireguard

N/D

Uso --flannel-backend=wireguard-native

--flannel-backend value=option1=value

N/D

Usar --flannel-conf para especificar el archivo de configuración de flannel con la configuración del backend

Ayuda de CLI del Servidor K3s

Si una opción aparece entre corchetes a continuación, por ejemplo [$K3S_TOKEN], significa que la opción puede ser pasada como variable de entorno con ese nombre.

NAME:
   k3s server - Run management server

USAGE:
   k3s server [OPTIONS]

OPTIONS:
   --config FILE, -c FILE                     (config) Load configuration from FILE (default: "/etc/rancher/k3s/config.yaml") [$K3S_CONFIG_FILE]
   --debug                                    (logging) Turn on debug logs [$K3S_DEBUG]
   -v value                                   (logging) Number for the log level verbosity (default: 0)
   --vmodule value                            (logging) Comma-separated list of FILE_PATTERN=LOG_LEVEL settings for file-filtered logging
   --log value, -l value                      (logging) Log to file
   --alsologtostderr                          (logging) Log to standard error as well as file (if set)
   --bind-address value                       (listener) k3s bind address (default: 0.0.0.0)
   --https-listen-port value                  (listener) HTTPS listen port (default: 6443)
   --advertise-address value                  (listener) IPv4/IPv6 address that apiserver uses to advertise to members of the cluster (default: node-external-ip/node-ip)
   --advertise-port value                     (listener) Port that apiserver uses to advertise to members of the cluster (default: listen-port) (default: 0)
   --tls-san value                            (listener) Add additional hostnames or IPv4/IPv6 addresses as Subject Alternative Names on the server TLS cert
   --tls-san-security                         (listener) Protect the server TLS cert by refusing to add Subject Alternative Names not associated with the kubernetes apiserver service, server nodes, or values of the tls-san option (default: true)
   --data-dir value, -d value                 (data) Folder to hold state default /var/lib/rancher/k3s or ${HOME}/.rancher/k3s if not root [$K3S_DATA_DIR]
   --cluster-cidr value                       (networking) IPv4/IPv6 network CIDRs to use for pod IPs (default: 10.42.0.0/16)
   --service-cidr value                       (networking) IPv4/IPv6 network CIDRs to use for service IPs (default: 10.43.0.0/16)
   --service-node-port-range value            (networking) Port range to reserve for services with NodePort visibility (default: "30000-32767")
   --cluster-dns value                        (networking) IPv4 Cluster IP for coredns service. Should be in your service-cidr range (default: 10.43.0.10)
   --cluster-domain value                     (networking) Cluster Domain (default: "cluster.local")
   --flannel-backend value                    (networking) Backend (valid values: 'none', 'vxlan', 'host-gw', 'wireguard-native' (default: "vxlan")   --flannel-ipv6-masq                        (networking) Enable IPv6 masquerading for pod
   --flannel-external-ip                      (networking) Use node external IP addresses for Flannel traffic
   --egress-selector-mode value               (networking) One of 'agent', 'cluster', 'pod', 'disabled' (default: "agent")
   --servicelb-namespace value                (networking) Namespace of the pods for the servicelb component (default: "kube-system")
   --write-kubeconfig value, -o value         (client) Write kubeconfig for admin client to this file [$K3S_KUBECONFIG_OUTPUT]
   --write-kubeconfig-mode value              (client) Write kubeconfig with this mode [$K3S_KUBECONFIG_MODE]
   --write-kubeconfig-group value             (client) Write kubeconfig with this group [$K3S_KUBECONFIG_GROUP]
   --helm-job-image value                     (helm) Default image to use for helm jobs
   --token value, -t value                    (cluster) Shared secret used to join a server or agent to a cluster [$K3S_TOKEN]
   --token-file value                         (cluster) File containing the token [$K3S_TOKEN_FILE]
   --agent-token value                        (cluster) Shared secret used to join agents to the cluster, but not servers [$K3S_AGENT_TOKEN]
   --agent-token-file value                   (cluster) File containing the agent secret [$K3S_AGENT_TOKEN_FILE]
   --server value, -s value                   (cluster) Server to connect to, used to join a cluster [$K3S_URL]
   --cluster-init                             (cluster) Initialize a new cluster using embedded Etcd [$K3S_CLUSTER_INIT]
   --cluster-reset                            (cluster) Forget all peers and become sole member of a new cluster [$K3S_CLUSTER_RESET]
   --cluster-reset-restore-path value         (db) Path to snapshot file to be restored
   --kube-apiserver-arg value                 (flags) Customized flag for kube-apiserver process
   --etcd-arg value                           (flags) Customized flag for etcd process
   --kube-controller-manager-arg value        (flags) Customized flag for kube-controller-manager process
   --kube-scheduler-arg value                 (flags) Customized flag for kube-scheduler process
   --kube-cloud-controller-manager-arg value  (flags) Customized flag for kube-cloud-controller-manager process
   --datastore-endpoint value                 (db) Specify etcd, NATS, MySQL, Postgres, or SQLite (default) data source name [$K3S_DATASTORE_ENDPOINT]
   --datastore-cafile value                   (db) TLS Certificate Authority file used to secure datastore backend communication [$K3S_DATASTORE_CAFILE]
   --datastore-certfile value                 (db) TLS certification file used to secure datastore backend communication [$K3S_DATASTORE_CERTFILE]
   --datastore-keyfile value                  (db) TLS key file used to secure datastore backend communication [$K3S_DATASTORE_KEYFILE]
   --etcd-expose-metrics                      (db) Expose etcd metrics to client interface. (default: false)
   --etcd-disable-snapshots                   (db) Disable automatic etcd snapshots
   --etcd-snapshot-name value                 (db) Set the base name of etcd snapshots (default: etcd-snapshot-<unix-timestamp>) (default: "etcd-snapshot")
   --etcd-snapshot-schedule-cron value        (db) Snapshot interval time in cron spec. eg. every 5 hours '0 */5 * * *' (default: "0 */12 * * *")
   --etcd-snapshot-retention value            (db) Number of snapshots to retain (default: 5)
   --etcd-snapshot-dir value                  (db) Directory to save db snapshots. (default: $\{data-dir}/db/snapshots)
   --etcd-snapshot-compress                   (db) Compress etcd snapshot
   --etcd-s3                                  (db) Enable backup to S3
   --etcd-s3-endpoint value                   (db) S3 endpoint url (default: "s3.amazonaws.com")
   --etcd-s3-endpoint-ca value                (db) S3 custom CA cert to connect to S3 endpoint
   --etcd-s3-skip-ssl-verify                  (db) Disables S3 SSL certificate validation
   --etcd-s3-access-key value                 (db) S3 access key [$AWS_ACCESS_KEY_ID]
   --etcd-s3-secret-key value                 (db) S3 secret key [$AWS_SECRET_ACCESS_KEY]
   --etcd-s3-bucket value                     (db) S3 bucket name
   --etcd-s3-region value                     (db) S3 region / bucket location (optional) (default: "us-east-1")
   --etcd-s3-folder value                     (db) S3 folder
   --etcd-s3-proxy value                      (db) Proxy server to use when connecting to S3, overriding any proxy-releated environment variables
   --etcd-s3-config-secret value              (db) Name of secret in the kube-system namespace used to configure S3, if etcd-s3 is enabled and no other etcd-s3 options are set
   --etcd-s3-insecure                         (db) Disables S3 over HTTPS
   --etcd-s3-timeout value                    (db) S3 timeout (default: 5m0s)
   --default-local-storage-path value         (storage) Default local storage path for local provisioner storage class
   --disable value                            (components) Do not deploy packaged components and delete any deployed components (valid items: coredns, servicelb, traefik, local-storage, metrics-server, runtimes)
   --disable-scheduler                        (components) Disable Kubernetes default scheduler
   --disable-cloud-controller                 (components) Disable k3s default cloud controller manager
   --disable-kube-proxy                       (components) Disable running kube-proxy
   --disable-network-policy                   (components) Disable k3s default network policy controller
   --disable-helm-controller                  (components) Disable Helm controller
   --embedded-registry                        (experimental/components) Enable embedded distributed container registry; requires use of embedded containerd; when enabled agents will also listen on the supervisor port
   --supervisor-metrics                       (experimental/components) Enable serving k3s internal metrics on the supervisor port; when enabled agents will also listen on the supervisor port
   --node-name value                          (agent/node) Node name [$K3S_NODE_NAME]
   --with-node-id                             (agent/node) Append id to node name
   --node-label value                         (agent/node) Registering and starting kubelet with set of labels
   --node-taint value                         (agent/node) Registering kubelet with set of taints
   --image-credential-provider-bin-dir value  (agent/node) The path to the directory where credential provider plugin binaries are located (default: "/var/lib/rancher/credentialprovider/bin")
   --image-credential-provider-config value   (agent/node) The path to the credential provider plugin config file (default: "/var/lib/rancher/credentialprovider/config.yaml")
   --docker                                   (agent/runtime) (experimental) Use cri-dockerd instead of containerd
   --container-runtime-endpoint value         (agent/runtime) Disable embedded containerd and use the CRI socket at the given path; when used with --docker this sets the docker socket path
   --default-runtime value                    (agent/runtime) Set the default runtime in containerd
   --image-service-endpoint value             (agent/runtime) Disable embedded containerd image service and use remote image service socket at the given path. If not specified, defaults to --container-runtime-endpoint.
   --disable-default-registry-endpoint        (agent/containerd) Disables containerd fallback default registry endpoint when a mirror is configured for that registry
   --nonroot-devices                          (agent/containerd) Allows non-root pods to access devices by setting device_ownership_from_security_context=true in the containerd CRI config
   --pause-image value                        (agent/runtime) Customized pause image for containerd or docker sandbox (default: "rancher/mirrored-pause:3.6")
   --snapshotter value                        (agent/runtime) Override default containerd snapshotter (default: "overlayfs")
   --private-registry value                   (agent/runtime) Private registry configuration file (default: "/etc/rancher/k3s/registries.yaml")
   --system-default-registry value            (agent/runtime) Private registry to be used for all system images [$K3S_SYSTEM_DEFAULT_REGISTRY]
   --node-ip value, -i value                  (agent/networking) IPv4/IPv6 addresses to advertise for node
   --node-external-ip value                   (agent/networking) IPv4/IPv6 external IP addresses to advertise for node
   --node-internal-dns value                  (agent/networking) internal DNS addresses to advertise for node
   --node-external-dns value                  (agent/networking) external DNS addresses to advertise for node
   --resolv-conf value                        (agent/networking) Kubelet resolv.conf file [$K3S_RESOLV_CONF]
   --flannel-iface value                      (agent/networking) Override default flannel interface
   --flannel-conf value                       (agent/networking) Override default flannel config file
   --flannel-cni-conf value                   (agent/networking) Override default flannel cni config file
   --vpn-auth value                           (agent/networking) (experimental) Credentials for the VPN provider. It must include the provider name and join key in the format name=<vpn-provider>,joinKey=<key>[,controlServerURL=<url>][,extraArgs=<args>] [$K3S_VPN_AUTH]
   --vpn-auth-file value                      (agent/networking) (experimental) File containing credentials for the VPN provider. It must include the provider name and join key in the format name=<vpn-provider>,joinKey=<key>[,controlServerURL=<url>][,extraArgs=<args>] [$K3S_VPN_AUTH_FILE]
   --kubelet-arg value                        (agent/flags) Customized flag for kubelet process
   --kube-proxy-arg value                     (agent/flags) Customized flag for kube-proxy process
   --protect-kernel-defaults                  (agent/node) Kernel tuning behavior. If set, error if kernel tunables are different than kubelet defaults.
   --secrets-encryption                       Enable secret encryption at rest
   --enable-pprof                             (experimental) Enable pprof endpoint on supervisor port
   --rootless                                 (experimental) Run rootless
   --prefer-bundled-bin                       (experimental) Prefer bundled userspace binaries over host binaries
   --selinux                                  (agent/node) Enable SELinux in containerd [$K3S_SELINUX]
   --lb-server-port value                     (agent/node) Local port for supervisor client load-balancer. If the supervisor and apiserver are not colocated an additional port 1 less than this port will also be used for the apiserver client load-balancer. (default: 6444) [$K3S_LB_SERVER_PORT]