kubernetes service 主要作用为 映射pod,有四种方式

  • ExternalName
  • ClusterIP 内部pod使用,分配ClusterIP
  • NodePort 配置后可通过直接访问宿主机加端口访问
  • LoadBalancer

同样可以通过 explain 查看具体参数

svc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
apiVersion: v1
kind: Service
metadata:
name: redis
namespace: default
spec:
selector:
app: myapp
clusterIP: 10.99.97.97
sessionAffinity: None
type: NodePort
ports:
- port: 80
targetPort: 80
nodePort: 30080

svc的配置和 其他 yaml 基本相似,也是由apiVersion kind metadata spec 四部分组成

最重要部分为 spec.selector,主要标签过滤 pod 进行转发

type 类型也决定了你想通过何种方式进行访问此svc

当类型为 NodePort 时候才需要配置nodePort