service服务发现ClusterIP方式
1.暴露deployment服务
kubectl expose deployment nginx4 --port=8000 --target-port=80 等同于 kubectl expose deployment nginx4 --port=8000 --target-port=80 --type=ClusterIP service/nginx4 exposed
说明:
expose 暴露端口
deployment 暴露给谁
--port=8000 暴露的端口
--target-port=80 目标pod的开放端口
2.查看开放的service发现
kubectl get service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 13d nginx4 ClusterIP 10.96.226.218 <none> 8000/TCP 13s
3.删除service服务发现
Kubectl delete svc 服务名
4.测试,集群内任意机器访问service IP,三个pod就会负载均衡的调用
yang@k8s-master:~$ curl 10.96.226.218:8000 3333 yang@k8s-master:~$ curl 10.96.226.218:8000 2222 yang@k8s-master:~$ curl 10.96.226.218:8000 1111
5.查看pod标签
kubectl get pod --show-labels NAME READY STATUS RESTARTS AGE LABELS nginx4-db67c7b65-6tszx 1/1 Running 1 23h app=nginx4,pod-template-hash=db67c7b65 nginx4-db67c7b65-ndq8f 1/1 Running 1 23h app=nginx4,pod-template-hash=db67c7b65 nginx4-db67c7b65-vrkk9 1/1 Running 1 23h app=nginx4,pod-template-hash=db67c7b65
说明:每个pod都有一个标签,访问时会通过查找pod中app=nginx4的标签,同时service会将一组pod暴露成对外的统一服务,以后只需要通过serviceIP+端口就可以负载均衡的访问service内的所有pod,并且具备服务发现能力,不管是pod上线或者下线,都会自动加入到service中。
域名访问方式(只能在pod内,主机上是不能访问的):
服务名.所在名称空间.svc:端口
curl nginx4.default.svc:8000
=========================================================================
service服务发现NodePort方式
yang@k8s-master:~$ kubectl expose deployment nginx4 --port=8000 --target-port=80 --type=NodePort service/nginx4 exposed yang@k8s-master:~$ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 14d nginx4 NodePort 10.96.16.194 <none> 8000:31833/TCP 12s
说明:
此部署方式,三台机器任意一台都可以使用公网IP+暴露的端口进行负载均衡的访问
标签:两种,service,--,nginx4,kubenetes,pod,8000,port From: https://www.cnblogs.com/yangzp/p/16834967.html