当前位置: 首页 > news >正文

nginx-ingress部署+跨命名空间转发

nginx-ingress部署

  • 一、环境信息
  • 二、k8s环境搭建
  • 三、ingress环境搭建
    • 3.1 deploy.yaml文件
    • 3.2 service-nodeport.yaml文件
  • 四、按照业务建立service及ingress
    • 4.1 业务信息
    • 4.2 建立service
    • 4.3 创建ingress
  • 五、验证结果

一、环境信息

  • k8s集群版本:1.23.6
  • ingress版本:1.1.1
  • 操作系统版本:CentOS Linux release 7.9.2009 (Core)
  • docker服务:Docker version 20.10.21, build baeda1f
  • k8s控制节点IP:xxx.xxx.150.14
  • 网站地址:xxxops.cn

二、k8s环境搭建

参考链接:K8s 1.23.6版本部署:kubelet-1.23.6+kube-proxy-1.17.6


三、ingress环境搭建

3.1 deploy.yaml文件

1、下载deploy.yaml文件

wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.1/deploy/static/provider/cloud/deploy.yaml

2、替换镜像源,修改为国内源
k8s.gcr.io/ingress-nginx/controller:v1.1.1
替换为
registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.1.1
k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.1.1
替换为
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1

sed -i 's/k8s.gcr.io\/ingress-nginx\/controller:v1.1.1\@sha256:0bc88eb15f9e7f84e8e56c14fa5735aaa488b840983f87bd79b1054190e660de/registry.cn-hangzhou.aliyuncs.com\/google_containers\/nginx-ingress-controller:v1.1.1/g' deploy.yaml;
sed -i 's/k8s.gcr.io\/ingress-nginx\/kube-webhook-certgen:v1.1.1\@sha256:64d8c73dca984af206adf9d6d7e46aa550362b1d7a01f3a0a91b20cc67868660/registry.cn-hangzhou.aliyuncs.com\/google_containers\/kube-webhook-certgen:v1.1.1/g' deploy.yaml;

3、修改负载方式,修改负载方式为NodePort,注释externalTrafficPolicy

sed -i 's/type: LoadBalancer/type: NodePort/g' deploy.yaml;
sed -i 's/externalTrafficPolicy: Local/#externalTrafficPolicy: Local/g' deploy.yaml;

4、执行部署

kubectl apply -f deploy.yaml

5、查看部署结果

kubectl get pod -n ingress-nginx
[root@k8s-master ~]# kubectl get pod -n ingress-nginx
NAME                                        READY   STATUS      RESTARTS   AGE
ingress-nginx-admission-create-2m6cn        0/1     Completed   0          75m
ingress-nginx-admission-patch-x9x2m         0/1     Completed   0          75m
ingress-nginx-controller-74c6bcdc65-425jf   1/1     Running     0          75m

3.2 service-nodeport.yaml文件

1、下载deploy.yaml文件

wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/provider/baremetal/service-nodeport.yaml

2、执行deploy.yaml文件

kubectl apply -f service-nodeport.yaml

3、查看执行结果

kubectl get svc -n ingress-nginx
[root@k8s-master ~]# kubectl get svc -n ingress-nginx
NAME                                 TYPE           CLUSTER-IP       EXTERNAL-IP                                PORT(S)                      AGE
ingress-nginx                        NodePort       10.107.28.54     <none>                                     80:30716/TCP,443:31305/TCP   72m
ingress-nginx-controller             NodePort       10.100.159.4     <none>                                     80:31247/TCP,443:31575/TCP   73m
ingress-nginx-controller-admission   ClusterIP      10.106.162.218   <none>                                     443/TCP                      73m

验证
访问xxx.xxx.150.14:31247验证是否可以出现404提示,出现404提示表示部署正常
在这里插入图片描述

四、按照业务建立service及ingress

4.1 业务信息

  • 前端服务的service名称:xxxops-frontend
  • 前端服务所处命名空间名称:xxxops
  • 前端服务暴露端口:8080

前端服务service信息图如下
在这里插入图片描述

4.2 建立service

1、准备部署文件

这里的service是要引用其他命名空间的服务,所以type是ExternalName
配置文件:xxxops-dashboard.yaml

