1.部署ingress-nginx-controller

继在三台虚拟机部署k8s后,需要部署ingress-nginx-controller,才能使设置的ingress规则生效。

1.1下载yaml

# 下载ingress-nginx-controller的deploy.yaml
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.9.0/deploy/static/provider/baremetal/deploy.yaml # 如果deploy.yaml中的镜像拉取不下来,查找可用的ingress-nginx-controller和kube-webhook-certgen镜像

docker search ingress-nginx-controller

docker search kube-webhook-certgen
# ---------------------手动拉取镜像需要在每个节点都要执行----------------------
# 选择可用的镜像拉取,版本号为 v1.9.0 和 v20230407,都是较新的版本
docker pull xxx/ingress-nginx-controller:v1.9.0
docker pull xxx/kube-webhook-certgen:v20230407
# docker tag 镜像
docker tag xxx/kube-webhook-certgen:v20230407 k8s/ingress-nginx/kube-webhook-certgen:v20230407
docker tag xxx/ingress-nginx-controller:v1.9.0 k8s/ingress-nginx-controller:v1.9.0
# 如果有搭建的docker registry服务器,可将拉取的镜像 push 至服务器,就不需要手动在每个节点拉取镜像了。

1.2修改yaml

1.2.1三处image的修改

(上面步骤docker tag 的镜像名叫什么,对应的image就改为什么)

ingress-nginx-controller有一处

kube-webhook-certgen有两处


1.2.2在相应位置添加

添加 hostNetwork: true。
若不添加,后续使用 域名:nodeport 访问;添加之后,直接使用域名访问。

执行

#修改完之后执行
kubectl apply -f deploy.yaml
kubectl get all -n ingress-nginx
  • 1
  • 2
  • 3

显示如下,则成功

2.测试

2.1执行测试的yaml

两个yaml文件如下

# nginx-tomcat-test.yaml
apiVersion: v1
kind: Namespace
metadata:
name: test ---

apiVersion: apps/v1

kind: Deployment

metadata:

name: nginx-deployment

namespace: test

spec:

replicas: 3

selector:

matchLabels:

app: nginx-pod

template:

metadata:

labels:

app: nginx-pod

spec:

containers:

- name: nginx

image: nginx:latest

ports:

- containerPort: 80 ---

apiVersion: apps/v1

kind: Deployment

metadata:

name: tomcat-deployment

namespace: test

spec:

replicas: 3

selector:

matchLabels:

app: tomcat-pod

template:

metadata:

labels:

app: tomcat-pod

spec:

containers:

- name: tomcat

image: tomcat:8.0-alpine

ports:

- containerPort: 8080
# nginx-tomcat-svc-ingress.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
namespace: test
spec:
selector:
app: nginx-pod
clusterIP: None
type: ClusterIP
ports:
- port: 80
targetPort: 80 ---

apiVersion: v1

kind: Service

metadata:

name: tomcat-service

namespace: test

spec:

selector:

app: tomcat-pod

clusterIP: None

type: ClusterIP

ports:

- port: 8080

targetPort: 8080 ---

apiVersion: networking.k8s.io/v1

kind: Ingress

metadata:

name: test-ingress

namespace: test

spec:

ingressClassName: nginx

rules:

- host: "tomcat.demo.com"

http:

paths:

- pathType: Prefix

path: "/"

backend:

service:

name: tomcat-service

port:

number: 8080

- host: "nginx.demo.com"

http:

paths:

- pathType: Prefix

path: "/"

backend:

service:

name: nginx-service

port:

number: 80
# 执行
kubectl apply -f nginx-tomcat-deploy.yaml
kubectl apply -f nginx-tomcat-svc-ingress.yaml
# 查看
kubectl get all -n test
kubectl get ingress -n test

显示:

2.2浏览器访问

设置windows下的hosts文件,添加

192.168.255.143 tomcat.demo.com  nginx.demo.com

浏览器访问,显示如下页面,就算大功告成 !


清理资源

kubectl delete -f nginx-tomcat-svc-ingress.yaml
kubectl delete -f nginx-tomcat-deploy.yaml

上面给出的是ingress的http代理,https代理待后续给出。。。

文章知识点与官方知识档案匹配,可进一步学习相关知识

