service代理模式及负载均衡
[root@k8s-master ~]# vim service.yaml
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: MyApp
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
- name: https
protocol: TCP
port: 443
targetPort: 443
[root@k8s-master ~]# kubectl get all
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
svc/kubernetes ClusterIP 10.10.10.1 <none> 443/TCP 5d
svc/nginx-service ClusterIP 10.10.10.85 <none> 88/TCP 20h
[root@k8s-master ~]# kubectl create -f service.yaml
[root@k8s-master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.10.10.1 <none> 443/TCP 5d
my-service ClusterIP 10.10.10.212 <none> 80/TCP,443/TCP 24s
nginx-service ClusterIP 10.10.10.85 <none> 88/TCP 20h
查看pod的标签,用标签来识别,并代理到后端的服务上
[root@k8s-master ~]# kubectl get pod --show-labels -o wide
nginx-pod 1/1 Running 1 17h 172.17.80.4 192.168.30.23 app=nginx
修改我们创建的my-service,把标签改为nginx,然后我们访问我们的my-service分配的clusterIP就能直接代理到后端的Nginx上了
[root@k8s-master ~]# kubectl edit svc/my-service
访问10.10.10.212:80
[root@k8s-node1 ~]# curl 10.10.10.212:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
[root@k8s-node2 ~]# curl 10.10.10.212:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>