GNU/Linux >> Linux の 問題 >  >> Ubuntu

ヘルムチャートで環境変数を使用する方法

はじめに

ヘルムチャートは、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

Ubuntu
  1. * in * / etc / environment?で環境変数を参照する

  2. 多くの環境変数の設定を解除する方法

  3. プロセスの環境変数を読み取る方法

  1. libvirtでVagrantを使用する方法

  2. Cでアトミック変数を使用するには?

  3. Ansible で Linux 環境変数を設定する方法

  1. 例でwgetコマンドを使用する方法

  2. 例でLinuxシャットダウンコマンドを使用する方法

  3. Linuxで環境変数を設定する方法