ConfigMapを使ったRedisの設定
本ページでは、ConfigMapを使ったコンテナの設定に基づき、ConfigMapを使ってRedisの設定を行う実践的な例を提供します。
目標
- 以下の要素を含む
kustomization.yaml
ファイルを作成する:- ConfigMapGenerator
- ConfigMapを使ったPodリソースの設定
kubectl apply -k ./
コマンドにてディレクトリ全体を適用する- 設定が正しく反映されていることを確認する
始める前に
Kubernetesクラスターが必要、かつそのクラスターと通信するためにkubectlコマンドラインツールが設定されている必要があります。 このチュートリアルは、コントロールプレーンのホストとして動作していない少なくとも2つのノードを持つクラスターで実行することをおすすめします。 まだクラスターがない場合、minikubeを使って作成するか、 以下のいずれかのKubernetesプレイグラウンドも使用できます:
バージョンを確認するには次のコマンドを実行してください:kubectl version
.- この例は、バージョン1.14以上での動作を確認しています。
- ConfigMapを使ったコンテナの設定を読んで理解しておいてください。
実践例: ConfigMapを使ったRedisの設定
以下の手順に従って、ConfigMapに保存されているデータを使用してRedisキャッシュを設定できます。
最初に、redis-config
ファイルからConfigMapを含むkustomization.yaml
を作成します:
maxmemory 2mb
maxmemory-policy allkeys-lru
curl -OL https://k8s.io/examples/pods/config/redis-config
cat <<EOF >./kustomization.yaml
configMapGenerator:
- name: example-redis-config
files:
- redis-config
EOF
Podリソースの設定をkustomization.yaml
に入れます:
apiVersion: v1
kind: Pod
metadata:
name: redis
spec:
containers:
- name: redis
image: kubernetes/redis:v1
env:
- name: MASTER
value: "true"
ports:
- containerPort: 6379
resources:
limits:
cpu: "0.1"
volumeMounts:
- mountPath: /redis-master-data
name: data
- mountPath: /redis-master
name: config
volumes:
- name: data
emptyDir: {}
- name: config
configMap:
name: example-redis-config
items:
- key: redis-config
path: redis.conf
curl -OL https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/pods/config/redis-pod.yaml
cat <<EOF >>./kustomization.yaml
resources:
- redis-pod.yaml
EOF
kustomizationディレクトリを反映して、ConfigMapオブジェクトとPodオブジェクトの両方を作成します:
kubectl apply -k .
作成されたオブジェクトを確認します
> kubectl get -k .
NAME DATA AGE
configmap/example-redis-config-dgh9dg555m 1 52s
NAME READY STATUS RESTARTS AGE
pod/redis 1/1 Running 0 52s
この例では、設定ファイルのボリュームは/redis-master
にマウントされています。
path
を使ってredis-config
キーをredis.conf
という名前のファイルに追加します。
したがって、redisコンフィグのファイルパスは/redis-master/redis.conf
です。
ここが、コンテナイメージがredisマスターの設定ファイルを探す場所です。
kubectl exec
を使ってPodに入り、redis-cli
ツールを実行して設定が正しく適用されたことを確認してください:
kubectl exec -it redis -- redis-cli
127.0.0.1:6379> CONFIG GET maxmemory
1) "maxmemory"
2) "2097152"
127.0.0.1:6379> CONFIG GET maxmemory-policy
1) "maxmemory-policy"
2) "allkeys-lru"
作成したPodを削除します:
kubectl delete pod redis
次の項目
- ConfigMapについて学ぶ