翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
kubelet 設定のカスタマイズ
システムリソースは、kubelet の設定を通じて予約できます。リソース不足の場合、kubelet はポッドを削除できず、最終的にノードが になる可能性があるため、これは推奨されますNotReady
。これを行うために、設定ファイルには、 に埋め込まれる無料のフォーム yaml を受け入れる kubeletExtraConfig
フィールドを含めることができますkubelet.yaml
。
の一部のフィールドkubelet.yaml
は eksctl によって設定されるためaddress
、、、、、 などclusterDomain
authentication
authorization
、上書きできませんserverTLSBootstrap
。
次の設定ファイルの例では、kubelet 300m
の vCPU、300Mi
メモリおよび1Gi
エフェメラルストレージの vCPU、OS システムデーモン1Gi
のメモリおよびエフェメラルストレージ300Mi
の 300m
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
、常に を含める必要があります。