k8s-service暴露pod

news2024/9/20 20:50:10

service暴露pod----nginx

1.编写nginx-deployment.yaml文件

[root@k8s-master deployment]# vim nginx-deployment.yaml
[root@k8s-master deployment]# cat nginx-deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: deployment
  namespace: default
spec:
  selector:
    matchLabels:
      app: web
  replicas: 2
  template:
    metadata:
      name: test-nginx
      labels:
        app: web
    spec:
      containers:
      - name: test-nginx
        image: daocloud.io/library/nginx
        ports:
        - containerPort: 80

2.应用并查看

[root@k8s-master deployment]# kubectl apply -f nginx-deployment.yaml 
deployment.apps/nginx-deployment created
[root@k8s-master deployment]# kubectl get pod |grep nginx-deployment
nginx-deployment-c68c96bb7-g9xqn   1/1     Running       0             90s
nginx-deployment-c68c96bb7-mthsb   1/1     Running       0             90s

3.编写nginx-service.yaml文件

[root@k8s-master deployment]# vim nginx-service.yaml

[root@k8s-master deployment]# cat nginx-service.yaml 
apiVersion: v1
kind: Service
metadata: 
  name: my-service
spec:
  type: NodePort                #类型,以NodePort的方式暴露端口给外网
  ports:                        
    - nodePort: 30005                #node节点暴露的端⼝
      port: 8080                        #ClusterIP的端⼝
      targetPort: 80                #pod节点的端⼝
  selector:                #标签选择器
    app: web

4.应用并测试

[root@k8s-master deployment]# kubectl get service
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   9d
[root@k8s-master deployment]# kubectl apply -f nginx-service.yaml 
service/my-service created
[root@k8s-master deployment]# kubectl get service
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP          9d
my-service   NodePort    10.111.86.105   <none>        8080:30005/TCP   5s
[root@k8s-master deployment]# kubectl get endpoints
NAME         ENDPOINTS                       AGE
kubernetes   192.168.22.139:6443             9d
my-service   10.244.1.33:80,10.244.2.29:80   41s

5.打开浏览器输入node节点IP:端口测试

 Service暴露pod----tomcat

1.编写yaml文件----deployment与service一同创建

[root@k8s-master deployment]# vim tomcat-deploy.yaml

[root@k8s-master deployment]# cat tomcat-deploy.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: tomcat
  namespace: default
spec:
  selector:
    matchLabels:
      app: tomcat
  replicas: 2
  template:
    metadata:
      labels:
        app: tomcat
    spec:
      containers:
      - name: tomcat
        image: daocloud.io/library/tomcat:7.0.76-alpine
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: my-tomcat
spec:
  type: NodePort
  ports:
    - nodePort: 31000                   #是有一个范围,在30000~32457之间
      port: 8081                     #ClusterIP的端⼝,8080端口上述nginx已使用   
      targetPort: 8080
  selector:
    app: tomcat

2.应用并查看

[root@k8s-master deployment]# kubectl apply -f tomcat-deploy.yaml 
deployment.apps/tomcat created
service/my-tomcat created

[root@k8s-master ~]# kubectl get svc
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP          9d
my-service   NodePort    10.111.86.105   <none>        8080:30005/TCP   39m
my-tomcat    NodePort    10.105.150.1    <none>        8081:31000/TCP   7s
[root@k8s-master ~]# kubectl get endpoints
NAME         ENDPOINTS                           AGE
kubernetes   192.168.22.139:6443                 9d
my-service   10.244.1.33:80,10.244.2.29:80       40m
my-tomcat    10.244.2.25:8080,10.244.2.31:8080   61s

3.打开浏览器输入node节点IP:端口测试

端口详解

1. nodePort
        nodePort是 kubernetes 提供给集群外部客户访问 service ⼊⼝的⼀种⽅式(另⼀种⽅式是 LoadBalancer),所以, <nodeIP>:nodePort 是提供给集群外部客户访问 service 的⼊⼝;
2.port
         这⾥的 port 表示: service 暴露在 cluster ip 上的端⼝, cluster ip:port 是提供给集群内部 客户访问 service 的⼊⼝;
3.targetPort

         targetPort很好理解,targetPortpod上的端⼝,从portnodePort上到来的数据最终经过kube-proxy流⼊到后端podtargetPort上进⼊容器;

