기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
kubelet 구성 사용자 지정
시스템 리소스는 kubelet의 구성을 통해 예약할 수 있습니다. 이는 리소스 결핍의 경우 kubelet이 포드를 제거하지 못하고 결국 노드를 로 만들 수 있기 때문에 권장됩니다NotReady
. 이를 위해 config 파일에는에 포함될 자유 형식 yaml을 허용하는 kubeletExtraConfig
필드가 포함될 수 있습니다kubelet.yaml
.
의 일부 필드는 eksctl에 의해 kubelet.yaml
설정되므로 , address
, clusterDomain
, authentication
authorization
또는와 같이 덮어쓸 수 없습니다serverTLSBootstrap
.
다음 예제 구성 파일은 kubelet300Mi
에 대한 300m
vCPU, 메모리 및 1Gi
임시 스토리지, OS 시스템 데몬에 대한 300m
vCPU, 300Mi
메모리 및 1Gi
임시 스토리지를 예약하고 사용 가능한 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
이 예제에서는 vCPUs 4개와 메모리 16GiBm5a.xlarge
가 있는 유형의 인스턴스가 주어지면 CPUs Allocatable
양은 메모리 3.4GiB와 15.4GiB가 됩니다. 의 필드에 대한 구성 파일에 지정된 값이 eksctl에서 지정한 기본값을 kubeletExtraconfig
완전히 덮어쓴다는 점에 유의해야 합니다. 그러나 하나 이상의 kubeReserved
파라미터를 생략하면 사용 중인 aws 인스턴스 유형에 따라 누락된 파라미터가 sane 값으로 기본 설정됩니다.
kubeReserved
계산
일반적으로 동일한 CPU 및 RAM 구성의 인스턴스를 사용하도록 혼합 인스턴스 NodeGroup을 구성하는 것이 좋지만 엄격한 요구 사항은 아닙니다. 따라서 kubeReserved
계산은 InstanceDistribution.InstanceTypes
필드에서 가장 작은 인스턴스를 사용합니다. 이렇게 하면 서로 다른 인스턴스 유형을 가진 NodeGroups가 가장 작은 인스턴스에 너무 많은 리소스를 예약하지 않습니다. 그러나 이로 인해 가장 큰 인스턴스 유형에 비해 예약이 너무 작을 수 있습니다.
주의
기본적으로 eksctl
는 설정featureGates.RotateKubeletServerCertificate=true
되지만 사용자 지정featureGates
이 제공되면 설정이 해제됩니다. 비활성화해야 하는 featureGates.RotateKubeletServerCertificate=true
경우가 아니면 항상를 포함해야 합니다.