16.4.2. スケジューラーのパッケージ化
クラスターにカスタムスケジューラーを含む一般的なプロセスでは、イメージを作成し、そのイメージをデプロイメントに含める必要があります。
- スケジューラーバイナリーをコンテナーイメージにパッケージ化します。
スケジューラーバイナリーを含む コンテナーイメージを作成します。
以下に例を示します。
FROM <source-image> ADD <path-to-binary> /usr/local/bin/kube-scheduler
ファイルを Dockerfile として保存し、イメージをビルドし、レジストリーにプッシュします。
以下に例を示します。
docker build -t <dest_env_registry_ip>:<port>/<namespace>/<image name>:<tag> docker push <dest_env_registry_ip>:<port>/<namespace>/<image name>:<tag>
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
- カスタムスケジューラー用に作成したコンテナーイメージを指定します。