Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

16.4.2. 스케줄러 패키지

클러스터에 사용자 지정 스케줄러를 포함하는 일반적인 프로세스에는 배포에 해당 이미지를 포함하여 이미지를 생성해야 합니다.

  1. 스케줄러 바이너리를 컨테이너 이미지로 패키징합니다.
  2. 스케줄러 바이너리를 포함하는 컨테이너 이미지를 생성합니다.

    예를 들면 다음과 같습니다.

    FROM <source-image>
    ADD <path-to-binary> /usr/local/bin/kube-scheduler
  3. 파일을 Dockerfile로 저장하고 이미지를 빌드한 다음 레지스트리에 내보냅니다.

    예를 들면 다음과 같습니다.

    docker build -t <dest_env_registry_ip>:<port>/<namespace>/<image name>:<tag>
    docker push <dest_env_registry_ip>:<port>/<namespace>/<image name>:<tag>
  4. OpenShift Container Platform에서 사용자 정의 스케줄러에 대한 배포를 생성합니다.

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: custom-scheduler
      namespace: kube-system
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: custom-scheduler
    subjects:
    - kind: ServiceAccount
      name: custom-scheduler
      namespace: kube-system
    roleRef:
      kind: ClusterRole
      name: system:kube-scheduler
      apiGroup: rbac.authorization.k8s.io
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: custom-scheduler
      namespace: kube-system
      labels:
        app: custom-scheduler
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: custom-scheduler
      template:
        metadata:
          labels:
            app: custom-scheduler
        spec:
          serviceAccount: custom-scheduler
          containers:
            - name: custom-scheduler
              image: "<namespace>/<image name>:<tag>" 1
              imagePullPolicy: Always
    1
    사용자 정의 스케줄러에 대해 생성한 컨테이너 이미지를 지정합니다.