apiVersion: v1
kind: Service
metadata:name: xxxops-frontend      #service的名字namespace: ingress-nginx   #ingress-controller所在的namespace
spec:type: ExternalName     sessionAffinity: NoneexternalName: xxxops-frontend.xxxops.svc.cluster.local #servicename.namespacename.scv.cluster.local

2、执行部署

kubectl apply -f xxxops-dashboard.yaml

3、检查部署结果

[root@k8s-master ingress-1.1.1]# kubectl get svc -n ingress-nginx
NAME                                 TYPE           CLUSTER-IP       EXTERNAL-IP                                PORT(S)                      AGE
ingress-nginx                        NodePort       10.107.28.54     <none>                                     80:30716/TCP,443:31305/TCP   4h37m
ingress-nginx-controller             NodePort       10.100.159.4     <none>                                     80:31247/TCP,443:31575/TCP   4h37m
ingress-nginx-controller-admission   ClusterIP      10.106.162.218   <none>                                     443/TCP                      4h37m
xxxops-frontend                      ExternalName   <none>           xxxops-frontend.xxxops.svc.cluster.local   <none>                       4h36m

在这里插入图片描述

4.3 创建ingress

1、准备部署文件

配置文件:xxxops-dashboard-ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: xxxops-ingress    #ingress名称namespace: xxxops       #这里写前端服务运行所在的命名空间名称annotations:kubernetes.io/ingress.class: "nginx"
spec:rules:- host: xxxops.cn       #设置域名http:paths:- path: /pathType: Prefix    # 前缀匹配backend:service:name: xxxops-frontend     #填写上一步service的名称port:number: 8080            #填写服务暴漏的端口

2、执行部署

kubectl apply -f xxxops-dashboard-ingress.yaml

3、检查部署结果

在前端服务业务命名空间内查看ingress

[root@k8s-master ingress-1.1.1]# kubectl get ingress -n xxxops
NAME             CLASS    HOSTS       ADDRESS        PORTS   AGE
xxxops-ingress   <none>   xxxops.cn   10.100.159.4   80      4h39m

在这里插入图片描述

五、验证结果

本地机器修改host,增加dns
192.168.150.14 xxxops.cn

使用浏览器访问
http://xxxops.cn:31247/
在这里插入图片描述
可以访问成功

相关文章:

nginx-ingress部署+跨命名空间转发

nginx-ingress部署一、环境信息二、k8s环境搭建三、ingress环境搭建3.1 deploy.yaml文件3.2 service-nodeport.yaml文件四、按照业务建立service及ingress4.1 业务信息4.2 建立service4.3 创建ingress五、验证结果一、环境信息 k8s集群版本&#xff1a;1.23.6ingress版本&…...

耗时1个月整理的网络安全学习路线,不信还有比这更详细的

首先咱们聊聊&#xff0c;学习网络安全方向通常会有哪些问题 1、打基础时间太长 学基础花费很长时间&#xff0c;光语言都有几门&#xff0c;有些人会倒在学习linux系统及命令的路上&#xff0c;更多的人会倒在学习语言上&#xff1b; 2、知识点掌握程度不清楚 对于网络安全…...

ChatGPT进阶-提示词中文版

一、ChatGPT简介 ChatGPT 是 OpenAI 开发的人工智能聊天机器人。该聊天机器人基于 GPT-3.5 语言模型&#xff0c;经过训练可以对用户给出的指令做出详细响应。与其他聊天机器人不同&#xff0c;ChatGPT 可以回答后续问题、求解数学方程式、撰写文本、修复和调试代码以及总结文本…...

Linux 进程:进程状态

目录一、进程状态1.简单分类2.详细分类&#xff08;1&#xff09;运行态&#xff08;2&#xff09;休眠态[1]可中断休眠态[2]不可中断休眠态&#xff08;3&#xff09;停止状态&#xff08;4&#xff09;死亡状态&#xff08;5&#xff09;僵死状态二、特殊进程1.僵尸进程2.孤儿…...

应用程序性能优化方案,web服务五级缓存优化,服务器性能优化...

winfrom 全局异常捕获WPF 全局异常捕获Asp.Net全局异常捕获MVC 全局异常捕获AspNetNetCore 全局异常捕获一级缓存html/css/js 前端缓存二级缓存Asp.Net MVC AspNetCore 客户端缓存设置三级缓存服务端缓存四级redis 数据库缓存服务端缓存五级sqlserver 数据库缓存设置分布式缓存…...

