跳到主内容

部署到 Kubernetes

在 Kubernetes (k8s) 中部署 Casdoor

我们提供了一个在 Kubernetes 集群中部署 Casdoor 的基本示例。 在 Casdoor 的根文件夹中,你会找到一个名为 "k8s.yaml" 的文件。 此文件包含了在 Kubernetes 中部署 Casdoor 的示例配置,包括一个部署和一个服务。

在开始部署之前,请确保你已经修改了 conf/app.conf 文件,以便 Casdoor 可以成功连接到数据库,并且数据库本身正在运行。 另外,请确保 Kubernetes 能够拉取必要的镜像。

要部署 Casdoor,请运行以下命令:

kubectl apply -f k8s.yaml

你可以通过运行 kubectl get pods 命令来检查部署状态。

这是 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

请注意,这个文件只是一个示例。 你可以根据你的需求进行各种修改,例如使用不同的命名空间、服务类型,或者使用 ConfigMap 来挂载配置文件。 在 Kubernetes 中,使用 ConfigMap 挂载配置文件是生产环境中推荐的方法。