イメージキャッシュ概要
イメージキャッシュを使用してインスタンスを作成する時にイメージの取得が高速化され、インスタンスを起動する所要時間を減少させます。この機能はTKE ServerlessクラスターPodおよびスーパーノードに適用されます。ここではイメージキャッシュの動作原理、課金説明、作成および使用方法などについてご説明します。
動作原理
イメージキャッシュアクセラレーションがインスタンスを有効にする時は事前にコンテナインスタンスを起動してイメージの取得を行います。このイメージはサイズがカスタマイズ可能なデータディスク内に保存され、同時にこのデータディスクをクラウドディスクのスナップショットとしてキャッシュします。つまりイメージデータはスナップショット内に保存されます。コンテナインスタンスまたはPodを作成する時にイメージキャッシュの自動マッチングまたは手動マッチングを選択し、イメージのスナップショットに基づいて対応する数量のハードディスク(データディスク)を作成し、インスタンスにマウントされ、イメージ層のダウンロードを回避し、それによってコンテナインスタンスおよびPodの作成速度をアップさせます。
時間制限がなく、イメージキャッシュ(スナップショット)のライフサイクルに関連しています。
事前にPodをコールドスタートするだけで、スナップショットを作成するとこのPodが破棄されます。
アベイラビリティーゾーンの制限がなく、スナップショットに基づいてクラウドディスクを作成する時に自動的にアベイラビリティーゾーンをマッチングします。
ワークロードの制限がなく、同じリージョン内でマッチングできます。
課金説明
イメージキャッシュを作成する時は、以下のリソースに関連します。対応する課金状況は次のとおりです。
|
| イメージキャッシュを作成する時は、2コア4GiBのコンテナインスタンスを実行してイメージを取得する必要があります。イメージキャッシュの作成が完了すると、そのコンテナインスタンスは自動的にリリースされて課金が停止します。 | |
| イメージキャッシュを作成する時は、高性能なデータディスクをバインドしてイメージを保存する必要があります。このデータディスクのサイズはカスタマイズをサポートし、デフォルトは20Gです。イメージキャッシュの作成が完了すると、このデータディスクは自動的にリリースされて課金が停止します。 | |
| 上記のデータディスクに基づいてスナップショットを作成し、このスナップショットのライフサイクルはイメージキャッシュのライフサイクルに一致します。スナップショットは使用時間および容量に基づいて課金されます。 | |
イメージキャッシュを使用する場合、マッチングしたイメージキャッシュのスナップショットに基づいて同じ容量の高性能データディスクを作成し、 Podにバインドするため、Pod自体を作成する料金に加え、追加でデータディスクの料金が課金されます。
データディスク料金=容量 * 単価 * インスタンス実行時間
操作手順
コンソールを使用してイメージキャッシュを作成する
2. 左側ナビゲーションバーのアプリケーションセンター > イメージキャッシュを選択し、イメージキャッシュページでインスタンスの新規作成をクリックします。
3. イメージキャッシュの作成ページで、関連パラメータを設定します。
インスタンス名称:カスタマイズします。
所在リージョン:必要に応じて選択します。
コンテナネットワーク:コンテナネットワークアドレスの範囲内のIPアドレスをコンテナインスタンスに割り当てます。
セキュリティグループ:セキュリティグループはファイアウォールの機能があり、コンテナインスタンスのネットワーク通信を制限することができます。デフォルトはdefaultです。
OSタイプ:WindowsおよびLinuxの選択をサポートします。
イメージ:必要に応じてキャッシュするイメージおよびそのバージョンを選択します。
イメージ証明書:Dockerhubおよびその他のサードパーティのイメージウェアハウスのプライベートイメージを選択する場合、必ずイメージ証明書を入力する必要があります。すなわちウェアハウスのアクセスアドレス、ユーザー名およびパスワードです。
高度な設定:
キャッシュサイズ:このサイズはスナップショットおよびその後のインスタンスの作成時にバインドされるデータディスクのサイズを決定します。
注意:
イメージウェアハウスに表示されるイメージサイズは圧縮後のデータです。イメージキャッシュの作成にはイメージを抽出して展開するプロセスがあり、イメージが大きすぎるまたはイメージ圧縮比が大きすぎるとデフォルトの20GBのデータディスクでは不十分であるため、より大きなデータディスク空間を設定することをお勧めします。
期限切れポリシー:イメージキャッシュの保持時間を選択します。デフォルトは永久保持です。
4. インスタンスの作成をクリックします。作成が完了したらイメージキャッシュのリストで、イベント名をクリックして作成プロセスを確認できます。下図に示すとおりです。 CRDを使用してイメージキャッシュを作成する
CRDを使用してイメージキャッシュサービスを作成する場合、クラスター内でイメージキャッシュコンポーネントをインストールし、インストール後にCRD+Controllerのモードでサポートし、Tencent Cloudイメージキャッシュサービスを使用します。Tencent Cloud APIインターフェースを呼び出す必要はありません。操作ステップは次のとおりです。
2. クラスターリストでServerlessクラスターIDをクリックし、クラスター詳細ページに進みます。
3. 左側ナビゲーションバーでコンポーネント管理を選択し、新規作成をクリックします。
4. コンポーネント管理の新規作成ページでimc-operator(イメージキャッシュ)コンポーネントを選択します。下図に示すとおりです。 5. *完了**をクリックします。コンポーネント管理リストページで、 インストールしたコンポーネントを確認できます。
6. YAMLを編集します。 ImageCacheの作成:
事例:
apiVersion: eks.cloud.tencent.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
spec:
images:
- nginx
より多くのパラメータを持つ例:
apiVersion: eks.cloud.tencent.com/v1
kind: ImageCache
metadata:
annotations:
"eks.tke.cloud.tencent.com/eip-attributes": '{"InternetMaxBandwidthOut":2}'
name: imagecache-sample-more-para
spec:
images:
- nginx
- mysql
imageCacheSize: 30
retentionDays: 7
imagePullSecrets:
- imc-operator-system/qcloudregistrykey
事例:
異常がある場合はeventsを確認できます。
作成したイメージキャッシュを使用する
Serverlessクラスター内でPodを作成する時は、ワークロードの新規作成ページで、高度な設定の表示をクリックし、イメージキャッシュ機能にチェックを入れて有効にします。下図に示すとおりです。 イメージキャッシュは自動マッチングおよび手動マッチングの2種類のマッチング方式をサポートしています。ニーズに応じて適切なマッチング方式を選択できます。
キャッシュのマッチングモードで自動マッチングを選択した場合、以下のマッチングポリシーに基づき、最適なイメージキャッシュを自動的にマッチングします。
イメージ名およびバージョンが完全に同じであれば、マッチングできます。
イメージのキャッシュサイズ。小容量のものが優先的にマッチングされます。
作成時間。作成時間が遅いものが優先的にマッチングされます。
注意
双方がいずれもnginx: latestの場合でもマッチングできますが、作成時間が異なるため、バージョンが一致しない状況が存在する可能性があります。そのため、イメージキャッシュおよびインスタンスを作成する時に、バージョンを明確に記載することをお勧めします。
対応するイメージキャッシュにマッチングしない場合、自動的にイメージを正常に取得します。 キャッシュのマッチングモードで手動マッチングを選択した場合、手動で具体的なイメージキャッシュを選択する必要があります。手動でイメージキャッシュを指定した後、直接そのイメージキャッシュのスナップショットに基づいてデータディスクを作成してインスタンスにバインドしますが、データディスク中に作成時に入力されたイメージ(手動で指定した誤ったイメージキャッシュ)がない場合、新しく作成したデータディスク内でイメージを取得することにご注意ください。 TKEクラスター内のスーパーノード上のPodはPodのAnnotationを指定することによってイメージキャッシュを使用することができます。具体的にはスーパーノード Annotationの説明をご参照ください。 自動マッチング:
eks.tke.cloud.tencent.com/use-image-cache: auto
手動で指定:
eks.tke.cloud.tencent.com/use-image-cache: imc-xxx
マッチング結果
インスタンスを作成するイベント内から、マッチングが成功したかどうかを確認することができます。
マッチングが成功した場合、以下のイベントが表示されます。
このイベントが表示されない場合、適切なイメージキャッシュにマッチングしなかったことを表します。
手動マッチングを選択したのに、マッチングするイメージキャッシュ内にそのイメージがない場合、再度新しく作成したデータディスク内でイメージを取得し、以下のイベントが表示されることにご注意ください。