Kubernetes (七) service(微服务)及Ingress-nginx

news2024/11/16 8:35:27

      官网地址:   服务(Service) | Kubernetesicon-default.png?t=N7T8https://v1-24.docs.kubernetes.io/zh-cn/docs/concepts/services-networking/service/

一 . 网络通信原理                                                                                                             

二. service作用及类型

三.   IPVS模式设置                                                                                                                          

      kubelet管理容器生命周期        kube-proxy是管理网络流量的   

          1.    安装查看策略工具

          2.    修改 kube-proxy配置

          3.  修改配置后需要重载或重启服务,这里直接删除重建

            4.  可以用ip a 查看网络信息(会出现虚拟网卡ipvs0)

  IPVS模式下,kube-proxy会在service创建后,在宿主机上添加一个虚拟网卡并分配service IP  

             5.   查看策略

    kube-proxy通过linux的IPVS模块,以rr轮询的方式调度service中的pod                                     

            6. 查看其他节点的mac地址

  四. 修改flannel网络模式                                                                                                 

            1. 改为主机网关模式并删除pod自动重建使其生效

           此时查看已经生效

  五. 开始创建service(默认为ClusterIP)

              1.  创建编辑文件           vim clusterip.yaml

               2. 使其生效并查看svc

               3. 通过之前deployment控制器创建pod并使其生效

             4.  查看service详情

            5. 此时ip a查看到多了service暴露的IP

             6. 查看策略且为负载均衡

             7. 查看dns解析

  六. Headless Service服务                                                                                                     

                 1. 创建编辑文件               vim headless.yaml

                2. headless通过svc名称访问,由集群内dns提供解析

   七. 开始创建service(Nodeport)                                                                                      

       在每个集群节点设置了端口,只要访问给定的端口就可以访问服务               

             1. 创建编辑文件         vim nodeport.yaml

             2. 应用后查看svc     (nodeport就是在ClusterIP上绑了一个端口) 

              3. 也可以直接修改类型           kubectl edit svc my-nginx

            4. 此时用集群外访问任何一个节点都可以

      访问集群任何一个节点端口时候,流量就到达集群,然后转发到集群内的vip

            5. 指定端口方法      vim /etc/kubernetes/manifests/kube-apiserver.yaml
                                         (nodeport默认端口范围:30000-32767)修改后api-server会自动重启

           6.  在编辑文件添加参数后重新应用即可

八. 开始创建service(LoadBalancer)                                                                               

LoadBalancer在集群外是有负载均衡的,并不是k8s的功能,是从公有云平台分配的地址,直接访问给的地址会直接转发到节点端口nodeport上,在进入到集群内,这样一个服务就可以分配一个地址                                                                                                                                       

           1. 创建编辑文件      vim loadbalancer.yaml

          2. 应用后查看处于Pending状态表示没有分配IP  (只要访问分配的IP就转发到指定端口) 

  因为公有云要收费 metallb用来实现在私有化搭建的裸机环境中实现负载均衡器的功能,在没有云环境的情况下通过metallb将service暴露到网络环境中,供其他系统访问。
裸金属环境中模拟云端环境,分配ip
它的作用就是通过k8s原生的方式提供LB(LoadBalancer )类型的Service支持,开箱即用。
  官网: MetalLB, bare metal load-balancer for Kubernetes

          1. 修改配置文件            kubectl edit configmap -n kube-system kube-proxy

        2.  删除kube-proxy里边的pod自动重建

        3.  下载部署文件       

   wget https://raw.githubusercontent.com/metallb/metallb/v0.13.9/config/manifests/metallb-native.yaml                                                                     

       4. 编辑文件  将两个镜像路径修改和仓库一致    新创建的目录 metallb/vim metallb-native.yaml

        5.  仓库创建新项目将上面所需镜像下载上传进去

           3.  应用配置文件并查看pod就绪

           4.  创建编辑文件              vim config.yaml

          5.  应用后查看分配地址成功 且集群外可以访问

九 . 开始创建service(externalname)                                    

再做一些应用迁移时候常用,有的应用在集群内,有的应用在集群外,一般用来迁移应用.外部资源变更的时候我们只需要更改资源设置就行,而不用变更我们的应用连接

               1. 创建编辑文件               vim externalname.yaml

               2. 用命令查看解析

            3. 更改对外连接资源查看

十.  Ingress-nginx                                                                                                           

Ingress | Kubernetesicon-default.png?t=N7T8https://v1-24.docs.kubernetes.io/zh-cn/docs/concepts/services-networking/ingress/

     (1)功能简介         

(2)下载官方地址:Installation Guide - Ingress-Nginx Controller (kubernetes.github.io)

(3)开始部署实验环境           

                  1. 下载部署文件

                2. 查看所需镜像下载并修改三处镜像为仓库路径

              3. 创建新的项目将镜像上传进去

                 4.  应用文件并查看pod情况

                5. 将my-nginx控制器loadbalancer模式改为ClusterIP

