### 流程概要:
| 步骤 | 操作 |
|---|---|
| 1 | 安装 Ingress Controller |
| 2 | 创建 Ingress 资源 |
| 3 | 部署应用到 K8S 集群 |
| 4 | 配置域名解析 |
| 5 | 访问应用服务 |
### 详细步骤:
#### 步骤 1:安装 Ingress Controller
首先我们需要安装 Ingress Controller,如 Nginx Ingress Controller。执行以下命令:
```bash
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml
```
这将安装 Nginx Ingress Controller 到集群中,并将其暴露为 NodePort 服务以便外部访问。
#### 步骤 2:创建 Ingress 资源
然后我们需要创建 Ingress 资源,指定要暴露的服务和规则。以下是一个示例 Ingress 资源配置文件:
```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: example-service
port:
number: 80
```
#### 步骤 3:部署应用到 K8S 集群
接下来,我们需要将我们的应用部署到 K8S 集群中。例如,我们可以部署一个简单的 Nginx 服务:
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: example-app
spec:
replicas: 3
selector:
matchLabels:
app: example-app
template:
metadata:
labels:
app: example-app
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
```
然后创建 Service 对象,暴露 Deployment:
```yaml
apiVersion: v1
kind: Service
metadata:
name: example-service
spec:
selector:
app: example-app
ports:
- protocol: TCP
port: 80
targetPort: 80
type: ClusterIP
```
#### 步骤 4:配置域名解析
在部署完成后,我们需要将域名解析指向集群的 Ingress Controller 的 IP 地址。可以通过修改 DNS 记录或者在本地 hosts 文件中添加一条映射。
#### 步骤 5:访问应用服务
最后,打开浏览器并访问刚刚配置的域名,即可通过 Ingress 访问我们的应用服务。
通过上述步骤,你已经成功实现了通过 Ingress 将 K8S 中的服务对外提供访问的方案。希望以上内容对你有所帮助!如果还有任何疑问,欢迎随时向我提问。