Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official.

Opções de configuração

Esta página foca nas opções que são comumente usadas ao configurar o K3s pela primeira vez. Consulte a documentação sobre Opções Avançadas e Configuração e a documentação dos comandos servidor e agente para uma cobertura mais detalhada.

Configuração com script de instalação

Como mencionado no Guia de Início Rápido, você pode usar o script de instalação disponível em https://get.k3s.io para instalar o K3s como um serviço em sistemas baseados em systemd e openrc.

Você pode usar uma combinação de INSTALL_K3S_EXEC, variáveis de ambiente K3S_ e flags de comando para passar a configuração para a configuração do serviço. As variáveis de ambiente prefixadas, o valor INSTALL_K3S_EXEC e os argumentos de shell finais são todos persistidos na configuração do serviço. Após a instalação, a configuração pode ser alterada editando o arquivo de ambiente, editando a configuração do serviço ou simplesmente reexecutando o instalador com novas opções. Para SUSE® Rancher Prime: K3s você deve usar INSTALL_K3S_ARTIFACT_URL que aponta para o URL dos Artefatos Principais

Para ilustrar isso, os seguintes comandos resultam no mesmo comportamento de registrar um servidor sem flannel e com um token:

curl -sfL https://get.k3s.io | INSTALL_K3S_ARTIFACT_URL=<PRIME-ARTIFACTS-URL>/k3s INSTALL_K3S_EXEC="server" sh -s - --flannel-backend none --token 12345
curl -sfL https://get.k3s.io | INSTALL_K3S_ARTIFACT_URL=<PRIME-ARTIFACTS-URL>/k3s INSTALL_K3S_EXEC="server --flannel-backend none" K3S_TOKEN=12345 sh -s -
curl -sfL https://get.k3s.io | INSTALL_K3S_ARTIFACT_URL=<PRIME-ARTIFACTS-URL>/k3s K3S_TOKEN=12345 sh -s - server --flannel-backend none
# server is assumed below because there is no K3S_URL
curl -sfL https://get.k3s.io | INSTALL_K3S_ARTIFACT_URL=<PRIME-ARTIFACTS-URL>/k3s INSTALL_K3S_EXEC="--flannel-backend none --token 12345" sh -s -
curl -sfL https://get.k3s.io | INSTALL_K3S_ARTIFACT_URL=<PRIME-ARTIFACTS-URL>/k3s sh -s - --flannel-backend none --token 12345

Ao registrar um agente, os seguintes comandos resultam no mesmo comportamento:

curl -sfL https://get.k3s.io | INSTALL_K3S_ARTIFACT_URL=<PRIME-ARTIFACTS-URL>/k3s INSTALL_K3S_EXEC="agent --server https://k3s.example.com --token mypassword" sh -s -
curl -sfL https://get.k3s.io | INSTALL_K3S_ARTIFACT_URL=<PRIME-ARTIFACTS-URL>/k3s INSTALL_K3S_EXEC="agent" K3S_TOKEN="mypassword" sh -s - --server https://k3s.example.com
curl -sfL https://get.k3s.io | INSTALL_K3S_ARTIFACT_URL=<PRIME-ARTIFACTS-URL>/k3s K3S_URL=https://k3s.example.com sh -s - agent --token mypassword
curl -sfL https://get.k3s.io | INSTALL_K3S_ARTIFACT_URL=<PRIME-ARTIFACTS-URL>/k3s K3S_URL=https://k3s.example.com K3S_TOKEN=mypassword sh -s - # agent is assumed because of K3S_URL

Para detalhes sobre todas as variáveis de ambiente, veja Variáveis de Ambiente.

Lembrete

Se você definir a configuração ao executar o script de instalação, mas não a definir novamente ao reexecutar o script de instalação, os valores originais serão perdidos.

O conteúdo do arquivo de configuração não é gerenciado pelo script de instalação. Se você quiser que sua configuração seja independente do script de instalação, deve usar um arquivo de configuração em vez de passar variáveis de ambiente ou argumentos para o script de instalação.

