As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Personalizando a configuração do kubelet
Os recursos do sistema podem ser reservados por meio da configuração do kubelet. Isso é recomendado porque, no caso de falta de recursos, o kubelet pode não conseguir expulsar os pods e, eventualmente, transformar o nó em. NotReady Para fazer isso, os arquivos de configuração podem incluir o kubeletExtraConfig campo que aceita um yaml de formato livre que será incorporado ao. kubelet.yaml
Alguns campos no kubelet.yaml são definidos por eksctl e, portanto, não podem ser substituídos, como,address,clusterDomain, authentication ou. authorization serverTLSBootstrap
O exemplo de arquivo de configuração a seguir cria um grupo 300Mi de nós que reserva 300m vCPU, memória e armazenamento efêmero para o kubelet; 300m vCPU300Mi, 1Gi de memória e armazenamento efêmero para daemons do sistema operacional; 1Gi e aciona a remoção de pods quando há menos de memória disponível ou menos de 10% do sistema de arquivos raiz. 200Mi
apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: dev-cluster-1 region: eu-north-1 nodeGroups: - name: ng-1 instanceType: m5a.xlarge desiredCapacity: 1 kubeletExtraConfig: kubeReserved: cpu: "300m" memory: "300Mi" ephemeral-storage: "1Gi" kubeReservedCgroup: "/kube-reserved" systemReserved: cpu: "300m" memory: "300Mi" ephemeral-storage: "1Gi" evictionHard: memory.available: "200Mi" nodefs.available: "10%" featureGates: RotateKubeletServerCertificate: true # has to be enabled, otherwise it will be disabled
Neste exemplo, dadas instâncias do tipo m5a.xlarge que têm 4 v CPUs e 16 GiB de memória, a Allocatable quantidade de CPUs seria 3,4 e 15,4 GiB de memória. É importante saber que os valores especificados no arquivo de configuração para os campos em kubeletExtraConfig substituirão completamente os valores padrão especificados por eksctl. No entanto, omitir um ou mais kubeReserved parâmetros fará com que os parâmetros ausentes tenham como padrão valores sensatos com base no tipo de instância aws que está sendo usado.
kubeReservedcálculo
Embora geralmente seja recomendável configurar uma instância mista NodeGroup para usar instâncias com a mesma configuração de CPU e RAM, isso não é um requisito estrito. Portanto, o kubeReserved cálculo usa a menor instância no InstanceDistribution.InstanceTypes campo. Dessa forma, NodeGroups com tipos de instância diferentes, não reservaremos muitos recursos na instância menor. No entanto, isso pode levar a uma reserva muito pequena para o maior tipo de instância.
Atenção
Por padrão, é eksctl definidofeatureGates.RotateKubeletServerCertificate=true, mas quando o personalizado featureGates é fornecido, ele não será definido. Você deve sempre incluirfeatureGates.RotateKubeletServerCertificate=true, a menos que precise desativá-lo.