[转帖]k8s(1.28.2)部署ingress-nginx-controller(1.9.0)的更多相关文章

  1. 云原生之旅 - 8)云原生时代的网关 Ingress Nginx

    前言 当我们在Kubernetes部署的服务需要暴露给外部用户使用时,有三种选择:LoadBalancer,NodePort, Ingress. LoadBalancer类型得结合各个Cloud Pr ...

  2. 基于k8s集群部署prometheus监控ingress nginx

    目录 基于k8s集群部署prometheus监控ingress nginx 1.背景和环境概述 2.修改prometheus配置 3.检查是否生效 4.配置grafana图形 基于k8s集群部署pro ...

  3. 【转帖】kubernetes 部署ingress

    kubernetes 部署ingress https://www.cnblogs.com/dingbin/p/9754993.html 明天尝试一下 之前的文档里面一直没有提 需要改host文件 我有 ...

  4. 基于 K8S 集群安装部署 istio-1.2.4

    使用云平台可以为组织提供丰富的好处.然而,不可否认的是,采用云可能会给 DevOps 团队带来压力.开发人员必须使用微服务以满足应用的可移植性,同时运营商管理了极其庞大的混合和多云部署.Istio 允 ...

  5. Blazor+Dapr+K8s微服务之基于WSL安装K8s集群并部署微服务

         前面文章已经演示过,将我们的示例微服务程序DaprTest1部署到k8s上并运行.当时用的k8s是Docker for desktop 自带的k8s,只要在Docker for deskto ...

  6. k8s集群中部署prometheus server

    1.概述 本文档主要介绍如何在k8s集群中部署prometheus server用来作为监控的数据采集服务器,这样做可以很方便的对k8s集群中的指标.pod的.节点的指标进行采集和监控. 2.下载镜像 ...

  7. K8s小白?应用部署太难?看这篇就够了!

    在云原生趋势下,容器和 Kubernetes 可谓是家喻户晓,许多企业内部的研发团队都在使用 Kubernetes 打造 DevOps 平台.从最早的容器概念到 Kubernetes 再到 DevOp ...

  8. 使用Kubeadm创建k8s集群之部署规划(三十)

    前言 上一篇我们讲述了使用Kubectl管理k8s集群,那么接下来,我们将使用kubeadm来启动k8s集群. 部署k8s集群存在一定的挑战,尤其是部署高可用的k8s集群更是颇为复杂(后续会讲).因此 ...

  9. k8s记录-kubeam方式部署k8s

    参考:https://blog.csdn.net/networken/article/details/84991940 # k8s工具部署方案 # 1.集群规划 | **服务器** | || ---- ...

  10. kubernetes 部署ingress

    kubernetes Ingess 是有2部分组成,Ingress Controller 和Ingress服务组成,常用的Ingress Controller 是ingress-nginx,工作的原理 ...

随机推荐

  1. 2.elasticsearch中的mapping

    mapping 顾名思义,代表了映射关系.是文档中字段和数据类型的映射关系 为什么要了解mapping 虽然elasticsearch中已尽有的动态mapping(Dynamic Mapping),而 ...

  2. Docker 使用及常见问题总结

    一.使用 1.docker run -it 命令中的 it 参数是什么含义 在Docker中,-it是两个选项的组合,用于在交互式模式下运行容器.让我解释一下它们的含义: -i 或 --interac ...

  3. 11、层叠布局(Stack、Align、 Positioned)

    Flutter Stack组件 Stack表示堆的意思,我们可以用Stack或者Stack结合Align或者Stack结合 Positiond来实现页面的定位 布局  Alignment(对齐)类是用 ...

  4. C++中自定义结构体或类作为关联容器的键

    目录 1. 概述 2. 实例 1. 概述 STL中像set和map这样的容器是通过红黑树来实现的,插入到容器中的对象是顺序存放的,采用这样的方式是非常便于查找的,查找效率能够达到O(log n).所以 ...

  5. CWE发布2021年最危险的25种软件缺陷

    摘要:CWE最危险的25种软件缺陷,是NVD过去两年中遇到的最常见和影响最大的问题指示性的列表. CWE Top25 可以帮助开发人员.测试人员和用户,以及项目经理.安全研究人员和教育工作者深入了解最 ...

  6. 摆平各类目标检测识别AI应用,有它就够了!

    摘要:在计算机视觉领域,CANN最新开源的通用目标检测与识别样例,通过其强大的可定制.可扩展性,为AI开发者们提供了良好编程选择. 本文分享自华为云社区<摆平各类目标检测识别AI应用,有它就够了 ...

  7. 云小课 | 网站接入WAF失败怎么办?看这里就够了

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: 网站接入WAF失 ...

  8. vite/storybook/rollup搭建一个自己的组件库

    构建测试项目 首先vite 初始化一个项目 vue create story-book-demo ## 或者 vue create story-book-demo 然后添加storybook ,具体参 ...

  9. 从 ByteHouse 网关,看如何进一步提升 OLAP 引擎性能

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   随着数字化转型的加速,企业面临着海量数据收集.处理和分析挑战.ClickHouse因其分析速度快.高性能的特点 ...

  10. 音乐 APP 用户争夺战,火山引擎 VeDI 助力用户体验升级!

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 国内数字音乐市场正在保持稳定增长. 根据华经产业研究院数据报告显示,2020 年数字音乐市场规模为 357.3 亿元,到 ...