当前位置:首页 > 编程技术 > 正文

k8s 如何设置端口映射

k8s 如何设置端口映射

在 Kubernetes (k8s 中设置端口映射主要有两种方式:Service 和 Ingress。以下是具体的操作步骤: 1. 使用 Service 设置端口映射...

在 Kubernetes (k8s) 中设置端口映射主要有两种方式:Service 和 Ingress。以下是具体的操作步骤:

1. 使用 Service 设置端口映射

Service 是 Kubernetes 中的一种抽象,用于暴露 Pod 的网络服务。下面是一个简单的 Service 配置示例,用于设置端口映射:

```yaml

apiVersion: v1

kind: Service

metadata:

name: my-service

spec:

selector:

app: my-app

ports:

protocol: TCP

port: 80

targetPort: 8080

```

解释:

`name`: Service 的名称。

`selector`: Pod 选择器,用于选择哪些 Pod 应该被 Service 暴露。

`ports`: Service 暴露的端口列表,包含以下字段:

`protocol`: 端口协议,通常是 TCP 或 UDP。

`port`: Service 暴露的端口。

`targetPort`: Pod 中实际应用的端口。

部署 Service:

```shell

kubectl apply -f my-service.yaml

```

2. 使用 Ingress 设置端口映射

Ingress 用于管理外部访问到集群内部服务的入口点。下面是一个简单的 Ingress 配置示例,用于设置端口映射:

```yaml

apiVersion: networking.k8s.io/v1

kind: Ingress

metadata:

name: my-ingress

spec:

rules:

host: my-app.example.com

http:

paths:

path: /

pathType: Prefix

backend:

service:

name: my-service

port:

number: 80

```

解释:

`name`: Ingress 的名称。

`rules`: Ingress 规则列表,包含以下字段:

`host`: 访问的域名。

`http`: HTTP 规则,包含以下字段:

`paths`: 路径列表,包含以下字段:

`path`: 路径。

`pathType`: 路径类型,通常是 Prefix。

`backend`: 后端服务,包含以下字段:

`service`: 服务名称。

`port`: 端口。

部署 Ingress:

```shell

kubectl apply -f my-ingress.yaml

```

确保您的 DNS 或 hosts 文件中已配置域名解析到集群 IP 地址。

通过以上两种方式,您可以在 Kubernetes 中设置端口映射,从而方便地访问集群内部服务。

最新文章