当前位置: 首页 > 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/
在这里插入图片描述
可以访问成功

http://www.lryc.cn/news/24491.html

相关文章:

  • 耗时1个月整理的网络安全学习路线,不信还有比这更详细的
  • ChatGPT进阶-提示词中文版
  • Linux 进程:进程状态
  • 应用程序性能优化方案,web服务五级缓存优化,服务器性能优化...
  • 云计算简介
  • 两个适配器网络冲突,限制访问特定网址
  • 电子科技大学 高级计算机系统结构 考试回忆
  • 【设计模式】18.观察者模式
  • 软测入门(一)测试理念及基础知识
  • 2022年“网络安全”赛项山东省菏泽市选拔赛任务书
  • LeetCode练习四:栈
  • 【Python实战】爬虫教程千千万,一到实战全完蛋?今天手把手教你一键采集某网站图书信息数据啦~排名第一的竟是...(爬虫+数据可视化)
  • 【数据结构】堆的详解
  • New Bing怼人、说谎、PUA,ChatGPT已经开始胡言乱语了
  • 简易计算器-课后程序(JAVA基础案例教程-黑马程序员编著-第十一章-课后作业)
  • chatGPT使用:询问简历和面试相关话题(持续更新中)
  • Java的 Stream流
  • FL Studio 21 中文正式版发布支持多种超个性化主题
  • 【微信小程序】-- 全局配置 -- window - 导航栏(十五)
  • Spring中最常用的11个扩展点
  • 网络协议丨HTTPS是什么?
  • Anaconda常用命令总结,anaconda、conda、miniconda的关系
  • 【蓝桥杯入门到入土】最基础的数组你真的掌握了吗?
  • Java Set系列集合(Collections集合工具类、可变参数)
  • chromium构建原生AS项目-记录1
  • Mybatis-Plus 开发提速器:mybatis-plus-generator-ui
  • 李迟2023年02月工作生活总结
  • 【Python百日进阶-Web开发-Vue3】Day542 - Vue3 商城后台 02:Windi CSS 与 Vue Router4
  • Jupyter Lab | “丢下R,一起来快乐地糟蹋服务器!”
  • 分页与分段