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
浙公网安备 33010602011771号