Razee ist ein Open-Source-Projekt, das von IBM entwickelt wurde, um die Bereitstellung von Kubernetes-Ressourcen über Cluster, Umgebungen und Cloud-Anbieter hinweg zu automatisieren und zu verwalten und Bereitstellungsinformationen für Ihre Ressourcen zu visualisieren, damit Sie den Rollout-Prozess überwachen und Bereitstellungsprobleme finden können schneller.
Sehen Sie sich die folgenden Links an, um mit Razee zu beginnen:
Sehen Sie sich die wichtigsten Funktionen von Razee an und erfahren Sie, wie Sie sie nutzen können, um die Bereitstellung von Kubernetes-Ressourcen für Ihre Cluster zu verwalten.
Razee besteht aus drei Modulen, RazeeDash, RazeeDeployables und RazeeDeploy, die lose gekoppelt sind und unabhängig voneinander verwendet werden können. Mit RazeeDash können Sie dynamisch ein Live-Inventar Ihrer Kubernetes-Ressourcen erstellen und die leistungsstarken Filter- und Warnfunktionen nutzen, um Konfigurationsinformationen zu visualisieren und Probleme in Ihrem Bereitstellungsprozess schneller zu beheben. RazeeDeploy-Komponenten sollen Multi-Cluster-Bereitstellungen vereinfachen, indem sie Kubernetes-Ressourcen als Vorlage verwenden, Ressourcen und Cluster gruppieren und Regeln für diese Gruppierungen definieren, sodass Sie eine flexible Konfiguration erstellen können, die über Cluster, Umgebungen und Clouds hinweg durchgesetzt wird.
Komponente | Beschreibung |
---|---|
Beobachter | Watch Keeper ist dafür verantwortlich, Konfigurationsinformationen für Kubernetes-Ressourcen abzurufen und diese Daten an die RazeeDash-API zu senden. Um Watch Keeper zu verwenden, installieren Sie einfach diese Komponente in Ihrem Cluster und fügen Sie allen Ressourcen, die Sie überwachen möchten, die Bezeichnung razee/watch-resource hinzu. Nachdem Sie das Label hinzugefügt haben, ruft Watch Keeper Konfigurationsinformationen vom Kubernetes-API-Server ab und sendet diese Daten sofort an die RazeeDash-API. Dieser Vorgang wiederholt sich einmal pro Stunde. Darüber hinaus fügt Watch Keeper Ihrer Ressource einen Kubernetes-Ereignismonitor hinzu, sodass Watch Keeper von Kubernetes benachrichtigt wird, wenn sich die Konfiguration Ihrer Ressource ändert. |
RazeeDash-API | RazeeDash API ist ein Dienst, der Kubernetes-Ressourcenkonfigurationen und Ressourcendefinitionen von Watch Keeper empfängt. Daten, die an die RazeeDash-API gesendet werden, werden automatisch in MongoDB gespeichert. |
RazeeDash | RazeeDash visualisiert die von Watch Keeper abgerufenen Daten und erstellt dynamisch eine Bestandsaufnahme Ihrer Kubernetes-Ressourcen in Ihrem Cluster. Mit den intelligenten Filter- und Warnfunktionen können Sie diese Daten analysieren und Probleme in Ihrem Bereitstellungsprozess schnell identifizieren und beheben. |
ClusterSubscription | ClusterSubscription ist eine Razee-Bereitstellung, die Abonnements in Razee überwacht, um zu prüfen, ob aktive Abonnements für einen Cluster vorhanden sind. Wenn ein Abonnement gefunden wird, wird die zugehörige Version der Kubernetes-Ressource von Razee abgerufen und automatisch im Cluster angewendet. |
Komponente | Beschreibung |
---|---|
RazeeDeploy Core | RazeeDeploy Core ist ein Continuous Delivery-Tool, das in Ihrem Cluster ausgeführt wird und mit dem Sie die CustomResourceDefinitions (CRD), Kubernetes-Controller und Abhängigkeiten für die RazeeDeploy-Komponenten einrichten können. |
RazeeDeploy Delta | RazeeDeploy Delta ist eine Komponente von RazeeDeploy Core, die in Ihrem Cluster ausgeführt wird und die benutzerdefinierten Ressourcendefinitionen und Kubernetes-Controller der RazeeDeploy-Komponenten auf dem neuesten Stand hält. |
RemoteResource und Remote Resource S3 | RemoteResource und RemoteResourceS3 sind benutzerdefinierte Ressourcendefinitionen und Controller, mit denen Sie Kubernetes-Ressourcen, die in einem Quell-Repository gespeichert sind, automatisch bereitstellen können. Anstatt diese YAML-Dateien bei jeder Aktualisierung manuell in jedem Cluster, in jeder Umgebung oder in allen Clouds anzuwenden, definieren Sie einfach das Quell-Repository in Ihrer Remote-Ressource und erstellen Sie die Remote-Ressource in Ihrem Cluster. Der Remote-Ressourcen-Controller stellt automatisch eine Verbindung zu Ihrem Quell-Repository her, lädt die Kubernetes-Konfigurationsdatei herunter und wendet die Datei auf Ihren Cluster an. |
MoustacheTemplate | MustacheTemplate ist eine benutzerdefinierte Ressourcendefinition und ein Controller zum Definieren von Umgebungsvariablen, die Sie zum Ersetzen von YAML-Dateiteilen in anderen Kubernetes-YAML-Dateien verwenden können. Verwenden Sie beispielsweise die Umgebungsvariablen Ihrer Moustache-Vorlage, um die URL für Ihre Remote-Ressource zu erstellen, damit Sie auf die App-Version verweisen können, die Sie bereitstellen möchten. |
FeatureFlagSetLD | FeatureFlagSetLD ist eine benutzerdefinierte Ressourcendefinition und ein Controller zum automatischen Abrufen von Feature-Flag-Werten von Launch Darkly. Mit Feature-Flags können Sie steuern, welcher Code in Ihrem Cluster bereitgestellt wird, und mehrere Versionen von Kubernetes-Ressourcen über Cluster, Umgebungen oder Clouds hinweg verwalten. |
ManagedSet | ManagedSet ist eine benutzerdefinierte Ressourcendefinition und ein Controller zum Gruppieren von Kubernetes-Ressourcen, die Sie erstellen und gleichzeitig auf den Cluster anwenden möchten. |
Kubernetes-Dienstprogramme | Kubernetes Utilities ist ein npm Paket, mit dem Sie die Kommunikation mit Kubernetes vereinfachen können. |
Um Razee in Ihrem Cluster bereitzustellen, muss Ihr Cluster die folgenden Anforderungen erfüllen:
Installieren Sie zunächst razeedeploy-delta in Ihrem Custer, indem Sie Folgendes ausführen:
kubectl apply -f https://github.com/razee-io/Razee/releases/latest/download/razeedeploy.yaml
Beispielausgabe:
namespace/razeedeploy created
serviceaccount/razeedeploy-sa created
clusterrole.rbac.authorization.k8s.io/razeedeploy-admin-cr configured
clusterrolebinding.rbac.authorization.k8s.io/razeedeploy-rb configured
job.batch/razeedeploy-job created
kubectl get deploy -n razeedeploy
NAME READY UP-TO-DATE AVAILABLE AGE
remoteresource-controller 1/1 1 1 56s
Installieren Sie die RazeeDash-Komponenten in Ihrem Cluster. Um Daten zu speichern, die an die RazeeDash-API gesendet werden, müssen Sie eine MongoDB-Instanz einrichten. Sie können RazeeDash und eine einzelne MongoDB-Instanz mithilfe der bereitgestellten Datei razeedash-all-in-one.yaml
einrichten oder RazeeDash mit einer vorhandenen MongoDB-Instanz einrichten, die in Ihrem Cluster ausgeführt wird. Hinweis : Wenn in einem Ihrer Cluster bereits eine Instanz von RazeeDash ausgeführt wird und Sie stattdessen einfach einen weiteren Cluster zu Ihrer Inventarliste hinzufügen möchten, können Sie diesen Schritt überspringen und mit der Installation der Watchkeeper-Komponente in Ihrem Cluster fortfahren.
So installieren Sie RazeeDash und eine einzelne MongoDB-Instanz :
kubectl apply -f https://github.com/razee-io/Razee/releases/latest/download/razeedash-all-in-one.yaml
Beispielausgabe:
persistentvolume/mongo-pv-volume created
persistentvolumeclaim/mongo-pv-claim created
deployment.apps/mongo created
service/mongo created
secret/razeedash-secret created
remoteresource.deploy.razee.io/razeedash created
service/razeedash-lb created
service/razeedash-api-lb created
So verwenden Sie eine vorhandene MongoDB-Instanz :
Erstellen Sie das Razeedash-Geheimnis für die mongo_url. Ersetzen Sie im folgenden Befehl den tatsächlichen Benutzernamen und das Kennwort sowie drei Hostinstanzen für mongo-0, mongo-1 und mongo-3 sowie die richtigen Ports. Stellen Sie sicher, dass am Ende der Mongo-URL /razeedash?ssl=true
steht.
Beispiel :
kubectl -n razee create secret generic razeedash-secret --from-literal " mongo_url=mongodb://username:password@mongo‑0:27017,mongo‑1:27017,mongo‑2:27017/razeedash?ssl=true "
kubectl apply -f https://github.com/razee-io/Razee/releases/latest/download/razeedash.yaml
Warten Sie, bis die razeedash-api
Bereitstellung abgeschlossen ist. Wenn Sie sich im vorherigen Schritt dafür entschieden haben, RazeeDash mithilfe der bereitgestellten Datei razeedash-all-in-one.yaml
zu erstellen, wird eine Instanz von MongoDB in Ihrem Cluster erstellt und mit der RazeeDash-API-Instanz verbunden. Die Einrichtung von MongoDB dauert einige Minuten und kann zu zeitweiligen MongoNetworkError
Fehlern in Ihrer RazeeDash-API-Bereitstellung führen. Wenn MongoDB vollständig eingerichtet ist, schließt Kubernetes automatisch die Einrichtung Ihrer RazeeDash-API-Instanz ab.
kubectl logs deploy/razeedash-api -n razee
Beispielausgabe, wenn MongoDB noch nicht eingerichtet ist:
> [email protected] start /usr/src
> node app/index.js
(node:16) UnhandledPromiseRejectionWarning: MongoNetworkError: getaddrinfo
ENOTFOUND mongo
at Socket. < anonymous > (/usr/src/node_modules/mongodb-core/lib/connection/connect.js:287:16)
at Object.onceWrapper (events.js:284:20)
at Socket.emit (events.js:196:13)
at emitErrorNT (internal/streams/destroy.js:91:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
at processTicksAndRejections (internal/process/task_queues.js:84:9)
(node:16) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch (). (rejection id: 1)
(node:16) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Beispielausgabe, wenn die RazeeDash-API vollständig eingerichtet ist:
> [email protected] start /usr/src
> node app/index.js
{ " name " : " apollo/subscription " , " parseUA " :false, " excludes " :[ " referer " , " url " , " body " , " short-body " ], " hostname " : " razeedash-api-7bd66669b7-jj2vj " , " pid " :17, " level " :30, " msg " : " Apollo streaming servic e is configured on redisUrl: redis://redis-service:6379/0 " , " time " : " 2020-06-03T21:57:16.021Z " , " v " :0}
{ " name " : " apollo/subscription " , " parseUA " :false, " excludes " :[ " referer " , " url " , " body " , " short-body " ], " hostname " : " razeedash-api-7bd66669b7-jj2vj " , " pid " :17, " level " :30, " msg " : " Apollo streaming is ena bled on redis endpoint redis-service:6379 " , " time " : " 2020-06-03T21:57:17.062Z " , " v " :0}
{ " name " : " / " , " parseUA " :false, " excludes " :[ " referer " , " url " , " body " , " short-body " ], " hostname " : " razeedash-api-7bd66669b7-jj2vj " , " pid " :17, " level " :30, " msg " : " Created new collection users index users " , " time " : " 2020-06-03T21:57:17.222Z " , " v " :0}
{ " name " : " / " , " parseUA " :false, " excludes " :[ " referer " , " url " , " body " , " short-body " ], " hostname " : " razeedash-api-7bd66669b7-jj2vj " , " pid " :17, " level " :30, " msg " : " Created new View clusterStatsView " , " time " : " 2020-06-03T21:57:17.239Z " , " v " :0}
{ " name " : " / " , " parseUA " :false, " excludes " :[ " referer " , " url " , " body " , " short-body " ], " hostname " : " razeedash-api-7bd66669b7-jj2vj " , " pid " :17, " level " :30, " msg " : " Created new View resourceStatsView " , " time " : " 2020-06-03T21:57:17.241Z " , " v " :0}
{ " name " : " apollo/models " , " parseUA " :false, " excludes " :[ " referer " , " url " , " body " , " short-body " ], " hostname " : " razeedash-api-7bd66669b7-jj2vj " , " pid " :17, " level " :30, " msg " : " SetupDistributedCollections r eceived modelName=resources for DB mongodb://mongo:27017/razeedash " , " time " : " 2020-06-03T21:57:17.284Z " , " v " :0}
{ " name " : " apollo/models " , " parseUA " :false, " excludes " :[ " referer " , " url " , " body " , " short-body " ], " hostname " : " razeedash-api-7bd66669b7-jj2vj " , " pid " :17, " level " :30, " msg " : " SetupDistributedCollections r eceived modelName=orgs for DB mongodb://mongo:27017/razeedash " , " time " : " 2020-06-03T21:57:17.295Z " , " v " :0}
{ " name " : " apollo/models " , " parseUA " :false, " excludes " :[ " referer " , " url " , " body " , " short-body " ], " hostname " : " razeedash-api-7bd66669b7-jj2vj " , " pid " :17, " level " :30, " msg " : " SetupDistributedCollections:c lusters - received modelName=clusters for DB mongodb://mongo:27017/razeedash " , " time " : " 2020-06-03T21:57:17.297Z " , " v " :0}
{ " name " : " apollo " , " parseUA " :false, " excludes " :[ " referer " , " url " , " short-body " , " user-agent " , " req " , " res " ], " hostname " : " razeedash-api-7bd66669b7-jj2vj " , " pid " :17, " level " :30, " msg " : " Initialize apollo application for default auth " , " time " : " 2020-06-03T21:57:17.298Z " , " v " :0}
{ " name " : " apollo " , " parseUA " :false, " excludes " :[ " referer " , " url " , " short-body " , " user-agent " , " req " , " res " ], " hostname " : " razeedash-api-7bd66669b7-jj2vj " , " pid " :17, " level " :30, " msg " : " [] Apollo server c ustom plugin are loaded. " , " time " : " 2020-06-03T21:57:17.299Z " , " v " :0}
{ " name " : " razeedash-api " , " hostname " : " razeedash-api-7bd66669b7-jj2vj " , " pid " :17, " level " :30, " msg " : " ? razeedash-api listening on port 3333/api " , " time " : " 2020-06-03T21:57:17.723Z " , " v " :0}
{ " name " : " apollo " , " parseUA " :false, " excludes " :[ " referer " , " url " , " short-body " , " user-agent " , " req " , " res " ], " hostname " : " razeedash-api-7bd66669b7-jj2vj " , " pid " :17, " level " :30, " msg " : " ? Apollo server listening on http://[::]:3333/graphql " , " time " : " 2020-06-03T21:57:17.734Z " , " v " :0}
Rufen Sie die externe IP-Adresse Ihrer Load-Balancer-Dienste razeedash-lb
und razeedash-api-lb
ab, die während der RazeeDash-API-Einrichtung automatisch erstellt werden. razeedash-lb
dient als öffentlicher Endpunkt für Ihre RazeeDash-Instanz und razeedash-api-lb
dient als öffentlicher Endpunkt für Ihre RazeeDash-API-Instanz. Mithilfe der zugewiesenen öffentlichen IP-Adressen können Sie die öffentlichen URLs erstellen, die Sie für den Zugriff auf RazeeDash und die RazeeDash-API-Komponenten verwenden. Um die Einrichtung von RazeeDash abzuschließen, müssen die beiden URLs in der RazeeDash-Konfigurationszuordnung gespeichert werden. Verwenden Sie die folgenden Bash-Befehle, um die öffentlichen IP-Adressen abzurufen, die öffentlichen URLs zu erstellen und die URLs in der RazeeDash-Konfigurationszuordnung zu speichern. Sie können auch das Bash-Skript bin/kc_create_razeedash_config.sh
ausführen. Beachten Sie, dass Sie das abschließende /
am Ende der root_url
und razeedash_api_url
in Ihre RazeeDash-Konfigurationszuordnung einfügen müssen.
# Amazon EKS uses host names, IBM Cloud Kubernetes Service uses Ingress IP addresses. This handle both.
RAZEEDASH_LB_IP= $( kubectl get service razeedash-lb -n razee -o jsonpath= " {.status.loadBalancer.ingress[*].ip} " )
RAZEEDASH_API_LB_IP= $( kubectl get service razeedash-api-lb -n razee -o jsonpath= " {.status.loadBalancer.ingress[*].ip} " )
RAZEEDASH_LB_HOSTNAME= $( kubectl get service razeedash-lb -n razee -o jsonpath= " {.status.loadBalancer.ingress[*].hostname} " )
RAZEEDASH_API_LB_HOSTNAME= $( kubectl get service razeedash-api-lb -n razee -o jsonpath= " {.status.loadBalancer.ingress[*].hostname} " )
RAZEEDASH_LB= ${RAZEEDASH_LB_HOSTNAME} && [[ " ${RAZEEDASH_LB_IP} " != " " ]] && RAZEEDASH_LB= ${RAZEEDASH_LB_IP}
RAZEEDASH_API_LB= ${RAZEEDASH_API_LB_HOSTNAME} && [[ " ${RAZEEDASH_API_LB_IP} " != " " ]] && RAZEEDASH_API_LB= ${RAZEEDASH_API_LB_IP}
kubectl create configmap razeedash-config -n razee
--from-literal=root_url=http:// " ${RAZEEDASH_LB} " :8080/
--from-literal=razeedash_api_url=http:// " ${RAZEEDASH_API_LB} " :8081/
Stellen Sie sicher, dass alle Razee-Komponenten bereitgestellt sind und in der Spalte READY Ihrer CLI-Ausgabe 1/1
anzeigen.
kubectl get deployments -n razee
Beispielausgabe:
NAME READY UP-TO-DATE AVAILABLE AGE
featureflagsetld-controller 1/1 1 1 53m
managedset-controller 1/1 1 1 53m
mongo 1/1 1 1 34m
mustachetemplate-controller 1/1 1 1 53m
razeedash 1/1 1 1 25m
razeedash-api 1/1 1 1 25m
razeedeploy-delta 1/1 1 1 53m
remoteresource-controller 1/1 1 1 53m
remoteresources3-controller 1/1 1 1 53m
Öffnen Sie den RazeeDash-Begrüßungsbildschirm.
open http:// " ${RAZEEDASH_LB} " :8080
Erstellen Sie eine OAuth
Anwendung für RazeeDash in GitHub, GitHub Enterprise oder Bitbucket.
Wählen Sie auf dem Begrüßungsbildschirm von RazeeDash die Kachel des Tools aus, in dem Sie die OAuth
Anwendung erstellen möchten.
Befolgen Sie die Anweisungen im Popup-Fenster, um die OAuth
Anwendung zu erstellen.
Klicken Sie auf Konfiguration speichern .
Klicken Sie im Begrüßungsbildschirm von RazeeDash auf „Mit <integration_tool> anmelden“ .
Befolgen Sie die Anweisungen im Popup-Fenster, um RazeeDash Zugriff auf das von Ihnen ausgewählte Integrationstool zu gewähren.
Wenn Sie OAuth
Anmeldeinformationen zurücksetzen müssen, können Sie von vorne beginnen, indem Sie eine Mongo-Shell für Ihre Instanz öffnen und ausführen
> use razeedash
> db.meteor_accounts_loginServiceConfiguration.remove({})
Installieren Sie Watch Keeper in jedem Cluster, den Sie überwachen möchten. Der Cluster, auf dem Sie Watch Keeper installieren, kann ein anderer Cluster sein als der, auf dem Sie RazeeDash installiert haben.
Klicken Sie in der RazeeDash-Konsole auf Registrieren .
Klicken Sie auf Verwalten .
Kopieren Sie den Befehl Install Razee Agent kubectl
.
Führen Sie den Befehl in dem Cluster aus, den Sie überwachen möchten, um die Watch Keeper-Komponenten zu erstellen. Wenn Sie Watch Keeper in demselben Cluster installieren, in dem Sie RazeeDash installiert haben, werden Meldungen angezeigt, dass einige der Watch Keeper-Komponenten bereits in Ihrem Cluster vorhanden sind. Sie können diese Nachrichten ignorieren.
kubectl create -f http:// < razeedash-api-lb_external_IP > :8081/api/install/cluster ? orgKey=orgApiKey- < org_api_key >
Beispielausgabe für einen Cluster, in dem RazeeDash installiert ist:
deployment.apps/remoteresource-controller created
configmap/watch-keeper-config created
secret/watch-keeper-secret created
remoteresource.deploy.razee.io/watch-keeper-rr created
Error from server (AlreadyExists): error when creating
" http://4e0ef59e-us-south.lb.appdomain.cloud:8081/api/install/cluster?
orgKey=orgApiKey-d52b52fc-38ae-4da0-b187-6e097e5bfe5c " : namespaces
" razee " already exists
Error from server (AlreadyExists): customresourcedefinitions.
apiextensions.k8s.io " remoteresources.deploy.razee.io " already exists
Error from server (AlreadyExists): error when creating
" http://4e0ef59e-us-south.lb.appdomain.cloud:8081/api/install/cluster?
orgKey=orgApiKey-d52b52fc-38ae-4da0-b187-6e097e5bfe5c " : namespaces
" razee " already exists
Error from server (AlreadyExists): error when creating
" http://4e0ef59e-us-south.lb.appdomain.cloud:8081/api/install/cluster?
orgKey=orgApiKey-d52b52fc-38ae-4da0-b187-6e097e5bfe5c " : serviceaccounts
" razeedeploy-sa " already exists
Error from server (AlreadyExists): error when creating
" http://4e0ef59e-us-south.lb.appdomain.cloud:8081/api/install/cluster?
orgKey=orgApiKey-d52b52fc-38ae-4da0-b187-6e097e5bfe5c " : clusterroles.
rbac.authorization.k8s.io " razeedeploy-admin-cr " already exists
Error from server (AlreadyExists): error when creating
" http://4e0ef59e-us-south.lb.appdomain.cloud:8081/api/install/cluster?
orgKey=orgApiKey-d52b52fc-38ae-4da0-b187-6e097e5bfe5c " :
clusterrolebindings.rbac.authorization.k8s.io " razeedeploy-rb " already exists
Error from server (AlreadyExists): error when creating
" http://4e0ef59e-us-south.lb.appdomain.cloud:8081/api/install/cluster?
orgKey=orgApiKey-d52b52fc-38ae-4da0-b187-6e097e5bfe5c " : configmaps
" razeedeploy-delta-resource-uris " already exists
Error from server (AlreadyExists): error when creating
" http://4e0ef59e-us-south.lb.appdomain.cloud:8081/api/install/cluster?
orgKey=orgApiKey-d52b52fc-38ae-4da0-b187-6e097e5bfe5c " : deployments.apps
" razeedeploy-delta " already exists
Beispielausgabe für einen Cluster, in dem RazeeDash nicht installiert ist:
configmap/watch-keeper-config created
secret/watch-keeper-secret created
clusterrole.rbac.authorization.k8s.io/cluster-reader created
serviceaccount/watch-keeper-sa created
clusterrolebinding.rbac.authorization.k8s.io/watch-keeper-rb created
networkpolicy.networking.k8s.io/watch-keeper-deny-ingress created
deployment.apps/watch-keeper created
Error from server (AlreadyExists): namespaces " razee " already exists
Warten Sie, bis die Watch Keeper-Bereitstellung abgeschlossen ist.
kubectl get deployment -n razee | grep watch-keeper
Beispielausgabe:
watch-keeper 1/1 1 1 2m5s
Klicken Sie in der RazeeDash-Konsole auf RazeeDash , um die RazeeDash-Detailseite zu öffnen und zu überprüfen, ob Sie Bereitstellungsinformationen für Ihren Watch Keeper-Pod sehen können.
Wenn Watch Keeper in Ihrem Cluster eingerichtet ist, können Sie Bereitstellungsinformationen für andere Kubernetes-Ressourcen abrufen, die Sie überwachen möchten. Daten werden automatisch an die RazeeDash-API gesendet und Sie können mit RazeeDash auf diese Daten zugreifen, sie überwachen und analysieren.
Entscheiden Sie, welche Informationen Watch Keeper abrufen soll, indem Sie zwischen den folgenden Detaillierungsebenen wählen:
lite
: Ruft den metadata
und status
Ihrer Kubernetes-Ressourcenkonfiguration ab.detail
: Ruft alle Konfigurationsdaten einer Kubernetes-Ressource ab, lässt jedoch Umgebungsvariablen und den data
von Konfigurationszuordnungen und Geheimnissen weg.debug
: Ruft alle Konfigurationsdaten einer Kubernetes-Ressource ab, einschließlich Umgebungsvariablen und der data
. Abschnitt mit Konfigurationskarten und Geheimnissen. Diese Informationen können vertrauliche Informationen enthalten. Verwenden Sie diese Option daher mit Vorsicht. Fügen Sie das Label razee/watch-resource
zum Abschnitt „Labels“ aller Kubernetes-Ressourcen hinzu, die Sie überwachen möchten, und geben Sie den Detaillierungsgrad der Informationen an. Wenn Sie beispielsweise eine Kubernetes-Bereitstellung überwachen möchten, verwenden Sie den folgenden Befehl. Nachdem Sie das Label zu Ihrer Ressource hinzugefügt haben, scannt Watch Keeper Ihre Ressource automatisch und sendet Daten an die RazeeDash-API. Anschließend wird Ihre Ressource einmal pro Stunde gescannt. Darüber hinaus fügt Watch Keeper Ihrer Ressource einen Kubernetes-Ereignismonitor hinzu, sodass Watch Keeper von Kubernetes benachrichtigt wird, wenn sich die Konfiguration Ihrer Ressource ändert.
kubectl edit deployment < deployment_name >
Beispiel einer YAML-Datei:
apiVersion : extensions/v1beta1
kind : Deployment
metadata :
annotations :
deployment.kubernetes.io/revision : " 1 "
kubectl.kubernetes.io/last-applied-configuration : |
{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"labels":{"app":"myapp"},"name":"expandpvc","namespace":"default"},"spec":{"selector":{"matchLabels":{"app":"myapp"}},"template":{"metadata":{"labels":{"app":"myapp"}},"spec":{"con