方便实验将这里修改,因为Clusterip只能在集群内访问,为了测试Ingress功能,用ingress七层方式把应用暴露出去                                                                                                            

    开始Ingress控制器环节   

                1. 修改Ingress控制器的类型

               2. 创建编辑文件并应用           vim myapp-deploy.yaml

           当访问不同域名的时候定义到不同的svc上                                                 

apiVersion: networking.k8s.io/v1

kind: Ingress

metadata:

  name: name-virtual-host-ingress

spec:

  ingressClassName: nginx

  rules:

  - host: nginx.westos.org

    http:

      paths:

      - pathType: Prefix

        path: "/"

        backend:

          service:

            name: my-nginx

            port:

              number: 80

  - host: myapp.westos.org

    http:

      paths:

      - pathType: Prefix

        path: "/"

        backend:

          service:

            name: my-myapp

            port

              number: 80

              3.  创建ingres路由规则,基于域名转发

             4.  Ingress规则必须和上面创建的两个svc必须处于同一个namespace

             5.  在集群外的主机上添加解析即可访问

  十一. Ingress TLS配置                                                                                                  

Basic Authentication - Ingress-Nginx Controller (kubernetes.github.io)icon-default.png?t=N7T8https://kubernetes.github.io/ingress-nginx/examples/auth/basic/

         1. 生成自签名证书 2.上面生成的tls两个文件在操作系统中存放,要让集群能够识别到,create将其创建为集群的资源

        3.  编辑文件添加模块后应用文件并详情查看是否成功       vim ingress.yaml

           4. 集群外访问即可

十二. auth认证(做完加密后做认证)                                                                                    

            1.  创建auth文件

           2. create将其创建为集群的资源

           3.编辑文件添加模块后应用文件并详情查看是否成功       vim ingress.yaml

           4.集群外尝试访问即可

  十三. Rewrite重定向                                                                                                               

            1. 编辑文件添加参数后应用       vim ingress.yaml

          2. 没修改前访问

          3. 修改后访问即重定向

          

              

       

       

          

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

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

相关文章

LLM主流框架:Causal Decoder、Prefix Decoder和Encoder-Decoder

本文将介绍如下内容: transformer中的mask机制Causal DecoderPrefix DecoderEncoder Decoder总结 一、transformer中的mask机制 在Transformer模型中,mask机制是一种用于在self-attention中的技术,用以控制不同token之间的注意力交互。具体…

JS加密/解密之js加密小工具

JS加密的原理和方法 什么是JS加密 JS加密是一种将js代码转换成不易被阅读和修改的形式的技术JS加密的目的是保护js代码的版权,防止被恶意篡改或盗用JS加密的难度和效果取决于加密算法的复杂性和安全性 JS加密的常见方法 压缩和混淆:将js代码的空格&a…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)HttpRequest模块 解析http请求协议

一、HTTP响应报文格式 HTTP/1.1 200 OK Bdpagetype: 1 Bdqid: 0xf3c9743300024ee4 Cache-Control: private Connection: keep-alive Content-Encoding: gzip Content-Type: text/html;charsetutf-8 Date: Fri, 26 Feb 2021 08:44:35 GMT Expires: Fri, 26 Feb 2021 08:44:35 GM…

Day27 回溯算法理论 77组合 216组合总和

回溯算法理论 回溯是一种效率并不高的穷举算法,因为用暴力算法都解决不了一些问题,所以才会考虑这个方法,它可以解决一系列问题: 组合问题:N个数里面按一定规则找出k个数的集合切割问题:一个字符串按一定规…

太平洋产险海南分公司:春季爱车保养,就看这几点!

一年之计在于春,春天不仅是万物复苏的好时节,也是一年中非常适合汽车养护的季节。 刚刚过去的春节,汽车的使用频率大大增加,很多车主都准备对爱车进行一次全面保养。加上立春过后,天气渐暖,许多车主也计划开…

提高iOS App开发效率的方法

引言 随着智能手机的普及,iOS App开发成为越来越受欢迎的技术领域之一。许多人选择开发iOS应用程序来满足市场需求,但是iOS App开发需要掌握一些关键技术和工具,以提高开发效率和质量。本文将介绍一些关键点,可以帮助你进行高效的…

基于SpringBoot的康复中心管理系统 JAVA简易版

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 普通用户模块2.2 护工模块2.3 管理员模块 三、系统展示四、核心代码4.1 查询康复护理4.2 新增康复训练4.3 查询房间4.4 查询来访4.5 新增用药 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的康复中…

Uncaught ReferenceError: videojs is not defined

项目场景: 项目背景: 开发 vue 项目时,调试时浏览器前端控制台 出现红色 报错信息: Uncaught ReferenceError: videojs is not defined 问题描述 遇到的问题: 开发 vue 项目时, 浏览器控制台出现如下所…

