중국시가넷 - 개인 서명 - 4.3 kube-컨트롤러-관리자

4.3 kube-컨트롤러-관리자

3개의 인스턴스로 구성된 kube-controller-manager 클러스터를 배포합니다. 시작 후 경쟁 선택 메커니즘을 통해 리더 노드가 생성되고 다른 노드는 차단된 상태가 됩니다. 리더 노드를 사용할 수 없는 경우 차단된 노드는 서비스 가용성을 보장하기 위해 새로운 리더 노드를 다시 선택합니다.

배포 전략:

배포 소프트웨어 계획

인증서 서명 요청 생성:

kube-controller-manager 인증서 및 개인 키 생성:

결과적으로 다음 파일이 생성됩니다:

kube-controller-manager는 kubeconfig 파일을 사용하여 apiserver 주소, CA 인증서 및 kube-controller를 제공하는 apiserver에 액세스합니다. -manager 인증서

먼저 apiserver가 외부 서비스를 제공하는 주소를 확인하세요

kube-apiserver 문서에서 생성된 서비스 계정 인증서를 사용하세요. 여기서 kube-apiserver는 공개 키를 사용하고 kube-controller-manager는 개인 키를 사용합니다.

kube-controller-manager는 다음과 같이 시작하고 중지할 수 있습니다:

프로세스가 정상인지 확인하세요

권한 확인:

ClusterRole system:kube-controller-manager는 매우 작은 권한을 가지며 secret 및 serviceaccount와 같은 리소스 개체만 생성할 수 있습니다. 각 컨트롤러의 권한은 ClusterRole system:controller:XXX에 배포됩니다.

kube-controller-manager의 시작 매개변수에 --use-service-account-credentials=true 매개변수를 추가하면 메인 컨트롤러는 각 컨트롤러에 해당하는 ServiceAccount XXX 컨트롤러를 생성합니다. 내장 ClusterRoleBinding system:controller:XXX는 각 XXX 컨트롤러 ServiceAccount에 해당 ClusterRole system:controller:XXX 권한을 부여합니다.

배포 컨트롤러를 확인하세요

k8s의 두뇌인 kube-controller-manager, 대부분의 컨트롤러가 위치한 대규모 관리인, 구성에는 다음이 포함됩니다.

선거를 시작하세요.

etcd의 강력한 일관성을 활용하여 구성요소를 선택하는 데 사용할 수 있습니다. kube-controller-manager는 이 기능을 사용하여 고가용성을 달성합니다.

고가용성 조건: kube-controller-manager 수가 2보다 크거나 같습니다.

제거 시간 제한(기본값은 5분, 3분으로 구성)은 컨트롤러가 노드가 다운되었음을 감지하면 시작됩니다.

1단계 제거율. 여기서 2개의 0.1은 10초마다 각 노드에서 포드 1개를 제거하는 것과 같습니다.

여러 가용성 영역이 활성화되면 첫 번째 수준 제거 비율은 영역이 정상일 때만 적용됩니다. 여러 가용성 영역이 활성화되지 않으면 영역은 전체 클러스터를 나타냅니다.

보조 제거율. 여기서 2개의 0.1은 10초마다 각 노드에서 포드 1개를 제거하는 것과 같습니다.

"대형" 클러스터의 임계값을 설정합니다. 기본값은 50입니다. 클러스터 노드 수가 이 값보다 작으면 보조 제거율이 0이 되고 제거가 수행되지 않습니다.

노드의 55% 이상이 실패하면 영역이 비정상으로 간주됩니다(NodeReady 노드 수가 3보다 크거나 같습니다).

예:

예를 들어 이제 ZoneB에는 20개의 노드가 있는데 20 * 0.55 = 11개 이상의 노드가 끊어지면 이 영역은 비정상으로 간주되며 요약 지점이 다음과 같으므로 이때 첫 번째 수준 제거율은 적용되지 않습니다. 1보다 크면 두 번째 수준 비율이 유효하므로 전체 클러스터가 10s/pod/node에서 제거됩니다.

Q:

A:

Q:

A:

다음을 추가해야 합니다. 시작 명령 구성