**实现K8S负载均衡DNS的步骤**

| 步骤 | 内容 |
|:----:|:---------------:|
| 1 | 创建Service |
| 2 | 配置Ingress |
| 3 | 部署应用 |

### 步骤一:创建Service

在Kubernetes中,Service是一种抽象,用于定义一组pod的访问方式。我们可以通过创建Service来实现负载均衡,让多个pod共享一个DNS名称。

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

- `metadata.name`: Service的名称
- `selector.app`: 匹配这个Service要负载均衡的pod的标签
- `ports`: 指定Service监听的端口
- `type: LoadBalancer`: 表示这个Service需要通过负载均衡器公开

### 步骤二:配置Ingress

Ingress是Kubernetes中另一个重要的资源,用于管理外部访问进入集群的流量。我们可以通过创建Ingress来将外部请求转发到对应的Service。

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

- `metadata.name`: Ingress的名称
- `host`: 域名
- `http.paths`: 匹配请求路径
- `backend.service.name`: 转发流量到的Service名称
- `backend.service.port.number`: Service监听的端口

### 步骤三:部署应用

最后,我们需要部署一个或多个pod,并添加适当的标签,以便Service可以选择要负载均衡的实例。

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-container
image: nginx:latest
ports:
- containerPort: 80
```

通过以上步骤,我们就成功实现了Kubernetes负载均衡DNS的配置。现在,当外部请求example.com时,流量将通过Ingress经过负载均衡器转发到my-service中的多个pod,从而实现了负载均衡和DNS解析。希望这篇文章能帮助到刚入行的小白理解和实现K8S负载均衡DNS的配置。