服务暴露
Service类型说明
| 类型 | 说明 | 使用场景 |
|---|---|---|
| ClusterIP | 集群内部访问 | 微服务间通信 |
| NodePort | 通过节点端口暴露 | 开发测试 |
| LoadBalancer | 云厂商负载均衡 | 生产环境 |
| ExternalName | 映射外部域名 | 访问外部服务 |
Service配置示例
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
name: nginx-nodeport
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30080
type: NodePort
Ingress配置示例
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: app.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: app-service
port:
number: 80
- host: api.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: api-service
port:
number: 8080
tls:
- hosts:
- app.example.com
- api.example.com
secretName: tls-secret