Ce document a été traduit à l'aide d'une technologie de traduction automatique. Bien que nous nous efforcions de fournir des traductions exactes, nous ne fournissons aucune garantie quant à l'exhaustivité, l'exactitude ou la fiabilité du contenu traduit. En cas de divergence, la version originale anglaise prévaut et fait foi.

serveur k3s

Dans cette section, vous apprendrez à configurer le serveur K3s.

Notez que les serveurs exécutent également un agent, donc toutes les options de configuration énumérées dans la k3s agent documentation sont également prises en charge sur les serveurs.

Les options sont documentées sur cette page sous forme de drapeaux CLI, mais peuvent également être passées en tant qu’options de fichier de configuration. Consultez la documentation sur le fichier de configuration pour plus d’informations sur l’utilisation des fichiers de configuration YAML.

Valeurs de configuration critiques

Les options suivantes doivent être définies avec la même valeur sur tous les serveurs du cluster. Le non-respect de cette consigne entraînera l’échec des nouveaux serveurs à rejoindre le cluster lors de l’utilisation d’etcd intégré, ou un fonctionnement incorrect du cluster lors de l’utilisation d’un magasin de données externe.

  • --agent-token

  • --cluster-cidr

  • --cluster-dns

  • --cluster-domain

  • --disable-cloud-controller

  • --disable-helm-controller

  • --disable-network-policy

  • --disable=servicelb note : d’autres composants empaquetés peuvent être désactivés sur une base par serveur

  • --egress-selector-mode

  • --embedded-registry

  • --flannel-backend

  • --flannel-external-ip

  • --flannel-ipv6-masq

  • --secrets-encryption

  • --secrets-encryption-provider

  • --service-cidr

Options couramment utilisées

Base de données

Indicateur Variable d’environnement Par défaut Description

--datastore-endpoint valeur

K3S_DATASTORE_ENDPOINT

Spécifiez le nom de la source de données etcd, NATS, MySQL, Postgres ou SQLite

--datastore-cafile valeur

K3S_DATASTORE_CAFILE

Fichier d’autorité de certification TLS utilisé pour sécuriser la communication du backend de stockage de données

--datastore-certfile valeur

K3S_DATASTORE_CERTFILE

Fichier de certificat TLS utilisé pour sécuriser la communication du backend de stockage de données

--datastore-keyfile valeur

K3S_DATASTORE_KEYFILE

Fichier de clé TLS utilisé pour sécuriser la communication du backend de stockage de données

--etcd-expose-metrics

false

Exposer les métriques etcd à l’interface client

--etcd-disable-snapshots

false

Désactiver les instantanés automatiques d’etcd

--etcd-snapshot-name valeur

"etcd-snapshot-<unix-timestamp>"

Définir le nom de base des instantanés etcd.

--etcd-snapshot-schedule-cron valeur

"0 */12 * * *"

Temps d’intervalle des instantanés dans la spécification cron. Par exemple, toutes les 5 heures '0 */5 _ * _'

--etcd-snapshot-retention valeur

5

Nombre d’instantanés à conserver

--etcd-snapshot-dir valeur

${data-dir}/db/snapshots

Répertoire pour enregistrer les instantanés de la base de données

--etcd-s3

Activer la sauvegarde vers S3

--etcd-s3-endpoint valeur

"s3.amazonaws.com"

URL du point de terminaison S3

--etcd-s3-endpoint-ca valeur

Certificat CA personnalisé S3 pour se connecter au point de terminaison S3

--etcd-s3-skip-ssl-verify

Désactive la validation des certificats SSL S3

--etcd-s3-access-key valeur

AWS_ACCESS_KEY_ID

Clé d’accès S3

--etcd-s3-secret-key valeur

AWS_SECRET_ACCESS_KEY

Clé secrète S3

--etcd-s3-bucket valeur

Nom du bucket S3

--etcd-s3-region valeur

"us-east-1"

Région S3 / emplacement du bucket (facultatif)

--etcd-s3-folder valeur

Dossier S3

--etcd-s3-proxy

Serveur proxy à utiliser lors de la connexion à S3, remplaçant toutes les variables d’environnement liées au proxy

--etcd-s3-config-secret

Nom du secret dans l’espace de noms kube-system utilisé pour configurer S3, si etcd-s3 est activé et qu’aucune autre option etcd-s3 n’est définie

--etcd-s3-insecure

Désactive S3 sur HTTPS

--etcd-s3-timeout valeur

5m0s

Délai d’attente S3 (par défaut : 5m0s)

