Environment Variable Management
アプリケーションの環境変数情報はYAMLファイルにハードコーディングすることができますが、再利用性に欠けます。運用の観点から、アプリケーションを実行するコードとアプリケーションに注入される設定コードを分離することで、再利用性を大幅に向上させることができます。アプリケーションのこれらの内部設定値は外部で管理され、KubernetesのSecret ConfigMapリソースを使用してコンテナに注入することができます。
Secretは、パスワード、APIキー、SSHキーなどのセキュリティに敏感な情報をコンテナに注入する際に使用されます。
ConfigMapは、非機密の設定情報をコンテナに注入するために使用されます。
環境変数リスト
これは、アプリケーションの環境変数として登録されたSecretおよびConfigMap情報を管理するためのインターフェースです:
① Env/Properties設定情報のリスト。
- Name: 環境変数の名前。
- Secret/ConfigMap Name: 環境変数を管理するSecretまたはConfigMapの名前。Kubernetes環境では、アプリケーションによって使用される環境変数はSecret/ConfigMapとして管理されます。
- Type: 画面に次のように表示されます:
- ConfigMapの場合、ConfigMapのみが表示されます。
- Secretの場合、特定のタイプの秘密が表示されます(dockerconfigjson、opaque、tls、service-account-token、basic-authなど)。
- Opaque (generic): ConfigMapと同じ目的で使用できる汎用の秘密です。機密データをコンテナに渡すためにも使用できます。
- Dockerconfigjson: Dockerイメージリポジトリにアクセスするための認証情報に使用されます。Kubernetesはコンテナを管理するため、イメージリポジトリへのアクセスが必要であり、Docker HubやECRのようなプライベートイメージのリポジトリには追加の認証が必要です。dockerconfigjsonは、これらのプライベートレジストリにアクセスするために使用される秘密です。
- tls: TLS証明書を秘密として管理するのに役立ちます。TLS証明書情報がSecretに保存されると、PodやServiceなどのオブジェクトはそれを使用して暗号化通信を行うことができます。
- service-account-token: RBAC(Role-Based Access Control)のための重要なKubernetes APIリソースであるServiceAccountに関連しています。ServiceAccountはPodにリンクされ、その権限を設定します。ServiceAccountが接続されると、認証情報を含むトークンが自動的に秘密として作成されます。
- basic-auth: 基本認証のための資格情報を保存するために提供されるタイプです。
この秘密タイプを使用する場合、秘密のデータフィールドには次の2つのキーのいずれかが含まれている必要があります:
username: 認証のためのユーザー名、
password: 認証のためのパスワードまたはトークン。
- Namespace: Secret/ConfigMapがデプロイされているクラスターの名前空間。
- Microservice: 現在環境変数を使用しているマイクロサービス/アプリケーションの名前。
- Action: 環境変数情報の追加アクションボタン。
- 編集 : 環境変数の編集ページに移動します。
- 削除 : 環境変数を削除します。
② ConfigMapインポート:KubernetesにデプロイされたSecrets/ConfigMapsから選択して登録できます。
③ 新しいSecret/ConfigMapリソースを作成します。
④ Secret/ConfigMap情報を削除します。
⑤ 名前または名前空間に関する検索値でビューをフィルタリングします。
環境変数の作成
環境変数リスト画面から、「新規追加」ボタンをクリックして新しいSecret/ConfigMapを作成します。
ConfigMapの作成(ファイルタイプ)
これは、ConfigMap作成ページの各項目の詳細な説明です。
① タイプ:環境変数を保存するためにConfigMapとSecretのタイプを選択します。
② 名前:アプリケーションの設定情報を管理するConfigMapの名前。
③ 名前空間:プロファイルに登録された名前空間のリストからConfigMapを使用する名前空間を選択します。
④ ConfigMapタイプ:ConfigMapはプロパティとファイル形式の両方をサポートしています。詳細は以下の通りです:
- プロパティ:設定情報をKey/Value形式で登録できるタイプ。
- ファイル:既存の設定ファイルを登録できるタイプ。たとえば、SpringBootアプリケーションのapplication.yamlファイルを別々に管理したい場合は、ファイルタイプを使用します。
⑤ マウントパス:ファイルタイプを選択した場合、ファイルがアプリケーションに注入され、マウントされるパスを入力します。
⑥ ファイル追加:複数のファイルを入力でき、各追加ファイルのために追加ボタンをクリックします。
⑦ 削除ボタン:追加されたファイル情報を削除します。
⑧ キャンセル:ConfigMap作成ページからキャンセルします。
⑨ 保存:入力した情報を保存してConfigMapを作成します。
ConfigMapの作成(プロパティタイプ)
① タイプ:環境変数を保存するためにConfigMapとSecretのタイプを選択します。
② 名前:アプリケーションの設定情報を管理するConfigMapの名前。
③ 名前空間:プロファイルに登録された名前空間のリストからConfigMapを使用する名前空間を選択します。
④ ConfigMapタイプ:適切なプロパティを選択します:
- プロパティ:設定情報をKey/Value形式で登録できるタイプ。
- ファイル:既存の設定ファイルを登録できるタイプ。たとえば、SpringBootアプリケーションのapplication.yamlファイルを別々に管理したい場合は、ファイルタイプを使用します。
⑤ データ(データ登録):アプリケーションの設定情報を次のように入力します:
- キー:環境変数のキー。
- 値:環境変数の値。
- 環境変数:実際のアプリケーションで注入されて使用できるenv名。
- Springプロパティ(オプション):application.yamlファイルのプロパティにマッピングされる変数名を入力します。
⑥ 追加ボタン:追加ボタンをクリックすることで新しい設定情報を追加できます。このページでは、複数の設定情報を作成できます。
⑦ 削除ボタン:追加された設定情報を削除できます。
⑧ 保存:入力した情報を保存してConfigMapを作成します。
Secretの作成(Opaqueタイプ)
これは、Secret作成ページの各項目の詳細な説明です。
① タイプ:Secretのタイプを選択します。Secretsは、パスワード、APIキー、SSHキーなどの機密情報をコンテナに注入する必要がある場合に使用されます。
② 名前:Secretの名前を入力します。
③ 名前空間:プロファイルに登録された名前空間のリストからSecretの名前空間を選択します。
④ Secretタイプ:Secrets support 両方の Opaque と kubernetes.io/dockerconfigjson 形式。
- Opaque: Key/Value形式で設定情報を登録する方法。(詳細な説明は環境変数リストセクションにあります)。
- kubernetes.io/dockerconfigjson: イメージレジストリにアクセスするための認証情報を登録する方法。(詳細な説明は環境変数リストセクションにあります)。
⑤ データ(データ登録):設定データを入力するのと同様にデータを入力します。
- キー:環境変数のキー。
- 値:環境変数の値。
- 環境変数: 実際のアプリケーションで注入して使用できる環境名です。
- Springプロパティ(オプション): application.yamlファイルのプロパティにマッピングされる変数名を入力します。
⑥ 追加ボタン: 複数のキー・バリューデータペアを入力し、新しいものごとに追加ボタンをクリックできます。
⑦ 削除ボタン: 特定のキー・バリューデータを削除します。
⑧ 保存: 入力した情報を保存してシークレットを作成します。
シークレットの作成 (kubernetes.io/dockerconfigjson タイプ)
このセクションでは、dockerconfigjsonタイプのシークレット作成ページの各項目について詳しく説明します。
① タイプ: ConfigMapまたはシークレットを作成するかを選択します。
② 名前: シークレットの名前を入力します。
③ 名前空間: プロファイルに登録されている名前空間のリストからシークレットの名前空間を選択します。
④ シークレットタイプ: シークレットはOpaqueおよびkubernetes.io/dockerconfigjson 形式の両方をサポートします。
- Opaque: キー/バリュー形式で構成情報を登録する方法です。(詳細な説明は環境変数リストセクションにあります。)
- kubernetes.io/dockerconfigjson: イメージレジストリにアクセスするための認証情報を登録する方法です。(詳細な説明は環境変数リストセクションにあります。)
⑤ イメージレジストリ: これはプロジェクト設定に登録されているイメージレジストリのリストです。作成中のシークレットを使用して認証するイメージレジストリを選択します。
⑥ 保存ボタン: 入力した情報を保存してシークレットを作成します。
環境変数のインポート
環境変数リストから、インポートファイルボタンをクリックしてシークレット/ConfigMapをインポートします。
ConfigMapのインポート(プロパティタイプ)
このセクションでは、プロパティタイプの既存のConfigMapをインポートする方法について説明します。
① タイプ: ConfigMapまたはシークレットをインポートするかを選択します。
② 名前: ConfigMapの名前を入力します。
③ 名前空間: プロファイルに登録されている名前空間のリストからConfigMapの名前空間を選択します。
④ ConfigMapタイプ: ConfigMapはプロパティとファイル形式の両方をサポートします。
- プロパティ: 構成情報がキー/バリュー形式で登録される形式です。
- ファイル: 既存の構成ファイルを登録するための形式です。たとえば、SpringBootアプリケーションのapplication.yamlファイルを別々に管理したい場合は、ファイルタイプを使用します。
⑤ ConfigMaps: これは、③で選択した名前空間にデプロイされたConfigMapsのリストを表示します。インポートしたいConfigMapを選択します。
⑥ データ(データ登録): 選択したConfigMapのキー・バリューデータを表示します。このキー・バリュー情報はインポートプロセス中に変更できません。
⑦ 保存ボタン: 入力した情報を保存します。
ConfigMapのインポート(ファイルタイプ)
このセクションでは、ファイルタイプのConfigMapインポートページの各項目について詳しく説明します。
タイプ、名前、名前空間の情報は、以前に設定されたものと同じです。
① ConfigMapタイプ: ConfigMapはプロパティとファイル形式をサポートします。プロパティ: 構成情報がキー/バリュー形式で登録される形式です。ファイル: 既存の構成ファイルを登録するための形式です。たとえば、SpringBootのapplication.yamlファイルを分離して管理するために使用します。
② ConfigMaps: 選択した名前空間にデプロイされたConfigMapsのリストを表示します。インポートしたいConfigMapを選択します。
③ マウントパス: ファイル形式が選択された場合、ファイルがアプリケーションにマウントされるパスを入力します。
④ ファイル登録: 選択したConfigMapの構成データを表示します。
⑤ 保存ボタン: 入力した情報を保存します。
シークレットのインポート(Env)
このセクションでは、環境変数用の既存のシークレットをインポートする方法について説明します。
タイプ、名前、名前空間の情報は、以前に設定されたものと同じです。 ① シークレット: 選択した名前空間にデプロイされたシークレットのリストを表示します。インポートしたいシークレットを選択します。
② シークレットタイプ: 選択したシークレットの特定のタイプを表示します。この項目は変更できません。
③ データ(データ登録): 選択したシークレットの詳細データを表示します。
④ 保存ボタン: 入力した情報を保存します。
シークレットのインポート(ファイル)
このセクションでは、ファイルベースの構成用の既存のシークレットをインポートする方法について説明します。
タイプ、名前、名前空間の情報は、以前に設定されたものと同じです。 ① シークレット: 選択した名前空間にデプロイされたシークレットのリストを表示します。インポートしたいシークレットを選択します。
② シークレットタイプ: 選択したシークレットの特定のタイプを表示します。この項目は変更できません。
③ マウントパス: シークレットデータがアプリケーションにマウントされるパスです。
④ readOnly: マウントされたシークレットが読み取り専用かどうかを設定します。
⑤ 保存ボタン: 入力した情報を保存します。
環境変数の編集
ConfigMapの編集(ファイル)
このセクションでは、ファイルタイプのConfigMap編集ページの各項目について詳しく説明します。
① マウントパス: ファイル形式が選択された場合、ファイルがアプリケーションにマウントされるパスを入力します。
② ファイル登録: 新しい構成ファイルを追加するか、既存のものを変更します。
③ 保存ボタン: 入力した情報を保存します。
ConfigMapの編集(プロパティ)
このセクションでは、プロパティタイプのConfigMap編集ページの各項目について詳しく説明します。
① データ(データ登録): 選択したシークレットの詳細データを表示します。
② 保存ボタン: 入力した情報を保存します。
シークレットの編集(kubernetes.io/dockerconfigjson)
dockerconfigjsonタイプのシークレットは編集できません。
シークレットの編集(Opaque)
このセクションでは、Opaqueタイプのシークレット編集ページの各項目について詳しく説明します。
① データ(データ登録): 選択したシークレットの詳細データを表示します。
② 保存ボタン: 入力した情報を保存します。
シークレットの編集(ファイル)
このセクションでは、詳細について説明します。
① マウントパス: ファイル形式が選択された場合、ファイルがアプリケーションにマウントされるパスを入力します。
② ファイル登録: 新しい構成ファイルを追加するか、既存のものを変更します。
シークレットの編集(その他のタイプ - トークンタイプ)
① データ(データ登録): 選択したシークレットの詳細データを表示します。
② 保存ボタン: 入力した情報を保存します。