Vue-15、Vue条件渲染

1、v-show 在Vue中&#xff0c;v-show是一个指令&#xff0c;用于根据表达式的值来控制元素的显示与隐藏。当指令的值为true时&#xff0c;元素显示&#xff1b;当指令的值为false时&#xff0c;元素隐藏。 v-show的用法如下&#xff1a; <!DOCTYPE html> <html lan…

【REST2SQL】06 GO 跨包接口重构代码

【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 【REST2SQL】05 GO 操作 达梦 数据库 对所有关系数据的操作都只有CRUD&#xff0c;采用Go 的接口interface{}重构代码…

黑群晖6.x 7.x ABB Active Backup for Business 套件激活方法

注意事项&#xff1a; 要先下载安装好Active Backup for Business套件再操作。SN码在【控制面板】 - 【信息中心】 -【产品序列号】。建议复制到记事本内修改内容。群晖的https是默认的5001端口&#xff0c;如果你的https端口号换过请自行修改&#xff1a;5001 为当前的端口号…

应用在热能表领域中的数字温度传感芯片

热能表&#xff0c;是适用于测量在热交换环路中&#xff0c;被称作载热液体的液体所吸收或转换热能的仪器&#xff0c;它由流量传感器、温度传感器和热能积算仪三部分组成。热量表&#xff08;热表&#xff09;又称热能表、热能积算仪&#xff0c;既能测量供热系统的供热量又能…

Zabbix6.0全套落地方案-基于RHEL9系列源码编译安装-Linux+Nginx+Mysql+Redis生产级模板Agent2客户端一键部署

实践说明&#xff1a;基于RHEL9系列(CentOS9,AlmaLinux9,RockyLinux9等)&#xff0c;但适用场景不限于此&#xff0c;客户端一键部署安装包基于RHEL8和RHEL9。 文档形成时期&#xff1a;2023年 因系统或软件版本不同&#xff0c;构建部署可能略有差异&#xff0c;但本文未做细分…

便携式灯具的UL测试标准UL153介绍

UL153标准&#xff1a;UL153标准主要是描述有关使用电源线及插头作为连接工具,使用120伏电压,15或20安培的电源,并符合美国国家电器规范的便携灯.此标准也适用于那些不用插头,而用一些兼容的接线端作为连接工具的便携灯&#xff0c;同时对于使用非120伏电压&#xff0c;15or20安…

Google I/O大会:Android 13

3个体验升级的方向 以智能手机为场景核心、 扩大智能终端的应用边界以及实现多设备间更好地协同。具体到系统体验层&#xff0c;安卓13将支持图标颜色随主题更换、为不同应用设定使用的语言、新的媒体中心界面等等&#xff0c;同时谷歌也推出了自家的钱包应用&#xff08;Goog…

C++程序员必备的面试技巧

“程序员必备的面试技巧&#xff0c;就像是编写一段完美的代码一样重要。在面试战场上&#xff0c;我们需要像忍者一样灵活&#xff0c;像侦探一样聪明&#xff0c;还要像无敌铁金刚一样坚定。只有掌握了这些技巧&#xff0c;我们才能在面试的舞台上闪耀光芒&#xff0c;成为那…

雪花代码-html版

雪花代码 动画效果 代码 <!DOCTYPE html><html><head><style>body {background-color: #000000;}.snowflake {position: absolute;font-size: 10px;color: #FFFFFF;text-shadow: 1px 1px 1px #000000;user-select: none;}</style></head>…

java基于ssm框架的少儿编程在线培训系统论文

目 录 目 录 I 1 课题背景及研究内容 4 1.1 课题背景 4 1.2 开发目的和意义 4 2 相关技术和应用 4 2.1 VUE技术 4 2.2 Mysql数据库简介 5 2.3 SSM框架简介 6 2.4 Eclipse简介 6 2.5 B/S系统架构 6 3 系统分析 8 3.1可行性分析 8 3.1.1技术可行性 8 3.1.2经济可行性 8 3.1.3操作…

【会议征稿通知】第二届数字化经济与管理科学国际学术会议(CDEMS 2024)

第二届数字化经济与管理科学国际学术会议&#xff08;CDEMS 2024&#xff09; 2024 2nd International Conference on Digital Economy and Management Science&#xff08;CDEMS 2024&#xff09; 2024年第二届数字经济与管理科学国际会议(CDEMS 2024) 定于2023年4月26-28日…

怎么做微信秒杀链接_开启用户的购物新体验

微信秒杀&#xff1a;开启你的购物新体验 在繁忙的生活节奏中&#xff0c;你是否厌倦了长时间排队等待购物&#xff0c;或者在电商平台上漫长而复杂的购物流程&#xff1f;今天&#xff0c;我要向你介绍一种全新的购物方式——微信秒杀。这不仅是一种全新的购物体验&#xff0…