kubernets service

service调用的三种工作模式

    1)userspace : v1.1-

    2)  iptables:v1.10-

   3) ipvs: 1.11+

 ## ClusterIP,NodePort

       NodePort:client --> NodeIP:NodePort --> ClusterIP:ServicePort -->PodIP:containerPort

       LoadBalancer

       ExternalName

           FQDN

                CNAME ---> FQDN

  NoCluterIP: Headleass Service

      ServiceName --> PodIP

如果没安装ipvs会降级到iptables模式

 service类型:

   ExternalName    ClusterIP  NodePort  and LoadBalancer

资源记录:

   SVN_NAME,NS_NAME,DOMAIN.LTD.

  svc.cluster.local.

 比如redis   redis.default.svc.cluster.local.

查看标签

  kubectl get pods --show-lables

第一个service yaml文件

apiVersion: v1
kind: Service
metadata:
  name: redis
  namespace: default
spec:
  selector:
    app: redis
    role: logstor
  clusterIP: 10.97.97.97
  type: ClusterIP
  ports:
  - port: 6379 # service port
    targetPort: 6379  #pod port 

为deployment配置service

apiVersion: v1
kind: Service
metadata:
  name: myapp
  namespace: default
spec:
  selector:
    app: myapp
    release: canary
  clusterIP: 10.99.99.99
  type: NodePort
  ports:
  - port: 80 # service port
    targetPort: 80  #pod port
    nodePort: 30080

 可以给service 增加sessionAffinity参数,表示同一客户端的请求将发送到同一个后端,默认为None

 kubectl patch svn myapp  -p '{"spec":{"sessionAffinity":"ClusterIP"}}' 

apiVersion: v1
kind: Service
metadata:
  name: myapp1
  namespace: default
spec:
  selector:
    app: myapp
    release: canary
  clusterIP: None
  ports:
  - port: 80 # service port
    targetPort: 8080  #pod port

因为没有指定clusterIP,所以解析会指向CoreDns,使用如下命令来核实刚创建的svn对应的解析情况:

[root@master mytest]# dig -t A myapp1.default.svc.cluster.local. @10.96.0.10

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.6 <<>> -t A myapp1.default.svc.cluster.local. @10.96.0.10
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7141
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;myapp1.default.svc.cluster.local. IN	A

;; ANSWER SECTION:
myapp1.default.svc.cluster.local. 30 IN	A	10.244.2.24
myapp1.default.svc.cluster.local. 30 IN	A	10.244.1.24

;; Query time: 334 msec
;; SERVER: 10.96.0.10#53(10.96.0.10)
;; WHEN: Sat Jul 25 22:49:24 CST 2020
;; MSG SIZE  rcvd: 157

  

 

posted @ 2020-07-25 21:45  netma  阅读(101)  评论(0)    收藏  举报