1. 9.1 Service介绍和管理
1.1.1. 创建Service
继续我们Nginx的案例,我们为之前的应用创建一个Service
[root@linux-node1 ~]# cat nginx-service.yaml
kind: Service
apiVersion: v1
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
- 第1行:定义资源类型为Service
- 第2行:定义当前Service API的版本
- 第3行:metadata设置
- 第4行:设置Service的名称为nginx-service
- 第5行:spec: 开始设置Service的内容
- 第6行:selector: 为该Service指定一个匹配的标签
- 第7行:app: nginx 所有带有标签app :nginx的Pod将使用该Service
- 第8行:ports: 指定Service需要对外的端口
- 第9行:设置端口协议:支持TCP和UDP
- 第10行:设置Service的端口
- 第11行:设置Pod的端口,Kubernetes会将发送给Service端口的连接,转发到Pod的端口上。
创建Nginx Service
[root@linux-node1 ~]# kubectl create -f nginx-service.yaml
service "nginx-service" created
查看Nginx Service
[root@linux-node1 ~]# kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.1.0.1 <none> 443/TCP 7h
nginx-service ClusterIP 10.1.184.53 <none> 80/TCP 25s
访问Servce IP
[root@linux-node1 ~]# curl --head 10.1.181.45
HTTP/1.1 200 OK
Server: nginx/1.11.10
Date: Tue, 21 Feb 2017 08:20:42 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 14 Feb 2017 15:36:04 GMT
Connection: keep-alive
ETag: "58a323e4-264"
Accept-Ranges: bytes