官方文档地址:https://cloud.google.com/container-engine/docs/services/operations
先看一个服务的配置文件
{
“kind”: “Service”,
“apiVersion”: “v1″,
“metadata”: {
“name”: string
},
“spec”: {
“ports”: [{
“port”: int,
“targetPort”: int
}],
“selector”: {
string: string
},
“type”: “LoadBalancer”
}
}
创建服务的命令也是kubectl create -f FILE
针对配置文件的选项:
kind:永远是Service(因为创建的使service,纯废话)
apiVersion:现在使v1
metadata 包含如下字段:
name:服务的名称
spec:包含如下字段:
ports:需要座端口转发的端口(就是对应的端口),就是服务暴露给集群的端口,通过这个端口可以访问服务,targetPort 是那些真正组成这个服务的那些node暴露的端口
selector:标签选择器,根据这个值与pod的标签值,来确定这个服务有哪些Pod组成
type:这个使可选的,LoadBalancer的话会申请一个负载群衡器来给服务使用
如下配置文件是建立在我们已经创建了一系列的Pod,这些pod都暴露的9376端口,并且都包含标签app=example
第一个:
{
“kind”: “Service”,
“apiVersion”: “v1″,
“metadata”: {
“name”: “myapp”
},
“spec”: {
“ports”: [{
“port”: 8765,
“targetPort”: 9376
}],
“selector”: {
“app”: “example”
}
}
}
第二个:
{
“kind”: “Service”,
“apiVersion”: “v1″,
“metadata”: {
“name”: “myapp”
},
“spec”: {
“ports”: [{
“port”: 8765,
“targetPort”: 9376
}],
“selector”: {
“app”: “example”
},
“type”: “LoadBalancer”
}
}
第一个创建的并没有load balancer;我们可以通过访问任何node的8765端口访问;第二个使用了LoadBalancer,这个时候创建了一个单独的IP地址,这个IP地址会转发相关的请求到各个NODE,为了访问这个服务,
Latest posts by Zhiming Zhang (see all)
- aws eks node 自动化扩展工具 Karpenter - 8月 10, 2022
- ReplicationController and ReplicaSet in Kubernetes - 12月 20, 2021
- public key fingerprint - 5月 27, 2021