Options de grappe

Indicateur Variable d’environnement Description

--token valeur, -t valeur

K3S_TOKEN

Secret partagé utilisé pour rejoindre un serveur ou un agent à un cluster

--token-file valeur

K3S_TOKEN_FILE

Fichier contenant le secret/token du cluster

--agent-token valeur

K3S_AGENT_TOKEN

Secret partagé utilisé pour rejoindre des agents au cluster, mais pas des serveurs

--agent-token-file valeur

K3S_AGENT_TOKEN_FILE

Fichier contenant le secret de l’agent

--server valeur

K3S_URL

Serveur auquel se connecter, utilisé pour rejoindre un cluster

--cluster-init

K3S_CLUSTER_INIT

Initialiser un nouveau cluster en utilisant etcd intégré

--cluster-reset

K3S_CLUSTER_RESET

Oublier tous les pairs et devenir le seul membre d’un nouveau cluster

Options Kubeconfig administrateur

Indicateur Variable d’environnement Description

--write-kubeconfig value, -o valeur

K3S_KUBECONFIG_OUTPUT

Écrire kubeconfig pour le client admin dans ce fichier

--write-kubeconfig-mode valeur

K3S_KUBECONFIG_MODE

Écrire kubeconfig avec ce mode. Le fichier kubeconfig est possédé par root et écrit avec un mode par défaut de 600. Changer le mode en 644 permettra à d’autres utilisateurs non privilégiés sur l’hôte de le lire.

--write-kubeconfig-group valeur

K3S_KUBECONFIG_GROUP

Écrire le groupe kubeconfig. En combinant avec --write-kubeconfig-mode, cela permettra à vos administrateurs k3s d’accéder au fichier kubeconfig tout en gardant le fichier possédé par root.

Options avancées

Consignation

Indicateur Par défaut Description

--debug

S/O

Activer les journaux de débogage

-v valeur

0

Numéro pour le niveau de verbosité des journaux

--vmodule valeur

S/O

Liste séparée par des virgules de paramètres FILE_PATTERN=LOG_LEVEL pour la journalisation filtrée par fichier

--log value, -l valeur

S/O

Consigner dans le fichier

--alsologtostderr

S/O

Journaliser dans l’erreur standard ainsi que dans le fichier (si défini)

Écouteurs

Indicateur Par défaut Description

--bind-address valeur

0.0.0.0

Adresse de liaison k3s

--https-listen-port valeur

6443

port d’écoute HTTPS

--advertise-address valeur

node-external-ip/node-ip

Adresse IPv4/IPv6 que l’apiserver annonce pour son point de terminaison de service
Notez que la plage d’IP principale service-cidr doit être de la même famille d’adresses que l’adresse annoncée

--advertise-port valeur

listen-port/0

Port que l’apiserver utilise pour annoncer aux membres du cluster

--tls-san valeur

S/O

Ajouter des noms d’hôtes supplémentaires ou des adresses IPv4/IPv6 en tant que noms alternatifs de sujet sur le certificat TLS

--tls-san-security

true

Protéger le certificat TLS du serveur en refusant d’ajouter des noms alternatifs de sujet non associés au service apiserver de kubernetes, aux nœuds du serveur ou aux valeurs de l’option tls-san

Données

Indicateur Par défaut Description

--data-dir value, -d valeur

/var/lib/rancher/k3s ou ${HOME}/.rancher/k3s si non root

Dossier pour conserver l’état

Chiffrement des secrets

Indicateur Par défaut Description

--secrets-encryption

false

Activer le chiffrement des secrets au repos

--secrets-encryption-provider

aescbc

Fournisseur de chiffrement à utiliser

Réseautique

Indicateur Par défaut Description

--cluster-cidr valeur

"10.42.0.0/16"

CIDR de réseau IPv4/IPv6 à utiliser pour les IP des pods

--service-cidr valeur

"10.43.0.0/16"

CIDR de réseau IPv4/IPv6 à utiliser pour les IP des services

--service-node-port-range valeur

"30000-32767"

Plage de ports à réserver pour les services avec visibilité NodePort

--cluster-dns valeur

"10.43.0.10"

IP Cluster IPv4 pour le service coredns. Doit être dans votre plage de service-cidr

--cluster-domain valeur

"cluster.local"

Domaine de cluster

--flannel-backend valeur

"vxlan"

L’un de 'none', 'vxlan', 'ipsec' (déprécié), 'host-gw', 'wireguard-native' ou 'wireguard' (déprécié)

