kubernetes service服务发现两种方式
service服务发现ClusterIP方式
1.暴露deployment服务
1 2 3 4 5 | 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发现
1 2 3 4 5 6 7 | 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服务发现
1 | Kubectl delete svc 服务名 |
4.测试,集群内任意机器访问service IP,三个pod就会负载均衡的调用
1 2 3 4 5 6 7 8 9 10 11 | 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标签
1 2 3 4 5 6 7 8 9 | 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方式
1 2 3 4 5 6 7 8 9 10 11 | 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+暴露的端口进行负载均衡的访问
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
2020-10-28 mysql 8.0安装包下载地址