Update service.yaml

pull/10/head
plhw57tbe 4 months ago
parent 680adcd420
commit cc830e8050

@ -1,80 +1,93 @@
apiVersion: v1
kind: Service
# 第一部分Django 应用服务Service
# Service 用于为集群内的 Pod 提供稳定网络访问地址,实现 Pod 访问的负载均衡和服务发现
apiVersion: v1 # Service 资源对应的 Kubernetes API 版本
kind: Service # 资源类型为 Service
metadata:
name: djangoblog
namespace: djangoblog
name: djangoblog # Service 名称,需与其他组件(如 Nginx 配置)中引用的服务名一致
namespace: djangoblog # 所属命名空间,与 Django Deployment、其他组件保持一致资源隔离
labels:
app: djangoblog
app: djangoblog # 服务标签,用于筛选和管理服务资源
spec:
selector:
selector: # 标签选择器:通过标签匹配要管理的 Pod必须与 Django Pod 的标签一致)
app: djangoblog
ports:
- protocol: TCP
port: 8000
targetPort: 8000
type: ClusterIP
---
ports: # 端口配置:定义服务暴露的端口与 Pod 端口的映射关系
- protocol: TCP # 网络协议,默认 TCP常用还有 UDP
port: 8000 # 服务暴露给集群内部的端口(其他组件通过此端口访问该服务)
targetPort: 8000 # 服务转发请求到 Pod 的目标端口(需与 Django 容器暴露的端口一致)
type: ClusterIP # 服务类型ClusterIP 表示仅在集群内部暴露服务,外部无法直接访问(适合内部组件通信)
# 第二部分Nginx 服务Service
--- # 资源分隔符,用于在单个文件中定义多个 Kubernetes 资源
apiVersion: v1
kind: Service
metadata:
name: nginx
name: nginx # Service 名称,需与 Ingress 配置中引用的服务名一致
namespace: djangoblog
labels:
app: nginx
spec:
selector:
app: nginx
app: nginx # 匹配 Nginx Pod 的标签
ports:
- protocol: TCP
port: 80
targetPort: 80
type: ClusterIP
port: 80 # 服务暴露的端口Ingress 转发请求到该端口)
targetPort: 80 # 转发到 Nginx 容器暴露的 80 端口
type: ClusterIP # 集群内部访问(外部通过 Ingress 间接访问 Nginx 服务)
# 第三部分Redis 缓存服务Service
---
apiVersion: v1
kind: Service
metadata:
name: redis
name: redis # Service 名称,需与 Django 应用配置中访问 Redis 的服务名一致
namespace: djangoblog
labels:
app: redis
spec:
selector:
app: redis
app: redis # 匹配 Redis Pod 的标签
ports:
- protocol: TCP
port: 6379
targetPort: 6379
type: ClusterIP
port: 6379 # 服务暴露的端口Redis 默认端口)
targetPort: 6379 # 转发到 Redis 容器暴露的 6379 端口
type: ClusterIP # 仅集群内部访问(缓存服务无需外部暴露)
# 第四部分MySQL 数据库服务Service
---
apiVersion: v1
kind: Service
metadata:
name: db
name: db # Service 名称,需与 Django 应用配置中访问数据库的服务名一致
namespace: djangoblog
labels:
app: db
spec:
selector:
app: db
app: db # 匹配 MySQL Pod 的标签
ports:
- protocol: TCP
port: 3306
targetPort: 3306
type: ClusterIP
port: 3306 # 服务暴露的端口MySQL 默认端口)
targetPort: 3306 # 转发到 MySQL 容器暴露的 3306 端口
type: ClusterIP # 仅集群内部访问(数据库服务禁止外部直接访问,保障安全)
# 第五部分Elasticsearch 搜索引擎服务Service
---
apiVersion: v1
kind: Service
metadata:
name: elasticsearch
name: elasticsearch # Service 名称,需与 Django 应用配置中访问 ES 的服务名一致
namespace: djangoblog
labels:
app: elasticsearch
spec:
selector:
app: elasticsearch
app: elasticsearch # 匹配 Elasticsearch Pod 的标签
ports:
- protocol: TCP
port: 9200
targetPort: 9200
type: ClusterIP
port: 9200 # 服务暴露的端口ES HTTP 接口默认端口)
targetPort: 9200 # 转发到 ES 容器暴露的 9200 端口
type: ClusterIP # 仅集群内部访问(搜索引擎无需外部直接暴露)
Loading…
Cancel
Save