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

最新文章

  1. Microsoft Dynamics CRM 2013 Js Odata 查询
  2. pureftpd安装配置[总结]
  3. RHEL 6.3安装(超级详细图解教程)[转载]
  4. h264检测是I帧还是P帧,解决录像第一帧有马赛克问题
  5. 对&quot;一维最大子数组和&quot;问题的思考(homework-01)
  6. Anti-Grain Geometry 概述
  7. zTree在Asp.Net中的使用
  8. 素数判定 AC 杭电
  9. Java学习笔记——IO操作之对象序列化及反序列化
  10. UVA 11111-Generalized Matrioshkas(栈)
  11. css3滚动效果
  12. shell学习指南-阅读笔记
  13. submit()提交表单时,显示警示框
  14. vue中直接修改props中的值并未给出警告,为啥?
  15. scrapy之多环境的选择使用
  16. 脚本自动部署及监控 web
  17. 聚簇索引(clustered index )和非聚簇索引(secondary index)的区别
  18. Jmeter远程测试
  19. 自定义TableViewCell 的方式实现自定义TableView(带源码)
  20. 编写带有点击特效的UIButton

热门文章

  1. 探究BrainSplit-集群脑裂
  2. c++代码实现中时间复杂度的不断优化
  3. vivo 自研Jenkins资源调度系统设计与实践
  4. Vue框架:7、Node环境搭建,Vue-cli,es6导出、导入语法,跨域问题解决方法,小练习
  5. 跳板攻击之:EarthWorm代理转发
  6. ACR2022的辩论:DMARDs在pre-RA中的作用
  7. ELK 一些截图
  8. 微信小程序分享百度网盘文件的实现思路
  9. spring boot 3.x 配置spring security
  10. Mybatis-plus中通用mapper的CRUD(增、删、改、查)操作封装BaseMapper和IService(最详细)