How does Kubernetes cluster pull the container image using the password-free component
前提条件
• 登録済みクラスターを作成し、セルフビルド Kubernetes クラスターを登録済みクラスターに接続する必要があります。詳細については、「Alibaba Cloud 登録済みクラスターの作成とセルフビルド Kubernetes クラスターへのアクセス」を参照してください。
注意事項
• Deployment などの Kubernetes リソースのテンプレートでプル認証情報(imagePullSecret)を設定すると、パスワードフリーコンポーネントが正常に動作しなくなります。パスワードフリーコンポーネントを使用する場合は、imagePullSecret の手動設定を避けてください。
• デプロイする Kubernetes リソース(Deployment など)がカスタム ServiceAccount を使用する場合、リソースをデプロイする前に、パスワードフリーコンポーネントの設定ファイル内の service-account フィールドを調整して、カスタム ServiceAccount に適用されるようにする必要があります。
• クラスター内で新しいサービスアカウントを作成してから一定期間が経過した後、パスワードフリープラグインが ACK クラスターのデフォルト権限に基づいて生成した ACR プライベートイメージプルトークンが、アプリケーションが使用するサービスアカウントに更新され、そのサービスアカウントを使用するアプリケーションはこのトークンを使用してイメージをプルします。サービスアカウント作成直後にアプリケーションを作成した場合、認証に失敗してイメージをプルできないことがあります。
• デフォルトでは、パスワードフリープラグインは ACK 内のすべての名前空間にあるデフォルトの ServiceAccount の imagePullSecret フィールドを上書きします。上書きされた ServiceAccount は、対応する kube-system 名前空間内の acr-configuration 設定項目の service-account フィールドの変更に伴って変化します。
• kube-system 名前空間内の acr-configuration 設定項目を変更する際は、指定されたシナリオ例と同じインデントになっているか確認してください。対応するシナリオの YAML コンテンツをエディタに直接コピーしてから値を変更し、クラスターに直接適用することで YAML 形式の正確性を保つことを推奨します。
背景情報
パスワードフリーコンポーネントを使用する際のイメージとクラスターの制限事項は以下のとおりです。
• イメージ
• コンテナイメージサービスの Enterprise Edition および Personal Edition の両方のインスタンスからプライベートイメージをプルできます。
• クラスターの現在のユーザーのコンテナイメージサービス内のプライベートイメージをプルできます。他のユーザーのプライベートイメージについては、クロスアカウント認可または AccessKey ID と AccessKey Secret の設定を通じてプルできます。
• コンテナイメージサービス内のプライベートイメージのクロスリージョンプルをサポートします。
• クラスター
• クラスターの複数の名前空間でのシークレットなしプルをサポートします。
• サポートされるクラスタータイプ:
• Dedicated Kubernetes クラスター
• Managed Kubernetes クラスター
• 登録済みクラスター
• サポートされるクラスターバージョン:
• セルフビルド Kubernetes クラスター:バージョン 1.11.2 以降では、デフォルトでパスワードフリーのイメージプルがサポートされています。
ステップ 1:セルフビルドクラスターでのパスワードフリーコンポーネントの RAM 権限の設定
登録済みクラスターにコンポーネントをインストールする前に、クラスターへのアクセス時にクラウドサービスにアクセスするための AK の権限を設定する必要があります。AK を設定する前に、RAM ユーザーを作成し、関連するクラウドリソースへのアクセス権限を付与する必要があります。
1. RAM ユーザーを作成します。RAM ユーザーの作成手順については、「RAM ユーザーの作成」を参照してください。
2. 権限ポリシーを作成します。権限ポリシーの作成手順については、「カスタムポリシーの作成」を参照してください。以下に示すように RAM 権限を認可してください。
3. RAM ユーザーに権限を付与します。RAM ユーザーへの権限付与手順については、「RAM ユーザーへの認可」を参照してください。
4. RAM ユーザーの AK を作成します。サブアカウントの AK 作成方法については、「AccessKey の取得」を参照してください。
5. AK を使用して、セルフビルド Kubernetes クラスター内に alibaba-addon-secret という名前の Secret リソースを作成します。ステップ 2 でイベントセンターの関連コンポーネントをインストールする際、この AK が自動的に参照され、対応するクラウドサービスリソースにアクセスします。
上記のコード内の AccessKey ID と AccessKey Secret を、取得した AK 情報に置き換える必要があります。
ステップ 2:コンポーネントのアップグレードと設定
パスワードフリーコンポーネントを使用してイメージをプルする前に、コンポーネントのアップグレードと設定が必要な場合があります。操作手順は以下のとおりです。
1. aliyun-acr-credential-helper コンポーネントをアップグレードします。
A. コンテナサービス管理コンソールにログインします。
B. コンソールの左側ナビゲーションバーで [クラスター] をクリックします。
C. クラスターリストページで、対象クラスターの操作列にある [詳細] > [システムコンポーネント管理] をクリックします。
D. セキュリティセクションで aliyun-acr-credential-helper を見つけ、[アップグレード] をクリックします。
2. acr-configuration 設定項目を設定します。コンソールモードを使用して acr-configuration 設定項目を設定します。
A. コンテナサービス管理コンソールにログインします。
B. コンソールの左側ナビゲーションバーで [クラスター] をクリックします。
C. クラスターリストページで、対象クラスターの [詳細] をクリックします。
D. クラスター情報ページの左側ナビゲーションバーで、[設定管理] > [設定項目] を選択します。
E. 設定項目ページの上部にある名前空間ドロップダウンボックスで kube-system を選択し、acr-configuration 設定項目を見つけて、以下の 2 つの方法で acr-configuration を設定します。
• 方法 1:右側の [編集] をクリックして、設定キーと値を設定します。acr-configuration 設定項目がない場合は、「設定項目の作成」を参照してください。設定項目の更新方法については、「設定項目の変更」を参照してください。
• 方法 2:右側の [YAML 編集] をクリックして、設定キーと値を YAML 形式で設定します。
F. acr-configuration 設定項目のキーと値の説明は以下のとおりです。
1. kubectl コマンドラインを使用して acr-configuration 設定項目を設定します。
A. 次のコマンドを実行して、acr-configuration 設定項目の編集ページを開きます。
kubectl edit cm acr-configuration -n kube-system
B. 実際の状況に応じて acr-configuration 設定項目の値を設定します。Enterprise Edition とデフォルトのコンテナイメージインスタンスでの acr-configuration 設定項目の設定例は以下のとおりです。
• Enterprise Edition
シナリオ 1:個人版および企業版のプライベートイメージをプルする
ACK は、企業版と個人版の両方のプライベートイメージを同時にプルしたり、企業版のプライベートイメージのみをプルしたり、個人版のプライベートイメージのみをプルしたりできます。使用シナリオに応じて、acr-configuration 設定項目内の ConfigMap を以下のように変更してください。設定手順については、前述のコンポーネントの設定を参照してください。設定内容は以下のとおりです。
• 企業版のプライベートイメージをプルするように設定します。
• 個人版のプライベートイメージをプルするように設定します。
• 個人版と企業版のプライベートイメージを同時にプルするように設定します。
シナリオ 2:クロスリージョンでのイメージプル権限を設定する
プルするイメージが現在の ACK クラスターと同じリージョンに属していない場合は、acr-configuration 設定項目内の ConfigMap を変更する必要があります。
たとえば、デフォルトのリポジトリで北京と杭州のリージョンのイメージを同時にプルする場合の設定は以下のとおりです。設定手順については、前述のコンポーネントの設定を参照してください。
• 登録済みクラスターを作成し、セルフビルド Kubernetes クラスターを登録済みクラスターに接続する必要があります。詳細については、「Alibaba Cloud 登録済みクラスターの作成とセルフビルド Kubernetes クラスターへのアクセス」を参照してください。
注意事項
• Deployment などの Kubernetes リソースのテンプレートでプル認証情報(imagePullSecret)を設定すると、パスワードフリーコンポーネントが正常に動作しなくなります。パスワードフリーコンポーネントを使用する場合は、imagePullSecret の手動設定を避けてください。
• デプロイする Kubernetes リソース(Deployment など)がカスタム ServiceAccount を使用する場合、リソースをデプロイする前に、パスワードフリーコンポーネントの設定ファイル内の service-account フィールドを調整して、カスタム ServiceAccount に適用されるようにする必要があります。
• クラスター内で新しいサービスアカウントを作成してから一定期間が経過した後、パスワードフリープラグインが ACK クラスターのデフォルト権限に基づいて生成した ACR プライベートイメージプルトークンが、アプリケーションが使用するサービスアカウントに更新され、そのサービスアカウントを使用するアプリケーションはこのトークンを使用してイメージをプルします。サービスアカウント作成直後にアプリケーションを作成した場合、認証に失敗してイメージをプルできないことがあります。
• デフォルトでは、パスワードフリープラグインは ACK 内のすべての名前空間にあるデフォルトの ServiceAccount の imagePullSecret フィールドを上書きします。上書きされた ServiceAccount は、対応する kube-system 名前空間内の acr-configuration 設定項目の service-account フィールドの変更に伴って変化します。
• kube-system 名前空間内の acr-configuration 設定項目を変更する際は、指定されたシナリオ例と同じインデントになっているか確認してください。対応するシナリオの YAML コンテンツをエディタに直接コピーしてから値を変更し、クラスターに直接適用することで YAML 形式の正確性を保つことを推奨します。
背景情報
パスワードフリーコンポーネントを使用する際のイメージとクラスターの制限事項は以下のとおりです。
• イメージ
• コンテナイメージサービスの Enterprise Edition および Personal Edition の両方のインスタンスからプライベートイメージをプルできます。
• クラスターの現在のユーザーのコンテナイメージサービス内のプライベートイメージをプルできます。他のユーザーのプライベートイメージについては、クロスアカウント認可または AccessKey ID と AccessKey Secret の設定を通じてプルできます。
• コンテナイメージサービス内のプライベートイメージのクロスリージョンプルをサポートします。
• クラスター
• クラスターの複数の名前空間でのシークレットなしプルをサポートします。
• サポートされるクラスタータイプ:
• Dedicated Kubernetes クラスター
• Managed Kubernetes クラスター
• 登録済みクラスター
• サポートされるクラスターバージョン:
• セルフビルド Kubernetes クラスター:バージョン 1.11.2 以降では、デフォルトでパスワードフリーのイメージプルがサポートされています。
ステップ 1:セルフビルドクラスターでのパスワードフリーコンポーネントの RAM 権限の設定
登録済みクラスターにコンポーネントをインストールする前に、クラスターへのアクセス時にクラウドサービスにアクセスするための AK の権限を設定する必要があります。AK を設定する前に、RAM ユーザーを作成し、関連するクラウドリソースへのアクセス権限を付与する必要があります。
1. RAM ユーザーを作成します。RAM ユーザーの作成手順については、「RAM ユーザーの作成」を参照してください。
2. 権限ポリシーを作成します。権限ポリシーの作成手順については、「カスタムポリシーの作成」を参照してください。以下に示すように RAM 権限を認可してください。
3. RAM ユーザーに権限を付与します。RAM ユーザーへの権限付与手順については、「RAM ユーザーへの認可」を参照してください。
4. RAM ユーザーの AK を作成します。サブアカウントの AK 作成方法については、「AccessKey の取得」を参照してください。
5. AK を使用して、セルフビルド Kubernetes クラスター内に alibaba-addon-secret という名前の Secret リソースを作成します。ステップ 2 でイベントセンターの関連コンポーネントをインストールする際、この AK が自動的に参照され、対応するクラウドサービスリソースにアクセスします。
上記のコード内の AccessKey ID と AccessKey Secret を、取得した AK 情報に置き換える必要があります。
ステップ 2:コンポーネントのアップグレードと設定
パスワードフリーコンポーネントを使用してイメージをプルする前に、コンポーネントのアップグレードと設定が必要な場合があります。操作手順は以下のとおりです。
1. aliyun-acr-credential-helper コンポーネントをアップグレードします。
A. コンテナサービス管理コンソールにログインします。
B. コンソールの左側ナビゲーションバーで [クラスター] をクリックします。
C. クラスターリストページで、対象クラスターの操作列にある [詳細] > [システムコンポーネント管理] をクリックします。
D. セキュリティセクションで aliyun-acr-credential-helper を見つけ、[アップグレード] をクリックします。
2. acr-configuration 設定項目を設定します。コンソールモードを使用して acr-configuration 設定項目を設定します。
A. コンテナサービス管理コンソールにログインします。
B. コンソールの左側ナビゲーションバーで [クラスター] をクリックします。
C. クラスターリストページで、対象クラスターの [詳細] をクリックします。
D. クラスター情報ページの左側ナビゲーションバーで、[設定管理] > [設定項目] を選択します。
E. 設定項目ページの上部にある名前空間ドロップダウンボックスで kube-system を選択し、acr-configuration 設定項目を見つけて、以下の 2 つの方法で acr-configuration を設定します。
• 方法 1:右側の [編集] をクリックして、設定キーと値を設定します。acr-configuration 設定項目がない場合は、「設定項目の作成」を参照してください。設定項目の更新方法については、「設定項目の変更」を参照してください。
• 方法 2:右側の [YAML 編集] をクリックして、設定キーと値を YAML 形式で設定します。
F. acr-configuration 設定項目のキーと値の説明は以下のとおりです。
1. kubectl コマンドラインを使用して acr-configuration 設定項目を設定します。
A. 次のコマンドを実行して、acr-configuration 設定項目の編集ページを開きます。
kubectl edit cm acr-configuration -n kube-system
B. 実際の状況に応じて acr-configuration 設定項目の値を設定します。Enterprise Edition とデフォルトのコンテナイメージインスタンスでの acr-configuration 設定項目の設定例は以下のとおりです。
• Enterprise Edition
シナリオ 1:個人版および企業版のプライベートイメージをプルする
ACK は、企業版と個人版の両方のプライベートイメージを同時にプルしたり、企業版のプライベートイメージのみをプルしたり、個人版のプライベートイメージのみをプルしたりできます。使用シナリオに応じて、acr-configuration 設定項目内の ConfigMap を以下のように変更してください。設定手順については、前述のコンポーネントの設定を参照してください。設定内容は以下のとおりです。
• 企業版のプライベートイメージをプルするように設定します。
• 個人版のプライベートイメージをプルするように設定します。
• 個人版と企業版のプライベートイメージを同時にプルするように設定します。
シナリオ 2:クロスリージョンでのイメージプル権限を設定する
プルするイメージが現在の ACK クラスターと同じリージョンに属していない場合は、acr-configuration 設定項目内の ConfigMap を変更する必要があります。
たとえば、デフォルトのリポジトリで北京と杭州のリージョンのイメージを同時にプルする場合の設定は以下のとおりです。設定手順については、前述のコンポーネントの設定を参照してください。
Related Articles
-
A detailed explanation of Hadoop core architecture HDFS
Knowledge Base Team
-
What Does IOT Mean
Knowledge Base Team
-
6 Optional Technologies for Data Storage
Knowledge Base Team
-
What Is Blockchain Technology
Knowledge Base Team
Explore More Special Offers
-
Short Message Service(SMS) & Mail Service
50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00
