Syslog の サイドカー コンテナの作成

NCP と同じポッドで Syslog が実行されるように、サイドカー コンテナを構成できます。次の手順では、Syslog エージェント イメージが example/rsyslog であることを前提としています。
  1. ログをファイルに書き込むように、NCP と NSX Node Agent を構成します。
    NCP と NSX Node Agent の yaml ファイルで、log_dir パラメータを設定し、マウントするボリュームを指定します。次はその例です。
    [DEFAULT] log_dir = /var/log/nsx-ujo/ ... spec: ... containers: - name: nsx-ncp ... volumeMounts: - name: nsx-ujo-log-dir # Mount path must match [DEFAULT] option "log_dir" mountPath: /var/log/nsx-ujo volumes: ... - name: nsx-ujo-log-dir hostPath: path: /var/log/nsx-ujo
    ログ ファイルの名前を変更するには、
    log_file
    パラメータを設定します。デフォルトの名前は、
    ncp.log
    nsx_node_agent.log
    nsx_kube_proxy.log
    です。
    log_dir
    オプションに
    /var/log/nsx-ujo
    以外のパスが設定されている場合、hostPath ボリュームまたは emptyDir ボリュームを作成して、対応するポッド仕様にマウントする必要があります。
  2. ホスト パスが配置され、ユーザー
    nsx-ncp
    によって書き込み可能であることを確認してください。
    1. 次のコマンドを実行します。
      mkdir -p <host-filesystem-log-dir-path> chmod +w <host-filesystem-log-dir-path>
    2. ユーザー
      nsx-ncp
      を追加するか、ホスト パスのモードを 777 に変更します。
      useradd -s /bin/bash nsx-ncp chown nsx-ncp:nsx-ncp <host-filesystem-log-dir-path> or chmod 777 <host-filesystem-log-dir-path>
  3. NCP ポッド仕様の yaml ファイルに、Syslog の ConfigMap を追加します。次はその例です。
    kind: ConfigMap metadata: name: rsyslog-config labels: version: v1 data: ncp.conf: | module(load="imfile") ruleset(name="remote") { action(type="omfwd" Protocol="tcp" Target="nsx.example.com" Port="514") stop } input(type="imfile" File="/var/log/nsx-ujo/ncp.log" Tag="ncp" Ruleset="remote"
  4. NCP ポッドの yaml ファイルに rsyslog コンテナに追加します。rsyslog が構成データを検索でき、他のコンテナからログを読み取り可能なボリュームをマウントします。次はその例です。
    spec: containers: - name: nsx-ncp ... - name: rsyslog image: example/rsyslog imagePullPolicy: IfNotPresent volumeMounts: - name: rsyslog-config-volume mountPath: /etc/rsyslog.d readOnly: true - name: nsx-ujo-log-dir mountPath: /var/log/nsx-ujo volumes: ... - name: rsyslog-config-volume configMap: name: rsyslog-config - name: nsx-ujo-log-dir hostPath: path: <host-filesystem-log-dir-path>