在Kubernetes(K8S)集群中配置Tomcat并访问显示404页面是一个常见的需求,通常会涉及到创建Deployment、Service以及Ingress等资源。在下面的文章中,我将向你展示如何实现这一过程。

### K8S配置Tomcat访问显示404示例步骤

| 步骤 | 动作 |
| ---- | ---- |
| 1. 创建Tomcat镜像 | 创建一个基于Tomcat的Docker镜像 |
| 2. 创建Deployment | 在K8S中创建Tomcat的Deployment |
| 3. 创建Service | 创建用于暴露Tomcat服务的Service |
| 4. 创建Ingress | 设置Ingress规则以便能够通过域名访问Tomcat服务 |

#### 步骤一:创建Tomcat镜像

首先, 我们需要创建一个基于Tomcat的Docker镜像。可以使用以下Dockerfile示例:

```Dockerfile
# 使用Tomcat镜像作为基础镜像
FROM tomcat:latest

# 将本地的war文件复制到Tomcat webapps目录下
COPY path/to/your/application.war /usr/local/tomcat/webapps/
```

构建Docker镜像:

```bash
docker build -t my-tomcat-app .
```

#### 步骤二:创建Deployment

在K8S中,Deployment是用来管理应用实例的控制器。创建一个Deployment.yaml文件,并定义Tomcat Deployment配置:

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

应用Deployment配置:

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

#### 步骤三:创建Service

Service用于暴露Deployment内的应用,可以将其通过Service暴露给其他服务。创建一个Service.yaml文件,并定义Service配置:

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

应用Service配置:

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

#### 步骤四:创建Ingress

最后, 我们将通过Ingress设置可以通过域名访问Tomcat服务。创建一个Ingress.yaml文件,并定义Ingress配置:

```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: tomcat-ingress
spec:
rules:
- host: your-domain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: tomcat-service
port:
number: 8080
```

应用Ingress配置:

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

完成上述步骤后,你就可以通过your-domain.com访问Tomcat服务,并且应该可以正确显示404页面。

希望以上内容能够帮助你快速配置K8S环境下的Tomcat服务,如果需要进一步了解或有任何问题,请随时向我提问!