1.6. kubedock でコンテナーを実行する
Kubedock は、OpenShift Dev Spaces ワークスペース内で Podman/docker のようなエクスペリエンスを提供する最小限のコンテナーエンジン実装です。Kubedock は、以下に示すユースケースのように、アドホックコンテナー、エフェメラルコンテナー、テストコンテナーを扱う場合に特に便利です。
- Testcontainers フレームワークに依存するアプリケーションテストを実行します。
- Quarkus Dev Services を使用します。
- ローカル開発の目的で、リモートコンテナーレジストリーに保存されているコンテナーを実行します。
kubedock で使用するイメージは、Openshift Container Platform のガイドライン に準拠している必要があります。そうしないと、同じイメージがローカルで問題なく実行されていても、kubedock でイメージを実行すると失敗します。
kubedock の有効化
kubedock 環境変数を有効にすると、kubedock は次の podman コマンドを実行します。
-
podman run -
podman ps -
podman exec -
podman cp -
podman logs -
podman inspect -
podman kill -
podman rm -
podman wait -
podman stop -
podman start
podman build などの他のコマンドは、ローカル Podman によって開始されます。
kubedock で podman コマンドを使用する場合、以下の制限があります。
-
podman build -t <image> . && podman run <image>コマンドは失敗します。代わりにpodman build -t <image> . && podman push <image> && podman run <image>を使用してください。 -
podman generate kubeコマンドはサポートされません。 -
--envオプションを指定すると、podman runコマンドが失敗します。
前提条件
- Openshift Container Platform ガイドライン に準拠するイメージ。
プロセス
KUBEDOCK_ENABLED=true環境変数を devfile に追加します。(オプション)
KUBEDOCK_PARAM変数を使用して、追加の kubedock パラメーターを指定します。変数のリストは ここから 入手できます。または、次のコマンドを使用して、使用可能なオプションを表示することもできます。# kubedock server --help
例
schemaVersion: 2.2.0
metadata:
name: kubedock-sample-devfile
components:
- name: tools
container:
image: quay.io/devfile/universal-developer-image:latest
memoryLimit: 8Gi
memoryRequest: 1Gi
cpuLimit: "2"
cpuRequest: 200m
env:
- name: KUBEDOCK_PARAMS
value: "--reverse-proxy --kubeconfig /home/user/.kube/config --initimage quay.io/agiertli/kubedock:0.13.0"
- name: USE_JAVA17
value: "true"
- value: /home/jboss/.m2
name: MAVEN_CONFIG
- value: -Xmx4G -Xss128M -XX:MetaspaceSize=1G -XX:MaxMetaspaceSize=2G
name: MAVEN_OPTS
- name: KUBEDOCK_ENABLED
value: 'true'
- name: DOCKER_HOST
value: 'tcp://127.0.0.1:2475'
- name: TESTCONTAINERS_RYUK_DISABLED
value: 'true'
- name: TESTCONTAINERS_CHECKS_DISABLE
value: 'true'
endpoints:
- exposure: none
name: kubedock
protocol: tcp
targetPort: 2475
- exposure: public
name: http-booster
protocol: http
targetPort: 8080
attributes:
discoverable: true
urlRewriteSupported: true
- exposure: internal
name: debug
protocol: http
targetPort: 5005
volumeMounts:
- name: m2
path: /home/user/.m2
- name: m2
volume:
size: 10G
コンテナーを実行するときは、kubedock 設定 CONTAINER_HOST=tcp://127.0.0.1:2475 または DOCKER_HOST=tcp://127.0.0.1:2475 を指すように Podman または docker API を設定する必要があります。
同時に、コンテナーを構築するときに、ローカル Podman を指すように Podman を設定する必要があります。