kube-proxy反向代理

         kube-proxy与iptables
        当service有了port和nodePort之后,就可以对内/外提供服务。那么其具体是通过什么原理来实现的呢?原因就在kube-proxy在本地node上创建的iptables/ipvsadm规则;
        Kube-Proxy 通过配置 DNAT 规则(从容器出来的访问,从本地主机出来的访问两⽅⾯),将到这个服 务地址的访问映射到本地的kube-proxy端⼝(随机端⼝);然后  Kube-Proxy 会监听在本地的对应端⼝,将到这个端⼝的访问给代理到远端真实的 pod 地址上去;
         不管是通过集群内部服务⼊⼝:port还是通过集群外部服务⼊⼝:nodePort的请求都将重定向到本地kube- proxy端⼝(随机端⼝)的映射,然后将到这个kube-proxy端⼝的访问给代理到远端真实的  pod 地址上 去;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1984890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二进制部署Mysql8.0.31

一、软件包下载 企业版&#xff1a;Enterprise , 互联网行业一般不选择.社区版本&#xff1a;选择源码包 编译安装&#xff1a; source code .tar.gz 通用二进制 公司用什么版本数据库? 具体什么小版本号? 5.6.20 5.6.34 5.6.36 5.6.38 5.6.40 5.7.18 5.7.20 5…

【初阶数据结构】详解顺序表(上)

文章目录 1. 数据结构2. 顺序表2.1 顺序表的概念及结构2.1.1 线性表2.1.2 顺序表与数组的差别 2.2 顺序表的分类2.2.1 静态顺序表2.2.2 动态顺序表 2.3 静态顺序表和动态顺序表的区别 在学完C语言的知识后&#xff0c;我们也该跨入到学习数据结构的领域中来。毕竟学习语法是为解…

带风扇工业电脑行业分析:预计2030年全球市场规模将达到45.8亿美元

工业电脑是用于工业用途&#xff08;生产产品和服务&#xff09;的计算机&#xff0c;其外形尺寸介于上网本和服务器机架之间。工业电脑的可靠性和精度标准更高&#xff0c;价格通常比消费电子产品更昂贵。它们通常使用复杂的指令集&#xff0c;例如 x86&#xff0c;而其他指令…

用的到linux-tomcat端口占用排查-Day5

前言&#xff1a; 最近使用tomcat搭建了一套测试环境的应用&#xff0c;整个搭建过程也很简单&#xff0c;就是将部署包上传至服务器☞解压☞启动tomcat服务器&#xff0c;当然服务器也是成功启动了&#xff0c;但是发现前端应用报404&#xff0c;具体如下图所示。 一、现象及思…

新手买智能猫砂盆怎样不踩雷?三大热门款测评推荐!

上班族养猫最害怕的就是&#xff0c;辛苦一天回到家&#xff0c;发现家里弥漫着猫便便的味道和满盆的猫屎&#xff0c;满地的猫砂&#xff0c;就感觉整个人都绝望了&#xff0c;你们现在是不是这样&#xff1f;以前的我真是为了解决这个问题想破了脑袋&#xff0c;后面才了解到…

电话营销机器人革新电销行业

第一&#xff0c;减少企业各方面的支出 企业需要各方面的支出。例如&#xff0c;招聘成本和管理成本、员工薪资和社保都是非常大的支出。但AI智能电销机器人&#xff0c;只要购买费用和电话费的一小部分&#xff0c;就没有更多的费用。经计算&#xff0c;该机器人的成本仅相当于…

java之静态内部类

