Oracle Managed Kubernetes Clusterへのアプリケーションのデプロイ

コンテナをOracle Container Engine for Kubernetesクラスタにデプロイするには、そのイメージをレジストリにアップロードし、Oracle Container Engine for Kubernetesクラスタへのデプロイメントを示すデプロイメント・マニフェスト・ファイルを作成します。

DockerイメージをOracle Cloud Infrastructure Registryにアップロード

Oracle Cloud Infrastructure Registryは、アプリケーション・イメージを格納できるプライベート・リポジトリです。クラウド・インフラストラクチャがアクセスできる場合は、この目的で任意のレジストリを使用できます。

Oracle Cloud Infrastructure Registryにイメージをアップロードするには、イメージに適切なタグを付けてから、レジストリにアップロードする必要があります。Oracle Cloud Infrastructure Registryにイメージをアップロードするには、イメージをアップロードするOracle Cloud Infrastructure Registryのターゲットの場所への完全修飾パスを指定します(オプションで、リポジトリの名前を含めます)。ここで、タグ名をbuild.gradleで指定することによって、すでにアップグレード用のDockerプラグインでタグ付けします。

tag = 'data-region.ocir.io/my-tenant/my-repo/omc-sample-app:latest'

イメージをOracle Cloud Infrastructure Registryにアップロードする準備ができたら、Oracle Cloud Infrastructureコンソールにサインインして、Oracle Cloud Infrastructureでアクセス・トークンを設定します。アクセストークンは、Dockerコマンド行インタフェース(CLI)を使用してOracle Cloud Infrastructureにサインインするのに役立ちます。

  1. Oracle Cloud Infrastructureコンソールで、右上隅にある「ユーザー」メニューをクリックし、「ユーザー設定」をクリックして詳細を表示します。
  2. 認証トークン・ページで、「トークンの生成」をクリックします。
  3. トークンの生成」ダイアログ・ボックスで、認証トークンのわかりやすい説明を入力し、「トークンの生成」をクリックします。新しい認証トークンが表示されます。
  4. Oracle Cloud Infrastructureコンソールに再認証トークンが表示されないため、後で取得できるセキュアな場所に認証トークンをコピーします。
  5. トークンの生成」ダイアログ・ボックスを閉じて、Oracle Cloud Infrastructureコンソールを閉じます。


認証トークンを作成したら、Oracle Cloud Infrastructure Registryにイメージをアップロードします。

  1. 標準のDocker CLIを使用して、Oracle Cloud Infrastructureにサインインします。

    docker login data-region.ocir.io

  2. ユーザー名を書式(my-tenant/username@example.com)で入力します。プロンプトが表示されたら、前に保存した認証トークンを入力します。
  3. Oracle Cloud Infrastructure Registryにイメージをアップロードします。

    docker push data-region.ocir.io/my-tenant/my-repo/omc-sample-app

アップロードした後は、リポジトリ内のイメージを表示できます。



Oracle Container Engine for Kubernetes Clusterへのアプリケーションのデプロイ

イメージをアップロードした後、Kubernetesデプロイメント・マニフェストを設定して、アプリケーションをデプロイメント・ユニットとして管理し、Kubernetesクラスタをデプロイする必要があります。

このマニフェストは、作成したイメージに基づいて1つのレプリカを必要とするDeploymentオブジェクトを説明しています。

  1. 現在のディレクトリに、次のようなマニフェスト・ファイル(omc-sample-svc.yaml)を作成します。
    apiVersion: apps/v1
    kind: Deployment
    metadata: 
    name: omc-sample-app
    spec: 
    selector: 
        matchLabels:
        app: omc-sample-app
    replicas: 1
    template:
        metadata:
        labels: 
            app: omc-sample-app
        spec:
        containers:
        - name: omc-sample-app
            image: data-region.ocir.io/my-tenant/my-repo/omc-sample-app:latest 
            ports:
            - containerPort: 8080
    ---
    apiVersion: v1
    kind: Service
    metadata:
    name: omc-sample-app
    spec:
    selector:
        app: omc-sample-app
    ports:
    - protocol: "TCP"
        port: 8080
        targetPort: 8080
    type: LoadBalancer
    

    デプロイメントの名前はomc-sample-appで、アプリケーション・コンテナが作成されます。デプロイメント全体へのアクセスを有効化するには、サービスを作成します。この場合、タイプはLoadBalancerです。デプロイすると、Oracle Cloud Infrastructure Load Balancingインスタンスが自動的にプロビジョニングされ、アプリケーションへのトラフィックが管理およびルーティングされます。

  2. 現在のディレクトリからkubectlを実行して、アプリケーション・イメージをデプロイします。

    kubectl apply -f omc-sample-svc.yaml