云计算简介

本文为copy他人编写的文档&#xff0c;由于不确认作者名称&#xff0c;故无法标记来源&#xff08;实际来源是群pdf文档&#xff09;&#xff0c;暂时发文为原创&#xff0c;因为无法贴出原文链接&#xff01; 云原生的前世今生 随着公有云和私有云的广泛部署&#xff0c;云计…...

两个适配器网络冲突,限制访问特定网址

两个适配器网络冲突&#xff0c;限制访问特定网址说明命令说明说明 因为工作需要&#xff0c;有线网络访问局域网服务器&#xff0c;限制特别策略访问&#xff0c;如禁止远程。此时如果想要远程&#xff0c;在连接手机热点就可以&#xff0c;但由于两个网络的存在优先级。就出…...

电子科技大学 高级计算机系统结构 考试回忆

首先题量不算小&#xff0c;因此没有太多时间把题都记出来&#xff0c;但是叙述一下题的类型希望能帮到以后选了这门课大家&#xff0c;在网上确实没有搜到这门课有关考试的任何资料&#xff0c;所以我也没啥参考全凭记忆和老师的PPT结合。复习的时候老师给了大纲&#xff0c;就…...

【设计模式】18.观察者模式

概述 定义&#xff1a; 又被称为发布-订阅&#xff08;Publish/Subscribe&#xff09;模式&#xff0c;它定义了一种一对多的依赖关系&#xff0c;让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时&#xff0c;会通知所有的观察者对象&#xff0c;使他们能…...

软测入门(一)测试理念及基础知识

软测入门理念 软件的分类 按层次划分&#xff1a;系统软件、应用软件按组织划分&#xff1a;商业软件、开源软件按结构划分&#xff1a;单机软件、 软件缺陷 由来 Grace Hopper发明Cobol计算机语言&#xff0c;也是找出电脑程序中第一个bug的女程序员 BugDefect 定义 软…...

2022年“网络安全”赛项山东省菏泽市选拔赛任务书

2022年“网络安全”赛项山东省菏泽市选拔赛任务书 任务书 一、竞赛时间 共计3小时。 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段单兵模式系统渗透测试 任务一&#xff1a;Apache安全配置 任务二&#xff1a;数据分析-A 任务三&#xff1a;Windows操作系…...

LeetCode练习四:栈

文章目录一、 堆栈基础知识1.1 简介1.2 堆栈的顺序存储1.2.1 堆栈顺序存储基本描述1.2.2 堆栈顺序存储实现代码1.3 堆栈的链式存储1.3.1 堆栈的链式存储基本描述1.3.2 堆栈的链式存储实现代码二、 堆栈的基础应用2.1 堆栈基础题列表2.2 括号匹配问题2.2.1 有效的括号2.2.2 最长…...

【Python实战】爬虫教程千千万,一到实战全完蛋?今天手把手教你一键采集某网站图书信息数据啦~排名第一的竟是...(爬虫+数据可视化)

前言 ​一本本书&#xff0c;是一扇扇窗&#xff0c;为追求知识的人打开认知世界的窗口 一本本书&#xff0c;是一双双翅膀&#xff0c;让追求理想的人张开翅膀翱翔 所有文章完整的素材源码都在&#x1f447;&#x1f447; 粉丝白嫖源码福利&#xff0c;请移步至CSDN社区或文末…...

【数据结构】堆的详解

本章的知识需要有树等相关的概念&#xff0c;如果你还不了解请先看这篇文章:初识二叉树 堆的详解一、二叉树的顺序结构及实现1、二叉树的顺序结构2、堆的概念及结构二、堆的简单实现 (以大堆为例)1、堆的定义2、堆的初始化3、堆的销毁4、堆的打印5、堆的插入6、堆顶元素的获取7…...

New Bing怼人、说谎、PUA,ChatGPT已经开始胡言乱语了

最近&#xff0c;来自大洋彼岸那头的ChatGPT科技浪潮席卷而来&#xff0c;微软将chatGPT整合搜索引擎Bing开启内测后&#xff0c;数百万用户蜂拥而至&#xff0c;都想试试这个「百事通」。 赶鸭子上架&#xff0c;“翻车”了&#xff1f; 但短短上线十几天&#xff0c;嵌入了…...