1.什么是静态内部类 答:静态内部类是一种特殊的成员内部类 2.直接创建静态内部类对象的方式? Outer.Inner oinew Outer.Inner(); public class Outer {int a10;static int b20;static class Inner{public void show1(){System.out.println("非静态里的方法被调用了&qu…

【Qt】探索Qt网络编程:构建高效通信应用

文章目录 前言&#xff1a;1. Qt 网络编程介绍1.1 什么是网络编程&#xff1f;1.2 Qt的模块 2. UDP Socket2.1 核心 API 概述2.2 写一个带有界面的 Udp 回显服务器2.3 写一个带有界面的 Udp 客户端 3. TCP Socket3.1 核心 API 概述3.2 代码&#xff1a; 4. HTTP Client4.1 核心…

基于InP的通用光子集成技术(五)

Meint Smit et al 2014 Semicond. Sci. Technol. 29 083001 9.通用测试 9.1. 晶圆验证 在通用工艺中&#xff0c;必须对每批次晶片的工艺性能进行验证&#xff1b;客户将期待这样的验证。在MPW中&#xff0c;验证用户ASPIC工艺性能是不实际的&#xff1b;每个ASPIC都需要不同的…

Shopee巴西站点凭直播带货超越亚马逊,shopee巴西站热销类目有哪些?

巴西电商市场加速增长&#xff0c;被誉为跨境最后一个蓝海市场&#xff0c;吸引了众多卖家和电商平台的关注。在这一片潜力无限的热土上&#xff0c;有人隔岸观火等待时机&#xff1b;有人却果断迈步积极探索。东南亚及台湾地区的领航电商平台Shopee平台&#xff0c;在巴西强势…

【Python机器学习】利用AdaBoost元算法提高分类性能——在数据集上应用AdaBoost

在之前用过的马疝病数据集上应用AdaBoost。 在一个难数据集上的AdaBoost应用步骤&#xff1a; 1、收集数据&#xff1a;提供的文本文件 2、准备数据&#xff1a;确保类别标签是1河-1而不是1和0 3、分析数据&#xff1a;手工检查数据 4、训练算法&#xff1a;在数据上&#xff…

java-面向对象综合练习

1、文字格斗回合制游戏 需求: 格斗游戏&#xff0c;每个游戏角色的姓名&#xff0c;血量&#xff0c;都不相同&#xff0c;在选定人物的时候&#xff08;new对象的时候&#xff09;&#xff0c;这些信息就应该被确定下来。 举例&#xff1a; 程序运行之后结果为&#xff1a…

加密软件中的RSA和ECC的主要区别是什么

在加密软件中&#xff0c;RSA&#xff08;Rivest-Shamir-Adleman&#xff09;和ECC&#xff08;Elliptic Curve Cryptography&#xff0c;椭圆曲线密码学&#xff09;是两种广泛使用的非对称加密算法&#xff0c;它们之间存在多个关键区别。 1. 算法基础 RSA&#xff1a;基于大…

RPA+AI有什么应用?6大技术融合方向分析 | 实在RPA研究

随着数字化转型的加速&#xff0c;企业正寻求更高效、智能的方法来优化业务流程。机器人流程自动化&#xff08;RPA&#xff09;作为一种快速兴起的技术&#xff0c;已经证明了其在自动化重复性任务方面的能力。然而&#xff0c;当RPA与各种人工智能&#xff08;AI&#xff09;…

外部时钟传送带测量装置

外部时钟&传送带测量装置 1.外部时钟介绍2.循迹模块3.实操过程1.设置2.代码3.效果 链接: keysking-17 1.外部时钟介绍 将GPIO的外部电平接入即可对外部信号进行计数(PS&#xff1a;上面的内部时钟不是所谓的“高速内部时钟”&#xff0c;而是APB1的定时器分支)。当然,GPIO…

zabbix“专家坐诊”第250期问答

问题一 Q&#xff1a;乐维监控社区版监控交换机&#xff0c;能统计出端口的IP流量排名吗&#xff1f; A&#xff1a;社区版没有这个功能 &#xff0c;正式版&#xff0c;流量报表可以实现端口IP流量排行。 问题二 Q&#xff1a;我看了一下乐维有事件平台汇总的功能&#xff0…

浅谈逻辑控制器插件之jp@gc - Parameterized Controller

浅谈逻辑控制器插件之jpgc - Parameterized Controller jpgc - Parameterized Controller是JMeter的一个强大插件&#xff0c;由JMeter Plugins项目提供。此插件允许用户以更加灵活和动态的方式控制测试计划中的采样器执行逻辑。它通过引入参数化概念&#xff0c;使得单个控制…

【学术会议征稿】第四届电气工程与计算机技术国际学术会议(ICEECT2024)

第四届电气工程与计算机技术国际学术会议&#xff08;ICEECT2024&#xff09; 2024 4th International Conference on Electrical Engineering and Computer Technology 第四届电气工程与计算机技术国际学术会议&#xff08;ICEECT2024&#xff09;将于9月27日-29日在哈尔滨举…

汇编语言入门基础(概述)

目录 概述: 1.1 汇编语言与汇编指令 1.2 汇编语言编写程序的工作过程 1.3 数据的表示 1.4 计算机中的存储单元 1.5 计算机中的总线 1.5.1 三种总线 1.5.2 x86CPU性能一览 1.6 内存的读写与地址空间 1.6.1 CPU对存储器的读写 1.6.2 内存地址空间 1.6.3 内存地址空间…

linux虚拟机设置固定ip

修改/etc/sysconfig/network-scripts目录下ifcfg-eth0文件&#xff0c;各虚拟机这个文件名不一致&#xff0c;ifcfg-XX格式 vim /etc/sysconfig/network-scripts/ifcfg-eth0BOOTPROTO设置为static&#xff0c;然后在最后添加固定IP地址和默认网关、DNS等配置&#xff0c;IP地址…