0Pricing
Kubernetes Basics · レッスン

設定のためのConfigMaps

ConfigMapsを使ってアプリケーション設定をコンテナイメージから分離します。

「設定のためのConfigMaps」はCoddyKit上の無料Kubernetes Basicsレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはKubernetes Basics学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Kubernetes Basicsコースには全4レッスンが含まれています。

ConfigMapの概要

アプリケーションでは、データベース接続文字列や機能フラグなどの設定データが必要になることがよくあります。

この情報をコンテナイメージに直接ハードコードすると、イメージが柔軟性を失い、更新も難しくなります。

ConfigMapを使うと、アプリケーションの機密性のない設定を外部化して一元管理でき、イメージの柔軟性を保てます。

ConfigMapとは

ConfigMapは、機密性のないデータをキーと値のペアで保存するためのKubernetesオブジェクトです。

アプリケーションの設定を一元管理し、Podからアクセスできる場所だと考えるとよいでしょう。

  • 設定の分離:設定をアプリケーションコードから分離します。
  • 柔軟性:イメージを再ビルドせずに設定を簡単に変更できます。
  • 移植性:環境ごとに異なる設定を使って、アプリケーションを別の環境へ移行できます。

ConfigMapの作成:命令型

kubectl create configmapを使うと、コマンドラインからConfigMapをすばやく直接作成できます。

この方法は、単純な一度限りの設定や、簡単なテストに適しています。

ログレベルの設定を含むmy-app-configという名前のConfigMapを作成してみましょう。

kubectl create configmap my-app-config \
  --from-literal=log_level=INFO

ConfigMapの確認

ConfigMapを作成したら、その詳細を表示して内容を確認できます。

-o yamlフラグを付けてkubectl getを使用すると、保存されているデータを含む完全なYAML定義を確認できます。

kubectl get configmap my-app-config -o yaml

宣言型ConfigMap(YAML)

本番環境やバージョン管理では、YAMLマニフェストを使ってConfigMapを定義するのが標準的な方法です。

この方法により、設定を再現可能にし、アプリケーションコードと一緒に簡単に管理できます。

ゲームの設定を定義するYAMLの例を見てみましょう。

apiVersion: v1
kind: ConfigMap
metadata:
  name: game-config
data:
  game.properties: |
    level=easy
    player_limit=10
  ui.properties: |
    theme=dark
    language=en

YAMLからConfigMapを適用する

game-config ConfigMapを作成するには、前のシーンのYAML内容をファイル(例:game-config.yaml)に保存します。

次に、kubectl apply -fを使ってクラスタにデプロイします。

# Save the YAML to game-config.yaml
kubectl apply -f game-config.yaml
kubectl get configmap game-config -o yaml

環境変数としてのConfigMap

PodでConfigMapのデータを利用する一般的な方法の1つは、環境変数として注入することです。

公開するキーを個別に指定することも、envFromを使ってConfigMap内のすべてのキーと値のペアを公開することもできます。

単純なアプリケーション設定に適した方法です。

apiVersion: v1
kind: Pod
metadata:
  name: my-env-pod
spec:
  containers:
  - name: my-container
    image: busybox
    command: ["sh", "-c", "echo Log Level: $LOG_LEVEL && sleep 3600"]
    env:
    - name: LOG_LEVEL
      valueFrom:
        configMapKeyRef:
          name: my-app-config
          key: log_level

デモ:環境変数を使うPod

Pod定義を実行して、LOG_LEVEL環境変数がどのように機能するか確認してみましょう。

PodのYAMLをenv-pod.yamlに保存して適用し、その後Podのログを確認します。

# Save Pod YAML to env-pod.yaml
kubectl apply -f env-pod.yaml
kubectl logs my-env-pod

# Clean up
kubeclt delete pod my-env-pod

マウントされたボリュームとしてのConfigMap

設定ファイル(例:nginx.conf、application.properties)を必要とするアプリケーションでは、ConfigMapをボリュームとしてマウントできます。

ConfigMap内の各キーと値のペアが、コンテナ内の指定したマウントパスにあるファイルになります。

apiVersion: v1
kind: Pod
metadata:
  name: my-volume-pod
spec:
  containers:
  - name: my-container
    image: busybox
    command: ["sh", "-c", "echo 'Contents of game.properties:' && cat /etc/config/game.properties && sleep 3600"]
    volumeMounts:
    - name: config-volume
      mountPath: /etc/config
  volumes:
  - name: config-volume
    configMap:
      name: game-config

デモ:設定をマウントしたPod

ここでは、game-config ConfigMapをボリュームとしてマウントするPodをデプロイしてみましょう。

PodのYAMLをvolume-pod.yamlに保存して適用し、ログを確認してマウントされたファイルの内容を確認します。

# Save Pod YAML to volume-pod.yaml
kubectl apply -f volume-pod.yaml
kubectl logs my-volume-pod

# Clean up
kubeclt delete pod my-volume-pod

理解度チェック:ConfigMap

Kubernetes ConfigMapについて、次の記述のうち正しいものはどれですか。

まとめ:ConfigMap

よくできました。ConfigMapを使ってKubernetesの設定を管理する方法を学びました。

  • 目的:機密性のない設定データをキーと値のペアで保存します。
  • 作成:kubectl createを使った命令型、またはYAMLを使った宣言型で作成します。
  • 利用:Pod内の環境変数またはマウントされたファイルとして利用します。
  • メリット:設定をアプリケーションコードから分離し、柔軟性を高めます。

次は、KubernetesのSecretsを使って機密情報を安全に扱う方法を学びます。

よくある質問

「設定のためのConfigMaps」レッスンは無料ですか?

はい。「設定のためのConfigMaps」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Kubernetes Basicsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Kubernetes Basicsコースには全4レッスンが含まれています。

「設定のためのConfigMaps」で何を学びますか?

ConfigMapsを使ってアプリケーション設定をコンテナイメージから分離します。 ブラウザで直接実行するハンズオンコードでKubernetes Basicsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Kubernetes Basicsを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのKubernetes Basicsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「設定のためのConfigMaps」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このKubernetes Basicsレッスンでコードを書いて実行できますか?

はい。すべてのKubernetes Basicsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 設定のためのConfigMaps
  2. 機密データのためのSecrets
  3. Persistent VolumeとClaim
  4. StorageClassと動的プロビジョニング
← Kubernetes Basicsに戻る