3.10.2. 사용자 정의 스케줄러를 사용하여 Pod 배포
사용자 정의 스케줄러가 클러스터에 배포된 후 기본 스케줄러 대신 해당 스케줄러를 사용하도록 Pod를 구성할 수 있습니다.
각 스케줄러에는 클러스터에 있는 별도의 리소스 보기가 있습니다. 따라서 각 스케줄러는 자체 노드 집합에서 작동해야 합니다.
두 개 이상의 스케줄러가 동일한 노드에서 작동하는 경우 서로 개입하여 사용 가능한 리소스보다 동일한 노드에 더 많은 포드를 예약할 수 있습니다. 이 경우 리소스가 부족하여 Pod가 거부될 수 있습니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - 사용자 지정 스케줄러가 클러스터에 배포되었습니다.
절차
클러스터에서 역할 기반 액세스 제어(RBAC)를 사용하는 경우 사용자 정의 스케줄러 이름을
system:kube-scheduler
클러스터 역할에 추가합니다.system:kube-scheduler
클러스터 역할을 편집합니다.$ oc edit clusterrole system:kube-scheduler
사용자 정의 스케줄러의 이름을
leases
및endpoints
리소스에 대한resourceNames
목록에 추가합니다.apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: rbac.authorization.kubernetes.io/autoupdate: "true" creationTimestamp: "2021-07-07T10:19:14Z" labels: kubernetes.io/bootstrapping: rbac-defaults name: system:kube-scheduler resourceVersion: "125" uid: 53896c70-b332-420a-b2a4-f72c822313f2 rules: ... - apiGroups: - coordination.k8s.io resources: - leases verbs: - create - apiGroups: - coordination.k8s.io resourceNames: - kube-scheduler - custom-scheduler 1 resources: - leases verbs: - get - update - apiGroups: - "" resources: - endpoints verbs: - create - apiGroups: - "" resourceNames: - kube-scheduler - custom-scheduler 2 resources: - endpoints verbs: - get - update ...
Pod
구성을 생성하고 schedulerName 매개변수에서 사용자 정의 스케줄러
의 이름을 지정합니다.custom-scheduler-example.yaml
파일의 예apiVersion: v1 kind: Pod metadata: name: custom-scheduler-example labels: name: custom-scheduler-example spec: schedulerName: custom-scheduler 1 containers: - name: pod-with-second-annotation-container image: docker.io/ocpqe/hello-pod
- 1
- 사용할 사용자 정의 스케줄러의 이름입니다. 이 예에서는
custom-scheduler
입니다. 스케줄러 이름을 제공하지 않으면 기본 스케줄러를 사용하여 Pod가 자동으로 예약됩니다.
Pod를 생성합니다.
$ oc create -f custom-scheduler-example.yaml
검증
다음 명령을 입력하여 Pod가 생성되었는지 확인합니다.
$ oc get pod custom-scheduler-example
custom-scheduler-example
Pod는 출력에 나열됩니다.NAME READY STATUS RESTARTS AGE custom-scheduler-example 1/1 Running 0 4m
다음 명령을 입력하여 사용자 정의 스케줄러에서 Pod를 예약했는지 확인합니다.
$ oc describe pod custom-scheduler-example
스케줄러,
custom-scheduler
는 다음 잘린 출력에 표시된 대로 나열됩니다.Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled <unknown> custom-scheduler Successfully assigned default/custom-scheduler-example to <node_name>