使用Kubernetes (K8S) 在云端部署应用程序是现代开发中常见的做法。在K8S中,我们可以使用各种不同的端口号来实现不同的功能,其中默认的TCP端口号80通常用于HTTP协议。在本文中,我将教导您如何将TCP默认端口号80用作您的应用程序。

在K8S中配置TCP默认端口号80用作的过程如下:

| 步骤 | 描述 |
|------|------------------------------|
| 1 | 创建一个Deployment |
| 2 | 创建一个Service |
| 3 | 将Service暴露到外部 |

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

首先,我们需要创建一个Deployment来运行我们的应用程序。Deployment是K8S中的一种资源对象,它用于管理Pod副本集。以下是创建Deployment的代码示例:

```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-app
image: my-image:latest
ports:
- containerPort: 80
```

在上面的示例中,我们定义了一个名为my-app的Deployment,它将运行名为my-image的镜像,并将容器端口设置为80。您可以将my-image替换为您自己的镜像名称。

### 步骤 2:创建一个Service

接下来,我们需要创建一个Service来公开Deployment中的Pod。Service是K8S中的一种资源对象,它用于将流量路由到一组Pod中。以下是创建Service的代码示例:

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

在上面的示例中,我们定义了一个名为my-service的Service,它将端口80映射到Deployment中Pod的端口80。该Service类型为ClusterIP,这意味着它将在集群内部可用。您可以根据需要将Service类型更改为NodePort或LoadBalancer。

### 步骤 3:将Service暴露到外部

最后,如果您希望将Service暴露到集群外部,您可以使用Ingress对象。Ingress是K8S中的一种资源对象,它用于公开HTTP和HTTPS服务。以下是创建Ingress的代码示例:

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

在上面的示例中,我们定义了一个名为my-ingress的Ingress对象,它将流量从my-domain.com路由到my-service的端口80。您可以将my-domain.com替换为您自己的域名。

通过按照上述步骤操作,您将成功将TCP默认端口号80用作您的应用程序。希望这篇文章能够帮助您了解如何在K8S中配置端口号。如果您有任何疑问或困惑,请随时联系我。祝您使用K8S愉快!