# 如何实现k8s svc对外暴露端口

## 一、流程概述
下面是实现k8s svc对外暴露端口的步骤概述:

| 步骤 | 操作 |
| ---- | ---- |
| 1 | 创建一个Deployment |
| 2 | 创建一个Service,并将其type设置为LoadBalancer |
| 3 | 检查Service的外部IP,通过该IP加上指定端口即可访问应用 |

## 二、具体操作步骤及代码示例

### 步骤一:创建一个Deployment

首先,我们需要创建一个Deployment,这里以一个简单的Nginx为例。创建一个名为`nginx-deployment.yaml`的文件,内容如下:

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

通过以下命令来创建Deployment:

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

### 步骤二:创建一个Service,并将其type设置为LoadBalancer

接下来,我们需要创建一个Service,并将其类型设置为LoadBalancer,创建一个名为`nginx-service.yaml`的文件,内容如下:

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

通过以下命令来创建Service:

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

### 步骤三:检查Service的外部IP

最后,我们需要等待Service的外部IP分配完成,可以通过以下命令来查看:

```bash
kubectl get svc nginx-service
```

等待状态显示为`EXTERNAL-IP`之后,就可以通过该IP加上指定端口(这里是80)来访问应用了。

## 三、总结

通过以上步骤,我们成功实现了k8s svc对外暴露端口的操作。首先创建一个Deployment来部署应用,然后创建一个Service将其类型设为LoadBalancer,最后通过Service的外部IP加上指定端口来访问应用。希望这篇文章对你有所帮助!