Kubernetes学习笔记(五)--- Service

2019-04-18  本文已影响0人  CaiGuangyin

目录

Service的三种工作模式:
Service的类型:
Service的会话粘性:
无头Service (Headless Service)

Service名词解释--中文文档

Service的三种工作模式:

Service的类型:

Service的会话粘性:

下面是一个完整的Service资源清单示例:

apiVersion: v1
kind: Service
metadata:
  name: redis-svc
  namespace: default
  labels:
    group: redis
spec:
  clusterIP: 10.106.106.106       # clusterIP就是给service分配的IP,如果不定这个字段,K8S会自动给service分配一个IP。
  selector:
    app: redis
    role: log_storage
  ports:
  - name: redis               # 给端口取个名称
    protocol: TCP             # 协议,默认就是TCP
    port: 6379                # service的端口
    targetPort: 6379          # Pod的端口 

无头Service (Headless Service)

无头Service没有ClusterIP。直接将Service名称解析到后端Pod的IP。
在定义无头Service时,只需要将clusterIP设为None即可。

清单文件内容如下:

[root@k8s-master manifests]# cat myapp-headless-svc.yaml 
apiVersion: v1
kind: Service
metadata:
  name: myapp-headless-svc
  namespace: default
spec:
  clusterIP: None            # 关键点,将clusterIP设为None
  selector:
    app: myapp
    release: canary
  ports:
  - name: http
    port: 80
    targetPort: 80

创建:kubectl apply -f myapp-headless-svc.yaml

查看创建成功的无头Service


image.png

利用dig命令去解析myapp-headless-svc,最终解析到的是五个后端Pod的IP
命令:dig -t A myapp-headless-svc.default.svc.cluster.local. @10.96.0.10

image.png

命令:kubectl get pods -l app=myapp,release=canary -o wide

image.png
上一篇下一篇

猜你喜欢

热点阅读