configMap
configMapの説明
ConfigMap機能は、バージョンKubernetes1.2に設定情報を読み込むためのコマンドラインパラメータや環境変数、アプリケーション構成ファイルから多くを導入しました。ConfigMap APIは、全体のコンフィギュレーションファイルまたはバイナリラージオブジェクトのJSONを保存するために使用することができるConfigMap単一の属性を保持するために使用することができる容器に私たちに注入機構の構成情報を提供します
ConfigMap作成
1、ディレクトリを作成します
$ 1Sドキュメント/ユーザー・ガイド/ configmap / kubect1 /
game.properties
ui.properties $猫のドキュメント/ユーザー・ガイド/ configmap / kubectl / game.properties 敵=エイリアンlivess = 3 enemies.cheat =真enemies.cheat.level = noGoodRotten secret.code.passphrase = UUDDLRLRBABAS secret.code.allowed =真secret.code.lives = 30 猫ドキュメント/ユーザガイド/ configmap / kubectl / ui.properties color.good =紫color.bad =黄色が可能になります。テキストモード=真how.nice.to.look = fairlyNice $ kubectl作成configmapゲーム-config設定--from-ファイル=ドキュメント/ユーザー・ガイド/ configmap / kubect1
GETセンチkubectl
kubectl GETセンチゲーム-config設定
kubectl GETセンチゲーム-config設定-o YAML -コンフィギュレーションを表示
ビュー設定-センチゲーム-config設定を記述kubectl
-from-ファイルのキーと値のペアを作成ConfigMapに使用されるディレクトリに指定されたすべての文書は、キーはファイル名の名前で、ファイルの内容は、の値であり、
注:後ろのスペースなしで、キーと値のペア
Ⅱ、ファイルの作成を使用して
ちょうどあなたがファイルから1つのファイルを作成することができますConfigMapを指定します
configmapゲーム-CONFIG-2 --from-ファイルを作成kubectl = /ルート/ configmap / DIR / gameconfig.properties kubectl得るセンチゲーム-CONFIG-2 -o YAML
-fromファイルは、このパラメータは、ディレクトリ全体と同じであるあなただけの効果を指定し、それぞれ、前の2つのインスタンスを指定するには、2つの構成ファイルを使用することができ、複数回使用することができます
Ⅲ、リテラルの作成を使用して
使用テキスト値を複数回使用することができる-fromリテラルパラメータ送信設定情報は、次の形式を使用して、作成され
configmap特別-config設定--from-リテラル= special.how =非常に--from-リテラル= special.type =魅力作成kubectl $ kubectl GET configmaps特別-config設定-o YAMLを
ポッドはConfigMapを使用しました
Ⅰ、代わりに環境変数を使用してのConfigMap
apiVersion:v1の
種類:ConfigMap
メタデータ:
名前:特別な設定
名前空間:デフォルトの
データ:
special.how:非常に
special.type:魅力
apiVersion:V1の
種類:ConfigMap
メタデータ:
名前:ENV-config設定
名前空間:デフォルトの
データ:
log_levelを:INFO
apiVersion:v1の
種類:ポッドの
メタデータ:
名前:DAPI-テスト・ポッド
仕様:
コンテナ:
-名前:テストコンテナの
画像:hub.atguigu.com/library/myapp:v1の
コマンド:[ "/ binに/ SH"、「 - C」、 "ENV"]
ENV:
-名前:SPECIAL_TYPE_KEY
valueFromおよび:
configMapKeyRef:
名前:特別設定
キー:special.how
-名前:SPECIAL_TYPE_KEY
valueFromおよび:
configMapKeyRef:
名前:特別設定
キー:special.type
envFrom:
- configMapRef:
名前:ENV-config設定
restartPolicy:決して
Ⅱ、コマンドラインパラメータのConfigMapを提供
apiVersion:v1の
種類:ポッドの
メタデータ:
名前:DAPI-テスト・ポッド
仕様:
コンテナ:
-名前:テストコンテナの
画像:hub.atguigu.com/library/myapp:v1の
コマンド:[ "/ binに/ SH"、「 - C」、 "エコー$(SPECIAL_LEVEL_KEY)$(SPECIAL_TYPE_KEY)"]
ENV:
-名前:SPECIAL_LEVEL_KEY
valueFromおよび:
configMapKeyRef:
名前:特別設定
キー:special.how
-名前:SPECIAL_TYPE_KEY
valueFromおよび:
configMapKeyRef:
名前:特別設定
キー: special.typeの
restartPolicy:決して
Ⅲ、プラグインデータボリュームConfigMapを用いて
内部のデータボリュームでこのConfigMapを使用して、さまざまなオプションがあります。最も基本的には、この文書では、キーはファイル名で、ファイルの内容が鍵であり、データファイルのボリュームを埋めるためにあります
apiversion:v1の
種類:ポッドの
メタデータ:
名前:DAPI-テストPOD3
仕様:
コンテナ:
-名前:テストコンテナの
画像:hub.atguigu.com/library/myapp:v1の
コマンド:[ "/ binに/ SH"、「 - C」、 "睡眠600S"]
volumeMounts:
-名前:コンフィグボリューム
MOUNTPATH:の/ etc /設定
ボリューム:
-名前:コンフィグボリューム
configMap:
名:特別-config設定
restartPolicy:決して
ConfigMapホットアップデート
apiVersion:V1の
種類:ConfigMap
メタデータ:
名前:ログ設定
の名前空間:デフォルトの
データ:
log_levelを:INFO --- apiVersion:拡張/ v1beta1の種類:展開のメタデータ:名前:私の-nginxのスペック:レプリカ:1つのテンプレート: メタデータ: ラベル: 実行:私の-nginxの 仕様: コンテナ: -名前:私の-nginxの 画像:hub.atguigu.com/library/myapp:v1の ポート: - containerPort:80 volumeMounts: -名前:コンフィグボリューム MOUNTPATH:の/ etc / configに
ボリューム:
-名前:コンフィグ-ボリューム
configMap:
名前:ログ設定
[ルート@ K8S-master01〜]#kubectlのexec私-nginxの-7b55868ff4-wqh2q -it -猫の/ etc / configに/ LOG_LEVEL
INFO
修正ConfigMap
$ kubectl編集configmapログ-config設定
再度、環境変数の値を表示するには10秒程度DEBUG待ちの変更10グラムレベルの値
$ kubect1幹部「kubectl取得ポッド-1ラン=私の-nginxの-osname |カットが-d "/" - F2猫を/ tmp / 1oglevel DEBUG
更新ConfigMapは、現在のロールオーバーに関連したポッドを誘発しない、あなたは方法を変更することにより、ポッド注釈ロールオーバートリガーを強制することができます
$ kubectlパッチ導入私-nginxの - パッチ '{ "スペック":{ "テンプレート":{ "メタデータ":{ "注釈":{ "バージョン/ configの": "20198411"}}}}}'
この例では、我々はある。トリガロールオーバーにバージョン/設定を変更することによって。Spec.template.metadata、各時間における注釈を加えバージョン/コンフィグ
ConfigMapを更新した後:
-
ConfigMapは、Envのマウント使用しないで更新を同期
-