Die Gardener-Architektur trennt die Steuerungsebene (läuft auf dem Seed-Cluster) von der Arbeitsebene (dem Shoot-Cluster). Um Audit-Logs zu sammeln, müssen Sie das Helm-Chart an beiden Standorten installieren.
Bevor Sie beginnen
-
Zugriff auf Seed-Cluster: Sie müssen die Berechtigung haben, auf den Gardener-Seed-Cluster zuzugreifen und Helm-Charts im Shoot-Namespace zu installieren.
-
Zugriff auf Shoot-Cluster: Sie müssen die Berechtigung haben, Helm-Charts im Shoot-Cluster zu installieren.
-
Kubectl-Konfiguration:
Kubectlmuss mit Kontexten für sowohl Seed- als auch Shoot-Cluster konfiguriert werden.
Schritt 1: Installieren Sie den Shoot-Namespace auf dem Seed-Cluster
Installieren Sie das Helm-Chart im Shoot-Namespace auf dem Seed-Cluster. Dies installiert
die Komponenten zur Sammlung von Audit-Logs.
-
Erstellen Sie das
seed-overrides.yaml:visionOne: # Your Vision One bootstrap token bootstrapToken: "your-bootstrap-token" endpoint: "https://api.xdr.trendmicro.com/external/v2/direct/vcs/external/vcs" # Enable audit log collection auditLogCollection: enabled: true provider: gardener gardener: # IMPORTANT: Set to true for seed cluster installation seedCluster: true
-
Helm-Chart installieren:
# Switch to seed cluster context kubectl config use-context <seed-cluster-context> # Install in the shoot namespace helm install \ --values seed-overrides.yaml \ --namespace shoot--<project>--<shoot-name> \ trendmicro \ https://github.com/trendmicro/visionone-container-security-helm/archive/main.tar.gz
Schritt 2: Helm auf dem Shoot-Cluster installieren
Installieren Sie das Helm-Chart im Shoot-Cluster. Dadurch werden die standardmäßigen Container Security-Komponenten bereitgestellt.
-
Erstellen
shoot-overrides.yaml:visionOne: # Your Vision One bootstrap token (same as seed cluster) bootstrapToken: "your-bootstrap-token" endpoint: "https://api.xdr.trendmicro.com/external/v2/direct/vcs/external/vcs" # Enable audit log collection auditLogCollection: enabled: true provider: gardener gardener: # IMPORTANT: Set to false (or omit) for shoot cluster installation seedCluster: false
-
Helm-Chart installieren:
# Switch to shoot cluster context kubectl config use-context <shoot-cluster-context> # Install in trendmicro-system namespace helm install \ --values shoot-overrides.yaml \ --namespace trendmicro-system \ --create-namespace \ trendmicro \ https://github.com/trendmicro/visionone-container-security-helm/archive/main.tar.gz
Installieren Sie mehrere Shoots auf demselben Seed
Um das Helm-Chart in mehreren Shoot-Namensräumen auf demselben Seed-Cluster zu installieren,
müssen Sie für jede Installation unterschiedliche Ports konfigurieren, um Portkonflikte
zu vermeiden.
Die Seed-Cluster-Komponenten verwenden
hostNetwork: true, um auf den Seed-Cluster-API-Server zuzugreifen. Das bedeutet, dass Pods direkt an
die Host-Knoten-Ports gebunden werden. Wenn zwei Installationen dieselben Ports verwenden,
schlägt die zweite Installation mit folgendem Fehler fehl: bind: address already in use.-
Installieren Sie den ersten Shoot-Namespace für die Standardports:
# seed-values-shoot1.yaml visionOne: bootstrapToken: "your-bootstrap-token-for-shoot-1" endpoint: "https://api.xdr.trendmicro.com/external/v2/direct/vcs/external/vcs" auditLogCollector: webhookPort: 8030 apiServerModifier: metricsPort: 8040 healthProbePort: 8050 webhookPort: 8060 policyOperator: servicePort: 8070 metricsPort: 8080 healthProbePort: 8090 auditLogCollection: enabled: true provider: gardener gardener: seedCluster: true
-
Installieren Sie den zweiten Shoot-Namespace für verschiedene Ports:
# seed-values-shoot2.yaml visionOne: bootstrapToken: "your-bootstrap-token-for-shoot-2" endpoint: "https://api.xdr.trendmicro.com/external/v2/direct/vcs/external/vcs" auditLogCollector: webhookPort: 8130 apiServerModifier: metricsPort: 8140 healthProbePort: 8150 webhookPort: 8160 policyOperator: servicePort: 8170 metricsPort: 8180 healthProbePort: 8190 auditLogCollection: enabled: true provider: gardener gardener: seedCluster: true
Portreferenz und Konfigurationsunterschiede
Die folgende Tabelle zeigt die Referenz für die Portkonfiguration:
|
Komponente
|
Porttyp
|
Standard
|
Zweite Installation
|
Dritte Installation
|
|
auditLogSammler
|
webhookPort
|
8030
|
8130
|
8230
|
|
apiServerModifier
|
metricsPort
|
8040
|
8140
|
8240
|
|
apiServerModifier
|
healthProbePort
|
8050
|
8150
|
8250
|
|
apiServerModifier
|
webhookPort
|
8060
|
8160
|
8260
|
|
policyOperator
|
servicePort
|
8070
|
8170
|
8270
|
|
policyOperator
|
metricsPort
|
8080
|
8180
|
8280
|
|
policyOperator
|
healthProbePort
|
8090
|
8190
|
8290
|
Die folgende Tabelle zeigt die Unterschiede zwischen den Konfigurationen:
|
Einstellung
|
Seed-Cluster
|
Cluster schießen
|
auditLogCollection.gardener.seedCluster |
true |
false |
|
Installationsnamespace
|
shoot--<project>--<name> |
trendmicro-system |
|
Komponenten bereitgestellt
|
audit-log-sammler, api-server-modifikator, policy-operator
|
Standard V1CS-Komponenten
|
|
Portkonfiguration erforderlich
|
Ja (für Multi-Shoot-Namespace)
|
No
|
|
Host-Netzwerk
|
Ja
|
No
|
Fehlerbehebung
Portkonfliktfehler
Der folgende Fehler weist auf einen Portkonflikt hin:
0/1 nodes are available: 1 node(s) didn't have free ports for the requested pod ports
Überprüfen Sie, ob eine andere Installation dieselben Ports verwendet, und aktualisieren
Sie die Portkonfiguration in Ihrer Werte-Datei.
