K8S部署80与443端口

作为一名经验丰富的开发者,我将为那些刚入行的小白介绍如何在Kubernetes(K8S)中部署80与443端口。在本文中,我将为大家详细解释整个过程,并提供相应的代码示例。

步骤概述:

| 步骤 | 操作 |
|------|------|
| 1 | 创建Deployment |
| 2 | 创建Service |
| 3 | 创建Ingress |
| 4 | 为Ingress添加Annotation |

首先,我们需要创建一个Deployment。Deployment是K8S的一个核心概念,它定义了如何创建和更新Pod副本。每个Pod是运行容器化应用程序的实例。

示例代码:
```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-app:v1
ports:
- containerPort: 80
name: http
- containerPort: 443
name: https
```

在上面的示例中,我们创建了一个名为my-app的Deployment,并指定了副本数为3。我们还定义了容器中的两个端口,分别是80(http)和443(https)。

接下来,我们需要创建一个Service。Service是K8S的另一个核心概念,它为一组Pod副本提供了一个稳定的网络终结点。

示例代码:
```yaml
apiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
selector:
app: my-app
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
- name: https
protocol: TCP
port: 443
targetPort: 443
type: ClusterIP
```

在上面的示例中,我们创建了一个名为my-app-service的Service。我们使用selector字段指定了要将Service绑定的Pod副本,即前面创建的my-app Deployment。我们还定义了两个端口(80和443)的映射。

接下来,我们需要创建一个Ingress。Ingress是K8S的一个扩展API对象,它允许我们将外部流量路由到集群内的服务。

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

在上面的示例中,我们创建了一个名为my-app-ingress的Ingress。在rules字段中,我们使用host字段指定了Ingress的域名(例:example.com),将流量路由到my-app-service。我们还定义了路由路径为"/",并将其类型设置为Prefix。

最后,我们需要为Ingress添加注解。注解是K8S的一种元数据,允许我们添加额外的配置或功能。

示例代码:
```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-app-service
port:
number: 80
```

在上面的示例中,我们使用注解来配置Ingress。我们添加了两个注解,分别用于重写目标路径和启用SSL重定向。

通过以上步骤,我们可以在K8S中成功部署80与443端口。通过创建Deployment、Service、Ingress以及添加注解,我们可以确保应用程序可以通过这两个端口进行正常访问。

希望这篇科普文章能够帮助刚入行的小白更好地理解在Kubernetes中部署80与443端口的过程。通过详细的步骤和代码示例,相信大家能够轻松掌握这个技能。祝大家在K8S的学习和实践中取得更多的成就!