MCP Feishu Project Manager
by Roland0511
Verified
# Kubernetes 部署指南
这里提供一份Kubernetes部署的例子,需要在Kubernetes集群中运行MCP飞书项目服务的可以参考。
## 前提条件
- 一个可用的Kubernetes集群
- 已安装kubectl命令行工具
- 具有创建Deployment、ConfigMap和Secret的权限
## 部署步骤
### 1. 准备Secret
首先,需要创建包含敏感信息的Secret。由于Kubernetes Secret需要使用base64编码的值,您需要对敏感信息进行编码:
```bash
# 对敏感信息进行base64编码
echo -n "your_project_key" | base64
echo -n "your_user_key" | base64
echo -n "your_plugin_id" | base64
echo -n "your_plugin_secret" | base64
```
然后,使用生成的base64编码值更新`k8s-secret.yaml`文件中的相应字段。
### 2. 应用配置
依次应用以下配置文件:
```bash
# 创建ConfigMap
kubectl apply -f k8s-configmap.yaml
# 创建Secret
kubectl apply -f k8s-secret.yaml
# 创建Deployment
kubectl apply -f k8s-deployment.yaml
```
### 3. 验证部署
检查部署状态:
```bash
# 查看Deployment状态
kubectl get deployments
# 查看Pod状态
kubectl get pods
# 查看Pod日志
kubectl logs -f <pod-name>
```
## 自定义配置
### 资源限制
如果需要调整资源限制,可以修改`k8s-deployment.yaml`文件中的resources部分:
```yaml
resources:
limits:
cpu: "500m" # 0.5 CPU核心
memory: "512Mi" # 512MB内存
requests:
cpu: "100m" # 0.1 CPU核心
memory: "128Mi" # 128MB内存
```
### 副本数量
如果需要运行多个实例,可以修改`k8s-deployment.yaml`文件中的replicas字段:
```yaml
replicas: 3 # 运行3个副本
```
### 暴露服务
如果需要暴露服务,取消`k8s-deployment.yaml`文件中Service部分的注释,并根据需要修改服务类型:
```yaml
apiVersion: v1
kind: Service
metadata:
name: mcp-feishu-proj
spec:
selector:
app: mcp-feishu-proj
ports:
- port: 8000
targetPort: 8000
type: ClusterIP # 可选值:ClusterIP, NodePort, LoadBalancer
```
## 更新应用
当需要更新应用时,可以使用以下命令:
```bash
# 更新Deployment
kubectl apply -f k8s-deployment.yaml
# 或者直接设置新的镜像版本
kubectl set image deployment/mcp-feishu-proj mcp-feishu-proj=ghcr.io/astral-sh/uv:新版本
```
## 删除应用
如果需要删除应用,可以使用以下命令:
```bash
kubectl delete -f k8s-deployment.yaml
kubectl delete -f k8s-secret.yaml
kubectl delete -f k8s-configmap.yaml
```
## 故障排除
如果遇到问题,可以尝试以下步骤:
1. 检查Pod状态:`kubectl describe pod <pod-name>`
2. 查看Pod日志:`kubectl logs -f <pod-name>`
3. 检查Secret和ConfigMap是否正确创建:`kubectl get secrets` 和 `kubectl get configmaps`
4. 进入容器内部排查:`kubectl exec -it <pod-name> -- /bin/sh`