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

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.