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

k8s高版本(1,28)部署NodePort模式下的ingress-nginx的详细过程及应用案例

文章目录

  • 前言
    • 环境
      • ingress安装
      • 应用案例(ingress-http案例: 基于名称的负载均衡)


前言

这个是nodeport模式下的,如果需要loadbalancer模式下的,看看博主下面以前的博客
链接: k8s学习–负载均衡器matelLB的详细解释与安装
链接: k8s学习–ingress详细解释与应用(nginx ingress controller))

环境

虚拟机

Ip主机名cpu内存硬盘
192.168.10.11master012cpu双核4G100G
192.168.10.12worker012cpu双核4G100G
192.168.10.13worker022cpu双核4G100G

版本 rockylinux9.2
已部署k8s-1.28.2

ingress安装

因为默认就是nodeport模式,所以直接通过网络路径应用配置文件即可
注: 需要VPN

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/baremetal/deploy.yaml

查看pod状态

kubectl get pod -n ingress-nginx

在这里插入图片描述
如果网络不佳,可能过程会较长,耐心等待或者直接下载相关镜像皆可

应用案例(ingress-http案例: 基于名称的负载均衡)

1.创建并进入一个空目录

mkdir nginx && cd nginx

2.创建deployment控制器类型应用

vim nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: nginxnamespace: ingress-nginx
spec:replicas: 2selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: c1image: nginx:1.20imagePullPolicy: IfNotPresent

应用yaml文件

kubectl apply -f nginx.yaml

查看pod状态

kubectl get pod -n ingress-nginx

在这里插入图片描述

3..创建service

vim nginx-service.yaml
apiVersion: v1
kind: Service
metadata:name: nginx-servicenamespace: ingress-nginxlabels:app: nginx
spec:ports:- port: 80targetPort: 80selector:app: nginx

应用yaml文件

kubectl apply -f nginx-service.yaml

查看svc是否被成功创建

kubectl get -n ingress-nginx svc

在这里插入图片描述

4.创建ingress对象

vim ingress-nginx.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: ingress-nginx                    			#自定义ingress对象名称namespace: ingress-nginxannotations:									#注解,声明ingressclass.kubernetes.io/is-default-class: "true"		#ingress控制器由标记的class作为默认class
spec:ingressClassName: nginx							#此处标记出ingressClass为nginxrules:- host: www.test.com                   			# 自定义域名http:paths:- pathType: Prefixpath: "/"backend:service:name: nginx-service     				# 对应上面创建的service名称port:number: 80

应用yaml文件

kubectl apply -f ingress-nginx.yaml

查看ingress

kubectl get ingress -n ingress-nginx

在这里插入图片描述查看ingress的详细信息

kubectl get ingress -n ingress-nginx

可以看到对应的规则及podip
在这里插入图片描述
查看podip是否一致
这条命令是查看service的服务端点列表,也就是存放他对应pod的ip

kubectl get endpoints -n ingress-nginx nginx-service

在这里插入图片描述
可以看出是一致的

为了查看轮询效果,在nginxpod中添加不一样的字母来区分
查看pod名称

kubectl get pod -n ingress-nginx

在这里插入图片描述

第一个pod

[root@k8s-master01 nginx]# kubectl exec -it -n ingress-nginx nginx-65799cd94d-qj2xx -- /bin/bash
root@nginx-65799cd94d-qj2xx:/# echo "nginx1 is running" > /usr/share/nginx/html/index.html 
root@nginx-65799cd94d-qj2xx:/# exit

第二个pod

[root@k8s-master01 nginx]# kubectl exec -it -n ingress-nginx nginx-65799cd94d-sb5m8 -- /bin/bash
root@nginx-65799cd94d-sb5m8:/# echo "nginx2 is running" > /usr/share/nginx/html/index.html
root@nginx-65799cd94d-sb5m8:/# exit

在宿主机hosts中添加解析
由于是nodeport模式,所以解析写成三个节点的哪个ip都可以,我这里就写12的ip了

192.168.10.12 www.test.com

需要注意的是,由于nodeport模式下开放的端口不固定,所以需要在域名后面加端口号
查看需要的端口号

kubectl get svc -n ingress-nginx

我这里是31868,根据自己的来
在这里插入图片描述
访问
可以看到是有轮询的效果的
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 图片转pdf:tif是什么格式?如何将tif转成PDF?
  • 【hot100篇-python刷题记录】【找到字符串中所有字母异位词】
  • 工厂模式和策略模式区别
  • 汽车冷却液温度传感器的作用与检测方法
  • Windows10如何关闭Edge浏览器的Copilot
  • 钓鱼的常见几种方式
  • css之grid布局(网格布局)
  • 力扣 128. 最长连续序列
  • 深度学习加速秘籍:PyTorch torch.backends.cudnn 模块全解析
  • python办公自动化:初识`python-docx`
  • win10 新建、删除文件不会自动刷新的问题解决方案
  • 92.WEB渗透测试-信息收集-Google语法(6)
  • idea 2024.2切换到旧版的UI
  • CTF杂项题:easy_nbt writeup
  • 强!34.1K star! 再见Postman,新一代API测试利器,功能强大、颜值爆表!
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • ES6核心特性
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • k8s如何管理Pod
  • Service Worker
  • SQLServer插入数据
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 不上全站https的网站你们就等着被恶心死吧
  • 类orAPI - 收藏集 - 掘金
  • 树莓派 - 使用须知
  • 突破自己的技术思维
  • 微服务框架lagom
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • # 达梦数据库知识点
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #NOIP 2014# day.2 T2 寻找道路
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (007)XHTML文档之标题——h1~h6
  • (2)nginx 安装、启停
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (六)DockerCompose安装与配置
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .net2005怎么读string形的xml,不是xml文件。
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • @JoinTable会自动删除关联表的数据
  • [ 蓝桥杯Web真题 ]-布局切换
  • [8481302]博弈论 斯坦福game theory stanford week 1
  • [AI aider] 打造终端AI搭档:Aider让编程更智能更有趣!
  • [Android开源]EasySharedPreferences:优雅的进行SharedPreferences数据存储操作
  • [Android学习笔记]ScrollView的使用
  • [bzoj1006]: [HNOI2008]神奇的国度(最大势算法)
  • [BZOJ1060][ZJOI2007]时态同步 树形dp
  • [C++] C++11详解 (一)
  • [C++]命名空间等——喵喵要吃C嘎嘎