多くのシナリオでは、プライベートイメージリポジトリからイメージを取得してアプリケーションをデプロイする必要があります。本トピックでは、Alibaba Cloud Container Registry を使用してプライベートイメージリポジトリを作成し、そのプライベートイメージリポジトリを使用するアプリケーションを作成する方法について説明します。
プライベートイメージリポジトリの作成
Alibaba Cloud Container Registry を初めて使用する場合、注 ダイアログが表示され、レジストリのログインパスワードの設定が求められます。今すぐアクティブ化 をクリックし、画面の指示に従ってレジストリのログインパスワードを設定してください。
Container Registry コンソール にログインします。
上部のナビゲーションバーでリージョンを選択します。
左側のナビゲーションウィンドウで [インスタンス] をクリックします。
[インスタンス] ページで、管理対象の Personal Edition インスタンスをクリックします。
-
パーソナルインスタンス管理ページで、 を選択します。
-
リポジトリ ページの左上隅で、リポジトリの作成 を選択します。
-
リポジトリ ウィザードで、名前空間、リポジトリ名、サマリー、および リポジトリタイプ を設定します。この例では、プライベートイメージリポジトリを選択します。その後、次へ をクリックします。
-
コードソース ウィザードで、コードソースを ローカルリポジトリ に設定し、リポジトリの作成 をクリックします。
説明イメージリポジトリリストで、目的のイメージリポジトリの名前をクリックします。基本情報 ページで、ガイド タブに移動し、このプライベートイメージリポジトリの使用方法を確認できます。
-
次のコマンドを実行して、イメージリポジトリにログインします。
説明-
Alibaba Cloud アカウントを使用している場合、Alibaba Cloud アカウント名がイメージリポジトリのログインユーザー名になります。
-
Resource Access Management (RAM) ユーザーを使用している場合、RAM ユーザーアカウント名から .onaliyun.com サフィックスを削除すると、イメージリポジトリのログインユーザー名が得られます。たとえば、RAM ユーザーが 123@1880770869021234.onaliyun.com の場合、イメージリポジトリのログインユーザー名は 123@1880770869021234 です。
sudo docker login --username=<image repository logon username> registry.cn-<region where your personal instance resides>.aliyuncs.comプロンプトが表示されたら、ログインパスワードを入力します。出力に
login succeededと表示された場合、ログインは成功しています。 -
-
次のコマンドを実行して、イメージ ID を確認します。
docker images -
次のコマンドを実行して、イメージにタグを付けます。
sudo docker tag <image ID> registry.cn-hangzhou.aliyuncs.com/<namespace name>/<image repository name>:[image version] -
次のコマンドを実行して、イメージをイメージリポジトリにプッシュします。
sudo docker push registry.cn-hangzhou.aliyuncs.com/<namespace name>/<image repository name>:[image version]期待される出力:
The push refers to a repository [registry.cn-hangzhou.aliyuncs.com/XXX/tomcat-private] 9072c7b03a1b: Pushed f9701cf47c58: Pushed 365c8156ff79: Pushed 2de08d97c2ed: Pushed 6b09c39b2b33: Pushed 4172ffa172a6: Pushed 1dccf0da88f3: Pushed d2070b14033b: Pushed 63dcf81c7ca7: Pushed ce6466f43b11: Pushed 719d45669b35: Pushed 3b10514a95be: Pushed V1: digest: sha256:cded14cf64697961078aedfdf870e704a52270188c8194b6f70c778a8289**** size: 2836イメージリポジトリ詳細ページの左側ナビゲーションウィンドウで、タグ をクリックします。イメージが正常にアップロードされ、バージョン情報が表示されていることを確認できます。
プライベートイメージリポジトリログイン認証情報タイプのシークレットの作成
プライベートリポジトリからイメージをプルするには、プライベートリポジトリのログインパスワード タイプのシークレットを使用する必要があります。
Container Service Management Console にログインします。
左側のナビゲーションウィンドウで クラスター をクリックします。
クラスターリスト ページで、送信先クラスターの名前をクリックするか、操作 列の 詳細 をクリックします。
クラスター管理ページの左側ナビゲーションウィンドウで、 を選択します。
-
シークレット ページの右上隅で、作成する をクリックします。
-
作成 ページでパラメーターを設定し、OK をクリックします。
パラメーター
説明
Name
シークレット名。
Type
シークレットタイプ:
-
Opaque:汎用的なシークレットタイプです。キーと値を入力します。値は Base64 エンコードされている必要があります。
-
プライベートイメージリポジトリログイン認証情報:プライベートリポジトリからイメージをプルするために必要な認証情報を格納します。イメージリポジトリのアドレス、ユーザー名、パスワードを入力します。
説明ユーザー名とパスワードは、Alibaba Cloud アカウント名全体とサービス有効化時に設定したパスワードです。アクセス資格情報 ページでパスワードを変更できます。
-
TLS 証明書:TLS は本人確認に使用されるメカニズムです。
-
Cert:TLS 証明書情報を入力します。
-
Key:TLS 秘密鍵情報を入力します。
-
シークレットページに戻ります。新しく作成したシークレットがリストに表示されます。
-
コマンドラインを使用して プライベートリポジトリのログインパスワード タイプのシークレットを作成することもできます。詳細については、「クラスターの KubeConfig を取得し、kubectl を使用してクラスターに接続する」をご参照ください。
プライベートイメージリポジトリを使用したアプリケーションの作成
Container Service Management Console にログインします。
左側のナビゲーションウィンドウで クラスター をクリックします。
クラスターリスト ページで、送信先クラスターの名前をクリックするか、操作 列の 詳細 をクリックします。
クラスター管理ページの左側ナビゲーションウィンドウで、 を選択します。
-
デプロイメント ページの右上隅で、YAML のリソースの作成 をクリックします。
説明イメージを使用して作成 をクリックしてアプリケーションを作成することもできます。詳細については、「イメージシークレットを使用したアプリケーションの作成」をご参照ください。
-
サンプルテンプレート を カスタマイズ に設定し、次の YAML コンテンツを テンプレート フィールドにコピーします。
apiVersion: apps/v1 kind: Deployment metadata: name: private-image namespace: default labels: app: private-image spec: replicas: 1 selector: matchLabels: app: private-image template: metadata: labels: app: private-image spec: containers: - name: private-image image: registry.cn-hangzhou.aliyuncs.com/namespace-name/tomcat-private:latest ports: - containerPort: 8080 imagePullSecrets: - name: regsecret -
作成 をクリックします。
デプロイメントリストに戻り、プライベートイメージリポジトリを使用して作成したアプリケーションを確認します。
詳細については、Kubernetes 公式ドキュメント「Using a private registry」をご参照ください。