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+暴露的端口进行负载均衡的访问

 

posted @   西瓜君~  阅读(63)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
历史上的今天:
2020-10-28 mysql 8.0安装包下载地址
点击右上角即可分享
微信分享提示