Zum Hauptinhalt springen

Deployment in Kubernetes

Deployen Sie Casdoor in Kubernetes (k8s)

Wir bieten ein grundlegendes Beispiel für das Deployment von Casdoor in einem Kubernetes-Cluster. Im Wurzelverzeichnis von Casdoor finden Sie eine Datei namens "k8s.yaml". Diese Datei enthält eine Beispielkonfiguration für das Deployment von Casdoor in Kubernetes, einschließlich eines Deployments und eines Services.

Bevor Sie mit dem Deployment beginnen, stellen Sie sicher, dass Sie die Datei conf/app.conf geändert haben, damit Casdoor erfolgreich eine Verbindung zur Datenbank herstellen kann und dass die Datenbank selbst läuft. Außerdem stellen Sie sicher, dass Kubernetes die notwendigen Images herunterladen kann.

Um Casdoor zu deployen, führen Sie den folgenden Befehl aus:

kubectl apply -f k8s.yaml

Sie können den Status des Deployments überprüfen, indem Sie den Befehl kubectl get pods ausführen.

Hier ist der Inhalt von k8s.yaml:

# this is only an EXAMPLE of deploying casddor in kubernetes
# please modify this file according to your requirements
apiVersion: v1
kind: Service
metadata:
#EDIT IT: if you don't want to run casdoor in default namespace, please modify this field
#namespace: casdoor
name: casdoor-svc
labels:
app: casdoor
spec:
#EDIT IT: if you don't want to run casdoor in default namespace, please modify this filed
type: NodePort
ports:
- port: 8000
selector:
app: casdoor
---
apiVersion: apps/v1
kind: Deployment
metadata:
#EDIT IT: if you don't want to run casdoor in default namespace, please modify this field
#namespace: casdoor
name: casdoor-deployment
labels:
app: casdoor
spec:
#EDIT IT: if you don't use redis, casdoor should not have multiple replicas
replicas: 1
selector:
matchLabels:
app: casdoor
template:
metadata:
labels:
app: casdoor
spec:
containers:
- name: casdoor-container
image: casbin/casdoor:latest
imagePullPolicy: Always
ports:
- containerPort: 8000
volumeMounts:
# the mounted directory path in THE CONTAINER
- mountPath: /conf
name: conf
env:
- name: RUNNING_IN_DOCKER
value: "true"
#if you want to deploy this in real prod env, consider the config map
volumes:
- name: conf
hostPath:
#EDIT IT: the mounted directory path in THE HOST
path: /conf

Bitte beachten Sie, dass diese Datei nur ein Beispiel ist. Sie können verschiedene Änderungen entsprechend Ihren Anforderungen vornehmen, wie zum Beispiel die Verwendung eines anderen Namensraums, Servicetyps oder eines ConfigMaps, um die Konfigurationsdatei einzubinden. Die Verwendung eines ConfigMaps ist ein empfohlener Ansatz in Kubernetes, um Konfigurationsdateien in einer Produktionsumgebung einzubinden.