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

本文主要是介绍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,根据自己的来
在这里插入图片描述
访问
可以看到是有轮询的效果的
在这里插入图片描述

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

这篇关于k8s高版本(1,28)部署NodePort模式下的ingress-nginx的详细过程及应用案例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1090573

相关文章

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

Windows的CMD窗口如何查看并杀死nginx进程

《Windows的CMD窗口如何查看并杀死nginx进程》:本文主要介绍Windows的CMD窗口如何查看并杀死nginx进程问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows的CMD窗口查看并杀死nginx进程开启nginx查看nginx进程停止nginx服务