Configuração com binário

O script de instalação se preocupa principalmente em configurar o K3s para rodar como um serviço do sistema. Se você optar por não usar o script de instalação, pode executar o K3s simplesmente baixando o binário da nossa página de lançamentos do GitHub, colocando-o no seu caminho e executando-o. Isso não é particularmente útil para instalações permanentes, mas pode ser útil ao realizar testes rápidos que não justificam gerenciar o K3s como um serviço do sistema.

curl -Lo /usr/local/bin/k3s <PRIME-ARTIFACTS-URL>/k3s/v1.35.1%2Bk3s1/k3s; chmod a+x /usr/local/bin/k3s

Você pode passar a configuração definindo K3S_ variáveis de ambiente:

K3S_KUBECONFIG_MODE="644" k3s server

Ou flags de comando:

k3s server --write-kubeconfig-mode=644

O agente k3s também pode ser configurado dessa maneira:

k3s agent --server https://k3s.example.com --token mypassword

Para detalhes sobre como configurar o servidor K3s, consulte a k3s server`documentação.
Para detalhes sobre como configurar o agente K3s, consulte a `k3s agent`documentação.
Você também pode usar a flag `--help
para ver uma lista de todas as opções disponíveis e suas respectivas variáveis de ambiente.

Flags Correspondentes

É importante corresponder as flags críticas em seus nós de servidor. Por exemplo, se você usar a flag --disable servicelb ou --cluster-cidr=10.200.0.0/16 em seu nó mestre, mas não a definir em outros nós de servidor, os nós não conseguirão se juntar. Eles imprimirão erros como: failed to validate server configuration: critical configuration value mismatch. Consulte a documentação de Configuração do Servidor (linkada acima) para mais informações sobre quais flags devem ser definidas de forma idêntica nos nós de servidor.

Configuração com imagem de contêiner

A imagem de contêiner K3s (`docker.io/rancher/k3s`) suporta os mesmos métodos de configuração que o binário disponível na página de lançamentos do GitHub.

Arquivo de Configuração

Além de configurar o K3s com variáveis de ambiente e argumentos de CLI, o K3s também pode usar um arquivo de configuração. O arquivo de configuração é carregado independentemente de como o K3s é instalado ou executado.

