ワークロードをバックエンドデータベースサービスに接続したり、クライアントからのリクエストを認証したりする必要があるシナリオでは、ユーザー名、パスワード、証明書などの機密情報の機密性を確保する必要があります。機密情報の漏洩を防ぐために、Alibaba Cloud Container Compute Service (ACS) クラスタの機密情報を保存するためにシークレットを使用することをお勧めします。このトピックでは、ACS クラスタでシークレットを作成、変更、および削除する方法について説明します。
前提条件
ACS クラスタが作成されていること。詳細については、ACS クラスタの作成を参照してください。
背景情報
シークレットは次のタイプに分類されます。
サービスアカウント: サービスアカウントは Kubernetes によって自動的に作成され、ポッドの /run/secrets/kubernetes.io/serviceaccount ディレクトリに自動的にマウントされます。サービスアカウントは、ポッドが API サーバーと対話するための ID を提供します。
Opaque: このタイプのシークレットは Base64 を使用してエンコードされ、パスワードや証明書などの機密情報を保存するために使用されます。
デフォルトでは、ACS コンソールで作成できるのは Opaque シークレットのみです。Opaque シークレットはマップ型のデータを保存します。したがって、値は Base64 を使用してエンコードする必要があります。
ACS コンソールでは、数回クリックするだけでシークレットを作成できます。プレーンテキストのシークレットは Base64 を使用して自動的にエンコードされます。CLI を使用してシークレットを作成することもできます。詳細については、Kubernetes シークレットを参照してください。
シークレットの作成
ACS コンソールにログオンします。左側のナビゲーションペインで、クラスタをクリックします。
クラスタページで、管理するクラスタを見つけて、その ID をクリックします。クラスタの詳細ページの左側のナビゲーションペインで、構成 > シークレットを選択します。
シークレットページで、名前空間ドロップダウンリストから名前空間を選択します。シークレットページの右上隅にある作成をクリックし、表示されるパネルでシークレットを構成します。
パラメータ
説明
名前
シークレットの名前を入力します。
タイプ
Opaque、プライベートリポジトリログオンシークレット、またはTLS 証明書を選択できます。
Opaque
タイプをOpaqueに設定した場合、次のパラメータを構成します。
オプション: プレーンテキストデータを Base64 を使用してエンコードするには、Base64 を使用してデータ値をエンコードを選択します。
キーと値のペアでシークレットを構成します。+ 追加をクリックします。名前フィールドと値フィールドにシークレットのキーと値を入力します。
プライベートリポジトリログオンシークレット
タイプをプライベートリポジトリログオンシークレットに設定した場合、次のパラメータを構成します。
Docker レジストリ URL: シークレットが保存されている Docker レジストリのアドレスを入力します。
ユーザー名: Docker レジストリにログオンするために使用するユーザー名を入力します。
パスワード: Docker レジストリにログオンするために使用するパスワードを入力します。
TLS 証明書
タイプをTLS 証明書に設定した場合、次のパラメータを構成します。
証明書: TLS 証明書を入力します。
キー: TLS 証明書のキーを入力します。
次の手順
シークレットを作成した後、シークレットページで次の操作を実行できます。
シークレットの名前をクリックして、シークレットの基本情報と詳細を表示します。
説明アイコンをクリックして、プレーンテキストで値を表示します。
アクション列の編集をクリックして、シークレットの情報を変更します。
アクション列の削除をクリックして、シークレットを削除します。
重要kube-system
などのシステム名前空間に自動的に作成されたシークレットは、削除または変更しないでください。これにより、システムの安定性と信頼性が確保されます。
参照
ボリュームと環境変数を使用して ACS クラスタでシークレットを使用する方法の詳細については、ポッドでシークレットを使用するを参照してください。