|
| 1 | +--- |
| 2 | +title: "Opções de Configuração" |
| 3 | +--- |
| 4 | + |
| 5 | +Esta página se concentra nas opções comumente usadas ao configurar o K3s pela primeira vez. Consulte a documentação sobre [Opções e Configuração Avançadas](../advanced.md) e a documentação dos comandos [server](../cli/server.md) e [agent](../cli/agent.md) para uma cobertura mais detalhada. |
| 6 | + |
| 7 | +## Configuração com o script de instalação |
| 8 | + |
| 9 | +Conforme mencionado no [Guia de Início Rápido](../quick-start.md), 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. |
| 10 | + |
| 11 | +Você pode usar uma combinação de `INSTALL_K3S_EXEC`, variáveis de ambiente `K3S_` e flags de comando para passar configurações para a configuração do serviço. |
| 12 | +As variáveis de ambiente prefixadas, o valor de `INSTALL_K3S_EXEC` e os argumentos adicionais fornecidos no shell 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, modificando a configuração do serviço ou simplesmente executando novamente o instalador com novas opções. |
| 13 | + |
| 14 | + |
| 15 | +Para ilustrar isso, os seguintes comandos resultam no mesmo comportamento: registrar um servidor sem o Flannel e com um token: |
| 16 | + |
| 17 | +```bash |
| 18 | +curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="server" sh -s - --flannel-backend none --token 12345 |
| 19 | +curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="server --flannel-backend none" K3S_TOKEN=12345 sh -s - |
| 20 | +curl -sfL https://get.k3s.io | K3S_TOKEN=12345 sh -s - server --flannel-backend none |
| 21 | +# O servidor é assumido abaixo porque não há K3S_URL |
| 22 | +curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--flannel-backend none --token 12345" sh -s - |
| 23 | +curl -sfL https://get.k3s.io | sh -s - --flannel-backend none --token 12345 |
| 24 | +``` |
| 25 | + |
| 26 | +Ao registrar um agente, os seguintes comandos resultam no mesmo comportamento: |
| 27 | + |
| 28 | +```bash |
| 29 | +curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="agent --server https://k3s.example.com --token mypassword" sh -s - |
| 30 | +curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="agent" K3S_TOKEN="mypassword" sh -s - --server https://k3s.example.com |
| 31 | +curl -sfL https://get.k3s.io | K3S_URL=https://k3s.example.com sh -s - agent --token mypassword |
| 32 | +curl -sfL https://get.k3s.io | K3S_URL=https://k3s.example.com K3S_TOKEN=mypassword sh -s - # O agente é assumido devido à presença de K3S_URL |
| 33 | +``` |
| 34 | + |
| 35 | +Para detalhes sobre todas as variáveis de ambiente, consulte [Variáveis de Ambiente.](../reference/env-variables.md) |
| 36 | + |
| 37 | +:::info Note |
| 38 | +Se você definir configurações ao executar o script de instalação, mas não as definir novamente ao reexecutar o script, os valores originais serão perdidos. |
| 39 | + |
| 40 | +O conteúdo do [arquivo de configuração](#configuration-file) não é gerenciado pelo script de instalação. |
| 41 | +Se você deseja 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 ao script de instalação. |
| 42 | +::: |
| 43 | + |
| 44 | +## Configuração com binário |
| 45 | + |
| 46 | +Conforme mencionado, o script de instalação está principalmente focado em configurar o K3s para ser executado como um serviço. |
| 47 | +Se você optar por não usar o script, pode executar o K3s simplesmente baixando o binário da nossa [página de lançamentos](https://github.com/k3s-io/k3s/releases/latest), colocando-o no seu PATH e executando-o. Isso não é particularmente útil para instalações permanentes, mas pode ser prático ao realizar testes rápidos que não justifiquem gerenciar o K3s como um serviço do sistema. |
| 48 | + |
| 49 | +```bash |
| 50 | +curl -Lo /usr/local/bin/k3s https://github.com/k3s-io/k3s/releases/download/v1.26.5+k3s1/k3s; chmod a+x /usr/local/bin/k3s |
| 51 | +``` |
| 52 | + |
| 53 | +Você pode passar configurações definindo variáveis de ambiente `K3S_`: |
| 54 | +```bash |
| 55 | +K3S_KUBECONFIG_MODE="644" k3s server |
| 56 | +``` |
| 57 | + |
| 58 | +Ou flags de comando: |
| 59 | +```bash |
| 60 | +k3s server --write-kubeconfig-mode=644 |
| 61 | +``` |
| 62 | + |
| 63 | +O agent K3s também pode ser configurado dessa forma: |
| 64 | +```bash |
| 65 | +k3s agent --server https://k3s.example.com --token mypassword |
| 66 | +``` |
| 67 | + |
| 68 | +Para detalhes sobre como configurar o servidor K3s, consulte a [documentação do `k3s server`](../cli/server.md). |
| 69 | +Para detalhes sobre como configurar o agente K3s, consulte a [documentação do `k3s agent`](../cli/agent.md). |
| 70 | +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. |
| 71 | + |
| 72 | +:::info Flags Correspondentes |
| 73 | +É importante que flags críticas sejam iguais em todos os nós do servidor. Por exemplo, se você usar a flag |
| 74 | +`--disable servicelb` ou `--cluster-cidr=10.200.0.0/16` no nó master, mas não configurá-la nos outros nós do servidor, esses nós não conseguirão se conectar. Eles exibirão erros como: |
| 75 | +`failed to validate server configuration: critical configuration value mismatch.` |
| 76 | + |
| 77 | +Consulte a documentação de Configuração do Servidor (linkada acima) para mais informações sobre quais flags devem ser configuradas de forma idêntica nos nós do servidor. |
| 78 | +::: |
| 79 | + |
| 80 | +## Arquivo de Configuração |
| 81 | + |
| 82 | +:::info Controle de Versão |
| 83 | +Disponível a partir da versão [v1.19.1+k3s1](https://github.com/k3s-io/k3s/releases/tag/v1.19.1%2Bk3s1) |
| 84 | +::: |
| 85 | + |
| 86 | +Além de configurar o K3s com variáveis de ambiente e argumentos de linha de comando, também é possível usar um arquivo de configuração. |
| 87 | + |
| 88 | +Por padrão, os valores presentes em um arquivo YAML localizado em `/etc/rancher/k3s/config.yaml` serão utilizados durante a instalação. |
| 89 | + |
| 90 | +Abaixo está um exemplo básico de arquivo de configuração para o `server`: |
| 91 | + |
| 92 | +```yaml |
| 93 | +write-kubeconfig-mode: "0644" |
| 94 | +tls-san: |
| 95 | + - "foo.local" |
| 96 | +node-label: |
| 97 | + - "foo=bar" |
| 98 | + - "something=amazing" |
| 99 | +cluster-init: true |
| 100 | +``` |
| 101 | +
|
| 102 | +Isso é equivalente aos seguintes argumentos de linha de comando: |
| 103 | +
|
| 104 | +```bash |
| 105 | +k3s server \ |
| 106 | + --write-kubeconfig-mode "0644" \ |
| 107 | + --tls-san "foo.local" \ |
| 108 | + --node-label "foo=bar" \ |
| 109 | + --node-label "something=amazing" \ |
| 110 | + --cluster-init |
| 111 | +``` |
| 112 | + |
| 113 | +De forma geral, os argumentos da linha de comando correspondem às suas respectivas chaves no YAML, com argumentos repetíveis sendo representados como listas no YAML. Flags booleanas são representadas como `true` ou `false` no arquivo YAML. |
| 114 | + |
| 115 | +Também é possível usar tanto um arquivo de configuração quanto argumentos de linha de comando. Nesses casos, os valores serão carregados de ambas as fontes, mas os argumentos da linha de comando terão precedência. Para argumentos repetíveis, como `--node-label`, os argumentos da linha de comando substituirão todos os valores na lista. |
| 116 | + |
| 117 | +Por fim, a localização do arquivo de configuração pode ser alterada usando o argumento de linha de comando `--config FILE, -c FILE` ou a variável de ambiente `$K3S_CONFIG_FILE`. |
| 118 | + |
| 119 | +### Múltiplos Arquivos de Configuração |
| 120 | + |
| 121 | +:::info Limite de Versão |
| 122 | +Disponível a partir da versão [v1.21.0+k3s1](https://github.com/k3s-io/k3s/releases/tag/v1.21.0%2Bk3s1) |
| 123 | +::: |
| 124 | + |
| 125 | +Múltiplos arquivos de configuração são suportados. Por padrão, os arquivos de configuração são lidos de `/etc/rancher/k3s/config.yaml` e `/etc/rancher/k3s/config.yaml.d/*.yaml` em ordem alfabética. |
| 126 | + |
| 127 | +Por padrão, o último valor encontrado para uma determinada chave será utilizado. Um + pode ser adicionado à chave para anexar o valor à string ou lista existente, em vez de substituí-lo. Todas as ocorrências dessa chave em arquivos subsequentes também precisarão de um + para evitar a sobrescrição do valor acumulado. |
| 128 | + |
| 129 | +Abaixo está um exemplo de múltiplos arquivos de configuração: |
| 130 | + |
| 131 | +```yaml |
| 132 | +# config.yaml |
| 133 | +token: boop |
| 134 | +node-label: |
| 135 | + - foo=bar |
| 136 | + - bar=baz |
| 137 | + |
| 138 | + |
| 139 | +# config.yaml.d/test1.yaml |
| 140 | +write-kubeconfig-mode: 600 |
| 141 | +node-taint: |
| 142 | + - alice=bob:NoExecute |
| 143 | + |
| 144 | +# config.yaml.d/test2.yaml |
| 145 | +write-kubeconfig-mode: 777 |
| 146 | +node-label: |
| 147 | + - other=what |
| 148 | + - foo=three |
| 149 | +node-taint+: |
| 150 | + - charlie=delta:NoSchedule |
| 151 | + |
| 152 | +``` |
| 153 | + |
| 154 | +Isso resulta em uma configuração final de: |
| 155 | + |
| 156 | +```yaml |
| 157 | +write-kubeconfig-mode: 777 |
| 158 | +token: boop |
| 159 | +node-label: |
| 160 | + - other=what |
| 161 | + - foo=three |
| 162 | +node-taint: |
| 163 | + - alice=bob:NoExecute |
| 164 | + - charlie=delta:NoSchedule |
| 165 | +``` |
| 166 | +
|
| 167 | +## Colocando tudo junto |
| 168 | +
|
| 169 | +Todas as opções mencionadas acima podem ser combinadas em um único exemplo. |
| 170 | +
|
| 171 | +Um arquivo `config.yaml` é criado em `/etc/rancher/k3s/config.yaml`: |
| 172 | + |
| 173 | +```yaml |
| 174 | +token: "secret" |
| 175 | +debug: true |
| 176 | +``` |
| 177 | + |
| 178 | +Em seguida, o script de instalação é executado com uma combinação de variáveis de ambiente e flags: |
| 179 | + |
| 180 | +```bash |
| 181 | +curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644" INSTALL_K3S_EXEC="server" sh -s - --flannel-backend none |
| 182 | +``` |
| 183 | + |
| 184 | +Ou, se você já instalou o binário do K3s: |
| 185 | +```bash |
| 186 | +K3S_KUBECONFIG_MODE="644" k3s server --flannel-backend none |
| 187 | +``` |
| 188 | + |
| 189 | +Isso resulta em um servidor com: |
| 190 | +- Um arquivo kubeconfig com permissões `644` |
| 191 | +- Backend Flannel definido como `none` |
| 192 | +- O token configurado como `secret` |
| 193 | +- Log de depuração habilitado |
0 commit comments