Por padrão, a configuração é carregada de /etc/rancher/k3s/config.yaml, e arquivos de drop-in são carregados de /etc/rancher/k3s/config.yaml.d/*.yaml em ordem alfabética. Esse caminho é configurável via a flag de CLI --config ou a variável de ambiente K3S_CONFIG_FILE. Ao substituir o nome do arquivo de configuração padrão, o caminho do diretório de drop-in também é modificado.

Um exemplo de um arquivo de configuração básico server está abaixo:

/etc/rancher/k3s/config.yaml
write-kubeconfig-mode: "0644"
tls-san:
  - "foo.local"
node-label:
  - "foo=bar"
  - "something=amazing"
cluster-init: true

Isso é equivalente aos seguintes argumentos de CLI:

k3s server \
  --write-kubeconfig-mode "0644"    \
  --tls-san "foo.local"             \
  --node-label "foo=bar"            \
  --node-label "something=amazing"  \
  --cluster-init

Em geral, os argumentos de CLI mapeiam para suas respectivas chaves YAML, com argumentos de CLI repetíveis sendo representados como listas YAML. Flags booleanas são representadas como true ou false no arquivo YAML.

Também é possível usar tanto um arquivo de configuração quanto argumentos de CLI. Nessas situações, os valores serão carregados de ambas as fontes, mas os argumentos de CLI terão precedência. Para argumentos repetíveis como --node-label, os argumentos de CLI substituirão todos os valores na lista.

Comportamento de mesclagem de valores

Se presente em vários arquivos, o último valor encontrado para uma determinada chave será utilizado. Um ` pode ser anexado à chave para adicionar o valor à string ou seção existente, em vez de substituí-lo. Todas as ocorrências dessa chave em arquivos subsequentes também exigirão um ` para evitar a sobrescrição do valor acumulado.

Um exemplo de valores mesclados de vários arquivos de configuração está abaixo:

/etc/rancher/k3s/config.yaml
token: boop
node-label:
  - foo=bar
  - bar=baz
/etc/rancher/k3s/config.yaml.d/test1.yaml
write-kubeconfig-mode: 600
node-taint:
  - alice=bob:NoExecute
/etc/rancher/k3s/config.yaml.d/test2.yaml
write-kubeconfig-mode: 777
node-label:
  - other=what
  - foo=three
node-taint+:
  - charlie=delta:NoSchedule

Isso resulta em uma configuração final de:

write-kubeconfig-mode: 777
token: boop
node-label:
  - other=what
  - foo=three
node-taint:
  - alice=bob:NoExecute
  - charlie=delta:NoSchedule

Colocando tudo junto

Todas as opções acima podem ser combinadas em um único exemplo.

Um arquivo config.yaml é criado em /etc/rancher/k3s/config.yaml:

token: "secret"
debug: true

Então, o script de instalação é executado com uma combinação de variáveis de ambiente e flags:

curl -sfL https://get.k3s.io | INSTALL_K3S_ARTIFACT_URL=<PRIME-ARTIFACTS-URL>/k3s K3S_KUBECONFIG_MODE="644" INSTALL_K3S_EXEC="server" sh -s - --flannel-backend none

Ou se você já instalou o Binário K3s:

K3S_KUBECONFIG_MODE="644" k3s server --flannel-backend none

Isso resulta em um servidor com:

  • Um arquivo kubeconfig com permissões 644

  • Backend do Flannel definido como none

  • O token definido como secret

  • Registro de depuração habilitado

Arquivos de configuração do Kubelet

O Kubernetes suporta a configuração do kubelet tanto por meio de flags de CLI quanto por arquivos de configuração. Configurar o kubelet por meio de flags de CLI foi descontinuado há muito tempo, mas ainda é suportado e é a maneira mais fácil de definir opções básicas. Algumas configurações avançadas do kubelet só podem ser definidas por meio de um arquivo de configuração. Para mais informações, consulte a documentação do Kubernetes para o kubelet e definindo parâmetros do kubelet por meio de um arquivo de configuração.

O suporte para arquivos de configuração drop-in do kubelet ou o arquivo de configuração (opções 1 e 2 abaixo) estão disponíveis apenas na versão v1.32 e acima. Para versões mais antigas, você deve usar os argumentos do kubelet diretamente (opção número 3 abaixo).

O K3s usa uma configuração padrão do kubelet que é armazenada em /var/lib/rancher/k3s/agent/etc/kubelet.conf.d/00-k3s-defaults.conf. Se você gostaria de alterar os parâmetros de configuração padrão, há três maneiras de fazê-lo:

  1. Coloque um arquivo de configuração drop-in em /var/lib/rancher/k3s/agent/etc/kubelet.conf.d/ (recomendado).

  2. Usando a flag --kubelet-arg=config=$PATHTOFILE, onde $PATHTOFILE é o caminho para um arquivo que inclui parâmetros de configuração do kubelet (por exemplo, /etc/rancher/k3s/kubelet.conf) ou a flag --kubelet-arg=config-dir=$PATHTODIR, onde $PATHTODIR é o caminho para um diretório que pode incluir arquivos que contêm parâmetros de configuração do kubelet (por exemplo, /etc/rancher/k3s/kubelet.conf.d).

  3. Usando a flag --kubelet-arg=$FLAG, onde $FLAG é um parâmetro de configuração do kubelet (por exemplo, image-gc-high-threshold=100).

Ao misturar flags de CLI do kubelet e arquivos de configuração drop-in, preste atenção à ordem de precedência.