# 使用K8S实现m1的部署

## 整体流程

| 步骤 | 描述 |
| ------ | ------ |
| 1 | 创建一个K8S集群 |
| 2 | 编写m1的Docker镜像 |
| 3 | 在K8S集群中部署m1 |

## 具体步骤

### 1. 创建一个K8S集群

首先需要在云服务商或者本地环境中创建一个K8S集群,可以使用工具如Kubeadm、Minikube或者Docker Desktop等,具体操作可以参考对应的官方文档。

### 2. 编写m1的Docker镜像

在本地开发环境中编写一个Dockerfile用于构建m1的Docker镜像,示例Dockerfile如下:

```Dockerfile
# 使用官方Python作为基础镜像
FROM python:3.8

# 设置工作目录
WORKDIR /app

# 将当前目录下的所有文件复制到工作目录下
COPY . /app

# 安装m1所需的依赖
RUN pip install -r requirements.txt

# 暴露容器端口
EXPOSE 5000

# 启动m1应用
CMD ["python", "app.py"]
```

### 3. 在K8S集群中部署m1

1. 构建Docker镜像并推送至Docker仓库,可以使用以下命令:

```bash
docker build -t your_docker_username/m1-image:latest .
docker push your_docker_username/m1-image:latest
```

2. 编写m1的K8S部署配置文件deployment.yaml,示例配置如下:

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: m1-deployment
spec:
replicas: 3
selector:
matchLabels:
app: m1
template:
metadata:
labels:
app: m1
spec:
containers:
- name: m1
image: your_docker_username/m1-image:latest
ports:
- containerPort: 5000
```

3. 使用kubectl命令部署m1到K8S集群:

```bash
kubectl apply -f deployment.yaml
```

4. 创建一个Service暴露m1的端口,可以使用以下Service配置文件service.yaml:

```yaml
apiVersion: v1
kind: Service
metadata:
name: m1-service
spec:
selector:
app: m1
ports:
- protocol: TCP
port: 80
targetPort: 5000
type: LoadBalancer
```

5. 使用kubectl命令创建Service,在外部可以通过LoadBalancer的IP访问m1应用:

```bash
kubectl apply -f service.yaml
```

通过以上步骤,你就成功地使用K8S部署了m1应用,并可以通过LoadBalancer的IP访问。希望以上内容对你有所帮助,如果有任何疑问请随时联系我。