一个容器应用可以提供多个端口的服务,在service 的定义中也可以相应地设置多个端口号。
在下面的例子中,service设置了两个端口号来分别提供不同的服务,如web 服务和management 服务(下面为每个端口号都进行了命名,以便区分):
apiVersion: v1
kind: Service
metadata:
name: webapp
spec:
ports:
- port: 8080
targetPort: 8080
name: web
- port: 8005
targetPort: 8005
name: management
selector:
app: webapp
另一个例子是同一个端口号使用的协议不同,如TCP 和 UDP ,也需要设置为多个端口号来提供不同的服务:
apiVersion: v1
kind: Service
metadata:
name: kube-dns
namespace: kube-system
labels:
k8s-app: kube-dns
kubernetes.io/cluster-service: "true"
kubernetes.io/name: "KubeDNS"
spec:
selector:
k8s-app: kube-dns
clusterIP: 169.169.0.100
ports:
- name: dns
port: 53
protocol: UDP
- name: dns-tcp
port: 53
protocol: TCP
|