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 証明書情報がシークレットに保存されると、Pod やサービスなどのオブジェクトはそれを使用して暗号化通信を行うことができます。
- service-account-token: RBAC(ロールベースのアクセス制御)のための重要な Kubernetes API リソースである ServiceAccount に関連しています。ServiceAccount は Pod にリンクされ、その権限を設定します。ServiceAccount が接続されると、認証情報を含むトークンが自動的にシークレットとして作成されます。
- basic-auth: 基本認証のための資格情報を保存するために提供されるタイプです。
このシークレットタイプを使用する場合、シークレットのデータフィールドには次の 2 つのキーのいずれかが含まれている必要があります:
username: 認証のためのユーザー名、
password: 認証のためのパスワードまたはトークン。
- Namespace: シークレット/ConfigMap がデプロイされているクラスターのネームスペース。
- Microservice: 現在環境変数を使用しているマイクロサービス/アプリケーションの名前。
- Action: 環境変数情報のための追加のアクションボタン。
- Edit : 環境変数の編集ページに移動します。
- Delete : 環境変数を削除します。
② ConfigMap インポート: Kubernetes にデプロイされた Secrets/ConfigMaps から選択して登録できます。
③ 新しいシークレット/ConfigMap リソースを作成します。
④ シークレット/ConfigMap 情報を削除します。
⑤ 名前またはネームスペースに関する検索値でビューをフィルタリングします。
環境変数の作成
環境変数リスト画面から、「新規追加」ボタンをクリックして、新しいSecret/ConfigMapを作成します。
ConfigMapの作成 (ファイルタイプ)
これは、ConfigMap作成ページの各項目の詳細な説明です。
① タイプ: 環境変数を保存するために、ConfigMapとSecretのタイプから選択します。
② 名前: アプリケーションの設定情報を管理するConfigMapの名前です。
③ 名前空間: プロファイルに登録されている名前空間のリストから、ConfigMapを使用する名前空間を選択します。
④ ConfigMapタイプ: ConfigMapは、プロパティ形式とファイル形式の両方をサポートしています。詳細は以下の通りです:
- プロパティ: 設定情報をキー/バリュー形式で登録できるタイプです。
- ファイル: 既存の設定ファイルを登録できるタイプです。たとえば、SpringBootアプリケーションのapplication.yamlファイルを別々に管理したい場合は、ファイルタイプを使用します。
⑤ マウントパス: ファイルタイプを選択した場合、ファイルがアプリケーションに注入され、マウントされるパスを入力します。
⑥ ファイル追加: 複数のファイルを入力でき、追加のファイルごとに追加ボタンをクリックします。
⑦ 削除ボタン: 追加されたファイル情報を削除します。
⑧ キャンセル: ConfigMap作成ページからキャンセルします。
⑨ 保存: 入力した情報を保存してConfigMapを作成します。
ConfigMapの作成 (プロパティタイプ)
① タイプ: 環境変数を保存するために、ConfigMapとSecretのタイプから選択します。
② 名前: アプリケーションの設定情報を管理するConfigMapの名前です。
③ 名前空間: プロファイルに登録されている名前空間のリストから、ConfigMapを使用する名前空間を選択します。
④ ConfigMapタイプ: 適切なプロパティを選択します:
- プロパティ: 設定情報をキー/バリュー形式で登録できるタイプです。
- ファイル: 既存の設定ファイルを登録することを可能にするタイプです。たとえば、SpringBootアプリケーションのapplication.yamlファイルを別々に管理したい場合は、ファイルタイプを使用します。
⑤ データ(データ登録): アプリケーションの設定情報を以下のように入力します。
- キー: 環境変数のキー。
- 値: 環境変数の値。
- 環境変数: 実際のアプリケーションで注入して使用できるenv名。
- Springプロパティ(オプション): application.yamlファイルのプロパティにマッピングされる変数名を入力します。
⑥ 追加ボタン: 追加ボタンをクリックすることで新しい設定情報を追加できます。このページでは、複数の設定情報を作成できます。
⑦ 削除ボタン: 追加された設定情報を削除できます。
⑧ 保存: 入力した情報を保存してConfigMapを作成します。
シークレットの作成(オペークタイプ)
これはシークレット作成ページの各項目の詳細な説明です。
① タイプ: シークレットのタイプを選択します。シークレットは、パスワード、APIキー、SSHキーなどの機密情報をコンテナに注入する必要がある場合に使用されます。
② 名前: シークレットの名前を入力します。
③ 名前空間: プロファイルに登録されている名前空間のリストからシークレットの名前空間を選択します。
④ シークレットタイプ: Secrets support 両方の Opaque と kubernetes.io/dockerconfigjson 形式。
- Opaque: キー/バリュー形式で設定情報を登録する方法です。(詳細な説明は環境変数リストセクションにあります)。
- kubernetes.io/dockerconfigjson: イメージレジストリにアクセスするための認証情報を登録する方法です。(詳細な説明は環境変数リストセクションにあります)。
⑤ データ(データ登録):構成データを入力するのと同様にデータを入力します。
- キー:環境変数のキー。
- 値:環境変数の値。
- 環境変数:実際のアプリケーションで注入して使用できるenv名。
- 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の種類: ConfigMapsはプロパティとファイル形式をサポートします。プロパティ: 構成情報がキー/値形式で登録される形式。ファイル: 既存の構成ファイルを登録するための形式。例えば、SpringBootのapplication.yamlファイルを分離して管理するために使用します。
② ConfigMaps: 選択したネームスペースにデプロイされたConfigMapsのリストを表示します。インポートしたいConfigMapを選択してください。
③ マウントパス: ファイル形式が選択された場合、ファイルがアプリケーションにマウントされるパスを入力します。
④ ファイル登録: 選択したConfigMapの構成データを表示します。
⑤ 保存ボタン: 入力した情報を保存します。
秘密のインポート (Env)
このセクションでは、環境変数用の既存の秘密をインポートする方法について説明します。
タイプ、名前、ネームスペースの情報は、以前に設定されたものと同じです。 ① 秘密: 選択したネームスペースにデプロイされた秘密のリストを表示します。インポートしたい秘密を選択してください。
② 秘密の種類: 選択した秘密の特定の種類を表示します。この項目は変更できません。
③ データ (データ登録): 選択した秘密の詳細データを表示します。
④ 保存ボタン: 入力した情報を保存します。
秘密のインポート (File)
このセクションでは、ファイルベースの構成用の既存の秘密をインポートする方法について説明します。
タイプ、名前、ネームスペースの情報は、以前に設定されたものと同じです。 ① 秘密: 選択したネームスペースにデプロイされた秘密のリストを表示します。インポートしたい秘密を選択してください。
② 秘密の種類: 選択した秘密の特定の種類を表示します。この項目は変更できません。
③ マウントパス: 秘密データがアプリケーションにマウントされるパスです。 ④ readOnly: マウントされたSecretが読み取り専用かどうかを設定します。
⑤ Save Button: 入力された情報を保存します。
環境変数の編集
ConfigMapの編集 (ファイル)
このセクションでは、ファイルタイプのConfigMap編集ページの各項目について詳しく説明します。
① マウントパス: ファイル形式が選択された場合、アプリケーションにファイルがマウントされるパスを入力します。
② ファイル登録: 新しい設定ファイルを追加するか、既存のファイルを修正します。
③ Save Button: 入力された情報を保存します。
ConfigMapの編集 (プロパティ)
このセクションでは、プロパティタイプのConfigMap編集ページの各項目について詳しく説明します。
① データ (データ登録): 選択されたSecretの詳細データを表示します。
② Save Button: 入力された情報を保存します。
Secretの編集 (kubernetes.io/dockerconfigjson)
dockerconfigjsonタイプのSecretは編集できません。
Secretの編集 (Opaque)
このセクションでは、OpaqueタイプのSecret編集ページの各項目について詳しく説明します。
① データ (データ登録): 選択されたSecretの詳細データを表示します。
② Save Button: 入力された情報を保存します。
Secretの編集 (ファイル)
このセクションでは、詳細な説明を提供します。
① マウントパス: ファイル形式が選択された場合、アプリケーションにファイルがマウントされるパスを入力します。
② ファイル登録: 新しい設定ファイルを追加するか、既存のファイルを修正します。
編集シークレット (その他のタイプ - トークンタイプ)
① データ (データ登録): 選択したシークレットの詳細データを表示します。
② 保存ボタン: 入力した情報を保存します。