はじめに
ヘルムチャートは、Kubernetesリソースを収集し、アプリケーションクラスターを構築するための便利で効率的な方法です。また、ローカルマシンの環境変数を使用して、Kubernetesデプロイメントで使用する値を定義することもできます。
このチュートリアルでは、Kubernetesデプロイメントに環境変数を含めることができるさまざまな方法について説明します。
前提条件
- 端末/コマンドラインへのアクセス
- Minikubeのインストールと構成(UbuntuにMinikubeをインストールする方法とCentOSにMinikubeをインストールする方法に関するガイドを確認してください)
- ヘルムのインストールと構成
Helmで環境変数を使用する方法
Helmチャートで環境変数を使用する方法は2つあります。
- Kubernetesのシークレットオブジェクトを使用して、デプロイに環境変数をマウントします。
- ヘルムチャートにカスタムヘルパーを書き込む。
このチュートリアルでは、 USERNAME
を使用しています およびPASSWORD
環境変数。
Kubernetesデプロイメントでの環境変数のマウント
1.次の行をvalues.yaml
に追加します ヘルムチャートのファイル:
username: root
password: password
2. secret.yaml
という名前の新しいファイルを作成します それをテンプレート
に追加します フォルダ。次のコンテンツをファイルに追加します:
apiVersion: v1
kind: Secret
metadata:
name: {{ .Release.Name }}-auth
data:
password: {{ .Values.password | b64enc }}
username: {{ .Values.username | b64enc }}
3. env
を編集します secret.yaml
で定義された新しい変数を含めるためのKubernetesデプロイメントのセクション ファイル:
...
containers:
- name: {{ .Chart.Name }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
env:
- name: "USERNAME"
valueFrom:
secretKeyRef:
key: username
name: {{ .Release.Name }}-auth
- name: "PASSWORD"
valueFrom:
secretKeyRef:
key: password
name: {{ .Release.Name }}-auth
...
4.環境変数を目的の値に設定します。たとえば、 USERNAME
を設定します hello_user
への変数 :
export USERNAME=hello_user
5.変数をhelm install
と組み合わせて、Helmチャートに適用します。 コマンド:
helm install --set username=$USERNAME [chart name] [chart path]
場所:
-
[グラフ名]
使用しているヘルムチャートの名前です。 -
[チャートパス]
使用しているヘルムチャートへのパスです。
新しい設定を適用する前にテストする場合は、ドライランを使用してください。 モード:
helm install --dry-run --set username=$USERNAME --debug [chart name] [chart path]
ヘルムにカスタムヘルパーを追加する
1. env
を使用します values.yaml
のセクション センシティブ変数と非センシティブ変数を定義するファイル。 通常
を使用する およびsecret
適切な変数を一覧表示するカテゴリ:
secret:
name: app-env-var-secret
env:
normal:
variable1: value1
variable2: value2
variable3: value3
secret:
variable4: value4
variable5: value5
variable6: value6
次に、このメソッドを使用して、 USERNAME
を追加します。 およびPASSWORD
シークレット
への変数 カテゴリ:
…
secret:
USERNAME: [username]
PASSWORD: [password]
場所:
-
[username]
ユーザー名に設定する値です 変数。 [パスワード]コード>
パスワードに設定する値です 変数。
2.パスをvalues.yaml
に追加します .gitignore
の下部にファイルを配置します ファイル:
charts/values.yaml
3. secrets.yaml
というファイルを作成します テンプレート
フォルダを作成し、次のコンテンツを追加します:
apiVersion: v1
kind: Secret
metadata:
name: {{ .Values.secret.name }}
type: Opaque
data:
{{- range $key, $val := .Values.env.secret }}
{{ $key }}: {{ $val | b64enc }}
{{- end}}
4. helpers.tpl
を見つけます テンプレート
内のファイル フォルダ。ファイルの最後に以下を追加して、新しいヘルパー関数を記述します。
{{- define "helpers.list-env-variables"}}
{{- range $key, $val := .Values.env.secret }}
- name: {{ $key }}
valueFrom:
secretKeyRef:
name: app-env-secret
key: {{ $key }}
{{- end}}
{{- end }}
5. pod.yaml
に以下を追加して、作成したヘルパーを呼び出します ファイル:
…
spec:
containers:
- name: mycontainer
image: redis
env:
{{- include "helpers.list-env-variables" . | indent 6 }}
restartPolicy: Never