Crear un contenedor sidecar para syslog
Puede configurar un contenedor sidecar para syslog si desea ejecutarlo en el mismo pod que NCP. El siguiente procedimiento asume que la imagen del agente syslog es ejemplo/rsyslog.
- Configure el agente del nodo de NSX y de NCP para registrarlo en un archivo.En el archivo yaml para el agente del nodo de NSX y de NCP, establezca el parámetro log_dir y especificar el volumen que se montará. Por ejemplo,[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-ujoPuede cambiar el nombre del archivo de registro estableciendo el parámetrolog_file. Los nombres predeterminados sonncp.log,nsx_node_agent.logynsx_kube_proxy.log. Si la opciónlog_dirse establece en una ruta de acceso que no sea/var/log/nsx-ujo, se debe crear un volumen hostPath o emptyDir y se debe montar en la especificación del pod correspondiente.
- Asegúrese de que la ruta de acceso de host existe y que el usuarionsx-ncppuede escribir en ella.
- Ejecute los siguientes comandos.mkdir -p <host-filesystem-log-dir-path> chmod +w <host-filesystem-log-dir-path>
- Agregue el usuarionsx-ncpo cambie el modo de la ruta de acceso de host a 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>
- En el archivo yaml de la especificación del pod de NCP, agregue ConfigMap para syslog. Por ejemplo,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"
- En el archivo yaml del pod de NCP, agregue el contenedor rsyslog y monte los volúmenes apropiados donde rsyslog pueda encontrar los datos de configuración y leer los registros de otros contenedores. Por ejemplo,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>