简易计算器-课后程序(JAVA基础案例教程-黑马程序员编著-第十一章-课后作业)

【案例11-2】 简易计算器 【案例介绍】 1.案例描述 本案例要求利用Java Swing 图形组件开发一个可以进行简单的四则运算的图形化计算器。 2.运行结果 运行结果 【案例分析】 要制作一个计算器&#xff0c;首先要知道它由哪些部分组成&#xff0c;如下图所示&#xff1a; 一…...

chatGPT使用:询问简历和面试相关话题(持续更新中)

chatGPT使用:询问简历和面试相关话题 写一份Java简历,价值2万元包装上面的Java简历面试自我介绍面试简述稿包装简历的方法技巧如何进行良好的自我介绍如何写一份优秀的面试简述稿如何写一份优秀的简历如何写一份优秀的面试讲述稿如何提高面试录取率如何拿到offer写一份Java简…...

Java的 Stream流

Stream流&#xff1f;结合Lambda表达式&#xff0c;用于简化集合和数组操作的API。Stream流的一个小例子&#xff1a;创建一个集合&#xff0c;存储多个姓名&#xff0c;把集合中所有以"张"开头的长度为3的元素存储到一个新的集合并输出。List<String> namesne…...

FL Studio 21 中文正式版发布支持多种超个性化主题

万众期待的 FL Studio 21 版本正式发布上线&#xff0c;目前在紧锣密鼓的安排上线中&#xff0c;届时所有购买正版 FL Studio 的用户&#xff0c;都可以免费升级到21版&#xff01; 按照惯例&#xff0c;本次新版也会增加全新插件&#xff0c;来帮助大家更好地创作。今天先给大…...

【微信小程序】-- 全局配置 -- window - 导航栏(十五)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…...

Spring中最常用的11个扩展点

前言我们一说到spring&#xff0c;可能第一个想到的是 IOC&#xff08;控制反转&#xff09; 和 AOP&#xff08;面向切面编程&#xff09;。没错&#xff0c;它们是spring的基石&#xff0c;得益于它们的优秀设计&#xff0c;使得spring能够从众多优秀框架中脱颖而出。除此之外…...

网络协议丨HTTPS是什么?

我们都知道HTTP协议&#xff0c;那什么是HTTPS&#xff1f; 我们都知道&#xff0c;HTTP有两个缺点——“明文”和“不安全”仅凭 HTTP 自身是无力解决的&#xff0c;需要引入新的 HTTPS 协议。 由于 HTTP 天生“明文”的特点&#xff0c;整个传输过程完全透明&#xff0c;任…...

Anaconda常用命令总结,anaconda、conda、miniconda的关系

Anaconda、conda、miniconda的关系 Anaconda Anaconda 是一个用于数据科学&#xff0c;机器学习和深度学习的开源软件包管理系统&#xff0c;其中包括了许多流行的 Python 包和工具Anaconda主要用于科学计算和数据分析。 conda Conda 是 Anaconda 中的包管理器&#xff0c;…...

【蓝桥杯入门到入土】最基础的数组你真的掌握了吗?

文章目录一&#xff1a;数组理论基础二&#xff1a;数组知识点总结三&#xff1a;数组这种数据结构的优点和缺点是什么&#xff1f;四&#xff1a;实战解题1. 移除元素暴力解法双指针法2.有序数组的平方暴力解法双指针法最后说一句一&#xff1a;数组理论基础 首先要知道数组在…...

Java Set系列集合(Collections集合工具类、可变参数)

目录Set系列集系概述HashSet集合元素无序的底层原理&#xff1a;哈希表HashSet集合元素去重复的底层原理LinkedHashSet有序实现原理TreeSetCollection集合总结可变参数Collections集合工具类Set系列集系概述 Set系列集合特点 无序&#xff1a;存取顺序不一致不重复&#xff1…...

chromium构建原生AS项目-记录1

构建的chromium版本&#xff1a;待补充重要说明&#xff1a;so文件加载的过程文件&#xff1a;base_java.jar包文件路径&#xff1a;org.chromium.base.library_loader.LibraryLoader方法&#xff1a;loadAlreadyLocked&#xff08;Context context&#xff09;line166 :Native…...

