## 从零开始创建K8S第一个Java项目

欢迎来到Kubernetes(简称K8S)的世界!K8S是一种流行的容器编排工具,可以帮助我们更高效地管理容器化的应用程序。如果你是一位刚入行的小白,不知道如何在K8S中创建第一个Java项目,那么不用担心,接下来我将一步步地指导你完成。

### 整体流程

首先,让我们看一下整个过程的步骤:

| 步骤 | 操作 |
|------|----------------------------------------|
| 1 | 创建一个Java项目 |
| 2 | 将Java项目Docker化 |
| 3 | 创建K8S Deployment和Service配置文件 |
| 4 | 部署Java项目到K8S集群 |

### 操作步骤

#### 步骤1:创建一个Java项目

首先,我们需要创建一个简单的Java项目来作为我们的示例。这里我们创建一个简单的Spring Boot项目。

1. 创建一个Spring Boot项目(如果你已经有一个Java项目,可以跳过这一步)。
2. 在 `src/main/java` 目录下创建一个 `HelloController.java` 文件,并添加以下代码:

```java
package com.example.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

@GetMapping("/")
public String hello() {
return "Hello, Kubernetes!";
}
}
```

#### 步骤2:将Java项目Docker化

接下来,我们需要将我们的Java项目Docker化,以便能够在K8S中部署它。

1. 在项目根目录下创建一个 `Dockerfile` 文件,并添加以下内容:

```dockerfile
FROM openjdk:11
COPY ./target/demo-0.0.1-SNAPSHOT.jar app.jar
CMD ["java", "-jar", "app.jar"]
```

2. 在项目根目录下执行以下命令来构建Docker镜像:

```
docker build -t demo .
```

#### 步骤3:创建K8S配置文件

现在,我们需要创建K8S的Deployment和Service配置文件来定义我们的Java项目在集群中的运行方式。

1. 创建一个 `deployment.yaml` 文件,并添加以下内容:

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo-deployment
spec:
replicas: 1
selector:
matchLabels:
app: demo
template:
metadata:
labels:
app: demo
spec:
containers:
- name: demo
image: demo
ports:
- containerPort: 8080
```

2. 创建一个 `service.yaml` 文件,并添加以下内容:

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

#### 步骤4:部署Java项目到K8S集群

最后,我们可以部署我们的Java项目到K8S集群中。

1. 使用以下命令来创建Deployment和Service:

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

2. 使用以下命令来查看部署情况:

```
kubectl get pods
kubectl get services
```

恭喜!现在你已经成功地在K8S中创建了你的第一个Java项目,并且可以通过Service的IP地址来访问它。希望这篇文章对你有所帮助,祝你在K8S的学习之路上越走越远!