kubelet 設定のカスタマイズ - Eksctl ユーザーガイド

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

kubelet 設定のカスタマイズ

システムリソースは、kubelet の設定を通じて予約できます。リソース不足の場合、kubelet はポッドを削除できず、最終的にノードが になる可能性があるため、これは推奨されますNotReady。これを行うために、設定ファイルには、 に埋め込まれる無料のフォーム yaml を受け入れる kubeletExtraConfigフィールドを含めることができますkubelet.yaml

の一部のフィールドkubelet.yamlは eksctl によって設定されるためaddress、、、、、 などclusterDomainauthenticationauthorization、上書きできませんserverTLSBootstrap

次の設定ファイルの例では、kubelet 300m の vCPU、300Miメモリおよび1Giエフェメラルストレージの vCPU、OS システムデーモン1Giのメモリおよびエフェメラルストレージ300Mi300m vCPU を予約するノードグループを作成し、使用可能な200Miメモリが 未満であるか、ルートファイルシステムの 10% 未満である場合にポッドの削除を開始します。

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

この例では、4 つの vCPUs と 16GiB のメモリm5a.xlargeを持つ タイプのインスタンスの場合、CPUs のAllocatable量は 3.4 と 15.4 GiB のメモリになります。のフィールドの設定ファイルで指定された値はkubeletExtraconfig、eksctl で指定されたデフォルト値を完全に上書きすることに注意してください。ただし、1 つ以上のkubeReservedパラメータを省略すると、欠落しているパラメータは、使用されている aws インスタンスタイプに基づいてデフォルトで正常な値になります。

kubeReserved 計算

通常、同じ CPU および RAM 設定のインスタンスを使用するように混合インスタンス NodeGroup を設定することをお勧めしますが、これは厳密な要件ではありません。したがって、kubeReserved計算では InstanceDistribution.InstanceTypesフィールドで最小のインスタンスが使用されます。これにより、異なるインスタンスタイプの NodeGroups は、最小のインスタンスであまり多くのリソースを予約しません。ただし、これにより、最大インスタンスタイプに対して小さすぎる予約が発生する可能性があります。

警告

デフォルトでは eksctlが設定されますがfeatureGates.RotateKubeletServerCertificate=true、カスタム featureGates を指定すると、設定が解除されます。無効にする必要がない限りfeatureGates.RotateKubeletServerCertificate=true、常に を含める必要があります。