Mybatis-Plus 开发提速器:mybatis-plus-generator-ui

Mybatis-Plus 开发提速器&#xff1a;mybatis-plus-generator-ui 1.简介 github地址 &#xff1a; https://github.com/davidfantasy/mybatis-plus-generator-ui 提供交互式的Web UI用于生成兼容mybatis-plus框架的相关功能代码&#xff0c;包括Entity,Mapper,Mapper.xml,Se…...

李迟2023年02月工作生活总结

本文为 2023 年 2 月工作生活总结。 研发编码 Linux Go 某工程使用到一些数据的统计&#xff0c;为方便&#xff0c;使用 map 存储数量&#xff0c;由于其是无序的&#xff0c;输出的列表顺序不固定&#xff0c;将其和历史版本对比不方便&#xff0c;所以需要将 key 排序再输…...

【Python百日进阶-Web开发-Vue3】Day542 - Vue3 商城后台 02:Windi CSS 与 Vue Router4

文章目录 一、WindiCSS 初始1.1 WindiCSS 是什么?1.2 为什么选择 Windi CSS?1.3. 基础用法1.4 集成二、简单按钮2.1 设置背景色2.2 设置字体颜色和上下左右padding2.3 设置圆角2.4 鼠标悬浮,颜色加深2.5 鼠标划入动画2.6 设置阴影2.7 @apply 抽离class代码到 style 块中三、…...

Jupyter Lab | “丢下R,一起来快乐地糟蹋服务器!”

写作前面 工具永远只是为了帮助自己提升工作效率 —— 沃兹基硕得 所以说&#xff0c;为什么要使用jupyterlab呢&#xff1f;当然是因为基于服务器来处理数据就可以使劲造了&#xff0c;而且深切地感觉到&#xff0c;“R这玩意儿是人用的吗”。 jupyter-lab | mamba安装以及…...

华为官方网站专卖店/查网站

矩阵的Hadamard积与符号模式【摘要】&#xff1a;我们主要讨论了非负矩阵、M-阵的Hadamard积与Fan积问题&#xff0c;以及矩阵Hadamard积的一些范数不等式&#xff0e;同时也讨论了逆M-矩阵、零模式不变矩阵、符号模式矩阵、k-幂等阵和符号k-幂等阵等特殊矩阵的相关问题&#x…...

天津网站建设如何/郑州网站顾问

Caused by: java.lang.ClassCastException:android.widget.LinearLayout$LayoutParams 最近&#xff0c;在android中用代码动态改变某种布局&#xff08;组件&#xff09;的高度时&#xff0c;会遇到如题所示的类转换异常。上网查了一下&#xff0c;如下所示&#xff1a;Thes…...

wordpress主题模板文件/平台外宣推广技巧

要了解管理者心目中优秀员工的标准&#xff0c;就必须了解管理者的工作职责。 管理者的工作职责通常包括&#xff1a;团队管理、资源管理和拿指标。 管理者的职责之一&#xff1a;团队的管理 1、找最出色的人。 比自己优秀&#xff0c;和自己有相同的展望和价值观。 对于这一点…...

wordpress广告从哪获取/网络营销方式与工具有哪些

https://blog.csdn.net/hanchao5272/article/details/79435730 git log 退出方法&#xff1a; 英文状态下按Q...

做房地产网站广告销售/湖北荆门今日头条

抓取太过频繁屏蔽了它的N个IP段又换IP来抓&#xff0c;抓我的分页链接居然抓到负一百多页&#xff0c;我都不明白它怎么算出来的。好多我自己都不知道的链接&#xff0c;他都来抓&#xff0c;把链接的A部分拼凑到另外的链接的B部分&#xff0c;可真是够滑稽的&#xff0c;雅虎和…...

廊坊做网站电话/seo关键词优化外包

问题描述&#xff1a;父组件传如lesser和larger两个参数&#xff0c;并且是ajax从服务器获取的。子组件定义created阶段输出lesser和larger。但larger为空。改成延迟输出则正确。问题来源&#xff1a;https://segmentfault.com/q/1010000008912491提问者的主要问题是没有搞清楚…...