k8s学习第12天

Service

Service的主要功能用提供服务网格功能,通过service能够为客户端应用提供稳定的访问地址和负载均衡能力,以及屏蔽后端Endpoint的变化,是k8s实现微服务的核心资源。下面给出案例:

pod集群

启动了两个tomcat副本

apiVersion: apps/v1
kind: Deployment
metadata:name: webapp
spec:replicas: 2selector:matchLabels:app: webapptemplate:metadata:labels:app: webappspec:containers:- name: webappimage: kubeguide/tomcat-app:v1ports:- containerPort: 8080
kubectl get pods  -l app=webapp -o wide
NAME                      READY   STATUS    RESTARTS   AGE   IP              NODE     NOMINATED NODE   READINESS GATES
webapp-5759bc56f7-9cbzl   1/1     Running   0          24m   192.168.61.30   scms01              
webapp-5759bc56f7-t8z62   1/1     Running   0          24m   192.168.61.31   scms01              

分别访问2个机器的地址

 curl 192.168.61.30:80
...curl 192.168.61.31:80
Apache Tomcat/8.0.35
...

创建service

  •  expose
  • kubectl expose deployment webapp

  • 使用yaml文件
  • apiVersion: v1
    kind: Service
    metadata:name: webapp
    spec:ports:#通信协议   - protocol: TCP#service的端口port: 8080#目标端口targetPort: 8080selector:#选择对应的标签app: webapp
    ~                 
    [root@scms01 day10]# kubectl get svc |grep webapp
    webapp          ClusterIP   10.97.164.74             8080/TCP         21m
    [root@scms01 day10]# 

    直接访问这个地址就可以实现负载均衡

     curl 10.97.164.74:8080

    如果pod列表出现变化,则k8s会实时更新service对应的后端pod列表。一个service对应的后端由pod和IP和容器端口号组成,即一个完整的IP:PORT访问地址,这在k8s中叫Endpoint

  • 查看Endpoint列表

  • [root@scms01 day10]# kubectl describe svc webapp
    Name:              webapp
    Namespace:         default
    Labels:            
    Annotations:       
    Selector:          app=webapp
    Type:              ClusterIP
    IP Family Policy:  SingleStack
    IP Families:       IPv4
    IP:                10.97.164.74
    IPs:               10.97.164.74
    Port:                8080/TCP
    TargetPort:        8080/TCP
    Endpoints:         192.168.61.30:8080,192.168.61.31:8080
    Session Affinity:  None
    Events:            

实际上,k8s会自动创建service和Endpoint资源对象的关联关系,通过一下命令查看

[root@scms01 day10]# kubectl get endpoints |grep  webapp
webapp          192.168.61.30:8080,192.168.61.31:8080  


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部