第10章 ManifestWork を使用したワークロードの展開

Kubernetes クラスターのマルチクラスターエンジンからマネージドクラスターにワークロードをデプロイできます。例:Kubernetes クラスターのマルチクラスターエンジンからマネージドクラスターに基本的なデプロイを作成するには、ManifestWork を使用した次のサンプルを参照してください。

  1. Kubernetes クラスターのマルチクラスターエンジンにログインします。

    oc login
  2. 次の例のように、YAML ファイルを作成して ManifestWork リソースを設定します。CLUSTER_NAMEクラスターのインポート ドキュメントでインポートしたマネージドクラスターの名前に置き換えます。サンプルの YAML は、ファイルを適用すると、マネージドクラスターの default の namespace にデプロイされます。

    apiVersion: work.open-cluster-management.io/v1
    kind: ManifestWork
    metadata:
      name: hello-work
      namespace: ${CLUSTER_NAME}
      labels:
        app: hello
    spec:
      workload:
        manifests:
        - apiVersion: apps/v1
          kind: Deployment
          metadata:
            name: hello
            namespace: default
          spec:
            selector:
              matchLabels:
                app: hello
            template:
              metadata:
                labels:
                  app: hello
              spec:
                containers:
                  - name: hello
                    image: quay.io/asmacdo/busybox
                    command: ['/bin/sh', '-c', 'echo "Hello, Kubernetes!" && sleep 300']
        - apiVersion: v1
          kind: Service
          metadata:
            labels:
              app: hello
            name: hello
            namespace: default
          spec:
            ports:
            - port: 8000
              protocol: TCP
              targetPort: 8000
            selector:
              app: hello
  3. YAML ファイルを適用します。以下のコマンドを実行します。

    oc apply -f manifestwork.yaml
  4. 次のコマンドを実行して、Kubernetes クラスターのマルチクラスターエンジンから ManifestWork のステータスを確認します。

    oc get manifestwork -n ${CLUSTER_NAME} hello-work -o yaml
  5. マネージドクラスターにログインして、結果を表示します。以下のコマンドを使用します。

    oc login
  6. Kubernetes クラスター用のマルチクラスターエンジンで作成したデプロイを表示します。

    $ oc get deploy -n default
    NAME    READY   UP-TO-DATE   AVAILABLE   AGE
    hello   1/1     1            1           37s

    次のコマンドを使用して、作成された Pod を表示することもできます。

    $ oc get pod
    NAME                     READY   STATUS    RESTARTS   AGE
    hello-65f58985ff-4rm57   1/1     Running   0          42s

    作成された Pod のログを表示すると、次のようなメッセージが表示されます。

    $ oc logs hello-65f58985ff-4rm57
    Hello, Kubernetes!