所以最后的清单将是下一个:
apiVersion: v1
kind: Service
metadata:
name: apiserver-service
labels:
app: apiserver
spec:
selector:
app: apiserver
ports:
- protocol: TCP
port: 8080
targetPort: 8080
nodePort: 30005
type: NodePort
将用于定义特定的targetport
Service是一种抽象的方式,可以公开在一组pod上运行的应用程序。这是创建service
的清单,这里targetPort: 8080
是pod端口。在这个清单中基本上有两个部分,一个是metadata
,它给出了服务名称并给了它一个标签。然后是spec
部分,它是规范的简称,它基本上是服务的规范,这里给出了selector
,也指定了端口,port
代表服务端口,targetPort
代表服务发送请求的端口。通过nodePort
,外部世界(来自集群外部)可以与服务通信,最后type
表示服务的类型。如果type = NodePort
,那么它基本上意味着从集群外部的服务将公开一个端口(nodePort
)。
apiVersion: v1
kind: Service
metadata:
name: apiserver-service
labels:
app: apiserver
spec:
selector:
app: apiserver
ports:
- protocol: TCP
port: 8080
targetPort: 8080
nodePort: 30005
type: NodePort
Kubernetes服务文档中的第一个例子定义了一个服务,其中port:
和targetPort:
不同。
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: MyApp
ports:
- protocol: TCP
port: 80
targetPort: 9376