--flannel-ipv6-masq

"N/A"

Activer le masquage IPv6 pour le pod

--flannel-external-ip

"N/A"

Utiliser les adresses IP externes des nœuds pour le trafic Flannel

--servicelb-namespace valeur

"kube-system"

Espace de noms des pods pour le composant servicelb

--egress-selector-mode valeur

"agent"

Doit être l’un des suivants :

  • désactivé : L’apiserver n’utilise pas de tunnels d’agent pour communiquer avec les nœuds. Nécessite que les serveurs exécutent des agents et aient une connectivité directe au kubelet sur les agents, sinon l’apiserver ne pourra pas accéder aux points de terminaison de service ou effectuer kubectl exec et kubectl logs.

  • agent : L’apiserver utilise des tunnels d’agent pour communiquer avec les nœuds. Les nœuds autorisent la connexion de tunnel à partir des adresses de boucle locale. Nécessite que les serveurs exécutent également des agents, sinon l’apiserver ne pourra pas accéder aux points de terminaison de service. La valeur par défaut historique pour k3s.

  • pod : L’apiserver utilise des tunnels d’agent pour communiquer avec les nœuds et les points de terminaison de service, en dirigeant les connexions de point de terminaison de service vers le bon agent en surveillant les nœuds. Les nœuds permettent la connexion de tunnel à partir des adresses de boucle locale, ou d’un CIDR attribué à leur nœud.

  • cluster : L’apiserver utilise des tunnels d’agent pour communiquer avec les nœuds et les points de terminaison de service, en dirigeant les connexions de point de terminaison de service vers le bon agent en surveillant les points de terminaison de service. Les nœuds permettent la connexion de tunnel à partir des adresses de boucle locale, ou de la plage CIDR de cluster configurée.

Classe de stockage

Indicateur Description

--default-local-storage-path valeur

Chemin de stockage local par défaut pour la classe de stockage du provisionneur local

Composants Kubernetes

Indicateur Description

--disable valeur

Voir "Utilisation du drapeau --disable"

--disable-scheduler

Désactiver le planificateur par défaut de Kubernetes

--disable-cloud-controller

Désactiver le gestionnaire de contrôleur de cloud par défaut de k3s

--disable-kube-proxy

Désactiver l’exécution de kube-proxy

--disable-network-policy

Désactiver le contrôleur de politique réseau par défaut de k3s

--disable-helm-controller

Désactiver le contrôleur Helm

Drapeaux personnalisés pour les processus Kubernetes

Indicateur Description

--etcd-arg valeur

Drapeau personnalisé pour le processus etcd

--kube-apiserver-arg valeur

Drapeau personnalisé pour le processus kube-apiserver

--kube-scheduler-arg valeur

Drapeau personnalisé pour le processus kube-scheduler

--kube-controller-manager-arg valeur

Drapeau personnalisé pour le processus kube-controller-manager

--kube-cloud-controller-manager-arg valeur

Drapeau personnalisé pour le processus kube-cloud-controller-manager

--kubelet-arg valeur

Drapeau personnalisé pour le processus kubelet

--kube-proxy-arg valeur

Drapeau personnalisé pour le processus kube-proxy

Options expérimentales

Indicateur Description

--rootless

Exécuter sans privilèges

--enable-pprof

Activer le point de terminaison pprof sur le port du superviseur

--docker

Utiliser cri-dockerd au lieu de containerd

--prefer-bundled-bin

Préférer les binaires utilisateurs intégrés aux binaires hôtes

--disable-agent

Voir "Exécution de serveurs sans agent"

--embedded-registry

Voir "Miroir de registre intégré"

--vpn-auth

Voir "Intégration avec le fournisseur VPN Tailscale"

--vpn-auth-file

Voir "Intégration avec le fournisseur VPN Tailscale"

Options obsolètes

Indicateur Variable d’environnement Description

--no-flannel

S/O

Utilisation --flannel-backend=none

--no-deploy valeur

S/O

Utilisation --disable

--cluster-secret valeur

K3S_CLUSTER_SECRET

Utilisation --token

--flannel-backend wireguard

S/O

Utilisation --flannel-backend=wireguard-native

--flannel-backend value=option1=value

S/O

Utiliser --flannel-conf pour spécifier le fichier de configuration flannel avec la configuration de backend

Aide CLI du serveur K3s

Si une option apparaît entre crochets ci-dessous, par exemple [$K3S_TOKEN], cela signifie que l’option peut être passée en tant que variable d’environnement de ce nom.

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]