在Kubernetes (K8S) 中,404页面的显示通常是由Ingress控制器或者服务本身配置不正确所导致的。要实现一个自定义的404页面,我们需要做一些配置和编码工作。

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

| 步骤 | 操作 |
| ------ | ------ |
| 1 | 创建一个自定义的404页面 |
| 2 | 部署404页面到K8S集群 |
| 3 | 配置Ingress或服务来展示404页面 |

接下来,我们将一步步来实现上述步骤。

**步骤1:创建一个自定义的404页面**

首先,我们需要一个自定义的404页面,可以是一个HTML文件。在这里,我们创建一个名为`404.html`的静态页面文件。

```html



404 Not Found


404 Page Not Found

Sorry, the page you are looking for does not exist.




```

保存文件为`404.html`。

**步骤2:部署404页面到K8S集群**

在这一步,我们需要将`404.html`文件部署到一个可被访问到的位置,比如一个静态文件服务器。这里我们以Nginx服务器为例,并通过一个Deployment将`404.html`文件挂载到Nginx的容器中。

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: custom-404-page
spec:
replicas: 1
selector:
matchLabels:
app: custom-404-page
template:
metadata:
labels:
app: custom-404-page
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
volumeMounts:
- mountPath: /usr/share/nginx/html
name: custom-404-page
volumes:
- name: custom-404-page
hostPath:
path: /path/to/404.html
```

在上述YAML文件中,我们定义了一个Deployment,将Nginx容器挂载了一个包含`404.html`文件的Volume。

**步骤3:配置Ingress或服务来展示404页面**

最后一步,我们需要配置Ingress或服务来引导404页面的访问流量。在这里,我们以Ingress为例,为其添加一个新的404路径规则,并将其指向我们部署的Nginx服务。

```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: custom-404-ingress
spec:
rules:
- http:
paths:
- path: /404
pathType: Prefix
backend:
service:
name: custom-404-page
port:
number: 80
```

在上述YAML文件中,我们定义了一个Ingress规则,当访问`/404`路径时,流量会被导向到我们之前部署的Nginx服务,从而展示自定义的404页面。

通过以上步骤,我们成功实现了在K8S集群中展示一个自定义的404页面。希望这篇文章可以帮助你快速上手实现“k8s页面 404”功能。如果有任何疑问,欢迎留言交流。