[转帖]k8s(1.28.2)部署ingress-nginx-controller(1.9.0)
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)的更多相关文章
- 云原生之旅 - 8)云原生时代的网关 Ingress Nginx
前言 当我们在Kubernetes部署的服务需要暴露给外部用户使用时,有三种选择:LoadBalancer,NodePort, Ingress. LoadBalancer类型得结合各个Cloud Pr ...
- 基于k8s集群部署prometheus监控ingress nginx
目录 基于k8s集群部署prometheus监控ingress nginx 1.背景和环境概述 2.修改prometheus配置 3.检查是否生效 4.配置grafana图形 基于k8s集群部署pro ...
- 【转帖】kubernetes 部署ingress
kubernetes 部署ingress https://www.cnblogs.com/dingbin/p/9754993.html 明天尝试一下 之前的文档里面一直没有提 需要改host文件 我有 ...
- 基于 K8S 集群安装部署 istio-1.2.4
使用云平台可以为组织提供丰富的好处.然而,不可否认的是,采用云可能会给 DevOps 团队带来压力.开发人员必须使用微服务以满足应用的可移植性,同时运营商管理了极其庞大的混合和多云部署.Istio 允 ...
- Blazor+Dapr+K8s微服务之基于WSL安装K8s集群并部署微服务
前面文章已经演示过,将我们的示例微服务程序DaprTest1部署到k8s上并运行.当时用的k8s是Docker for desktop 自带的k8s,只要在Docker for deskto ...
- k8s集群中部署prometheus server
1.概述 本文档主要介绍如何在k8s集群中部署prometheus server用来作为监控的数据采集服务器,这样做可以很方便的对k8s集群中的指标.pod的.节点的指标进行采集和监控. 2.下载镜像 ...
- K8s小白?应用部署太难?看这篇就够了!
在云原生趋势下,容器和 Kubernetes 可谓是家喻户晓,许多企业内部的研发团队都在使用 Kubernetes 打造 DevOps 平台.从最早的容器概念到 Kubernetes 再到 DevOp ...
- 使用Kubeadm创建k8s集群之部署规划(三十)
前言 上一篇我们讲述了使用Kubectl管理k8s集群,那么接下来,我们将使用kubeadm来启动k8s集群. 部署k8s集群存在一定的挑战,尤其是部署高可用的k8s集群更是颇为复杂(后续会讲).因此 ...
- k8s记录-kubeam方式部署k8s
参考:https://blog.csdn.net/networken/article/details/84991940 # k8s工具部署方案 # 1.集群规划 | **服务器** | || ---- ...
- kubernetes 部署ingress
kubernetes Ingess 是有2部分组成,Ingress Controller 和Ingress服务组成,常用的Ingress Controller 是ingress-nginx,工作的原理 ...
随机推荐
- kafka源码阅读之MacBook Pro M1搭建Kafka2.7版本源码运行环境
原创/朱季谦 最近在阅读Kafka的源码,想可以在阅读过程当中,在代码写一些注释,便决定将源码部署到本地运行. 日常开发过程中,用得比较多一个版本是Kafka2.7版本,故而在MacBook Pro笔 ...
- Java 并发编程(六)并发容器和框架
传统 Map 的局限性 HashMap JDK 1.7 的 HashMap JDK 1.7 中 HashMap 的实现只是单纯的 "数组 + 链表 " 的组合方式,具体的组成如下: ...
- Linux的期末冲刺
选择 一.Linux基础 Linux目录结构 相关命令: cd, ls, pwd 详解: Linux 目录结构采用树状结构,根目录为 /.用户的帐户信息保存在 /etc/passwd 文件中,包括用户 ...
- 开源:Taurus.DTC 微服务分布式事务框架,支持 .Net 和 .Net Core 双系列版本
前言: 在经过1年多的深思,十几年的框架编写技术沉淀下,花了近一个月的时间,终于又为 .Net 及 .Net Core 的微服务系列框架贡献当中的一个重要组件. 1.开源地址: https://git ...
- RasaGPT对话系统的工作原理
RasaGPT 结合了 Rasa 和 Langchain 这 2 个开源项目,当超出 Rasa 现有意图(out_of_scope)的时候,就会执行 ActionGPTFallback,本质上就是利用 ...
- Karmada:让跨集群弹性伸缩FederatedHPA突破新边界
本文分享自华为云社区<Kubernetes多集群管理Karmada,跨集群弹性伸缩FederatedHPA突破新边界!>,作者:华为云云原生团队. 根据 Flexera 最新发布的< ...
- 华为亮相KubeCon EU 2023 新云原生开源项目Kuasar推动“云上演进”
摘要:协力同行.拥抱开源,解放数字生产力,为社会和行业带来更多价值. 在数字时代,如果说企业是一艘巨大的货船,那么云原生则为企业的每一个业务.每一个应用提供了标准化的集装箱,摆脱笨重的底层桎梏,打造新 ...
- 如何处理分析Flink作业反压的问题?
摘要:反压是 Flink 应用运维中常见的问题,它不仅意味着性能瓶颈还可能导致作业的不稳定性. 反压(backpressure)是实时计算应用开发中,特别是流式计算中,十分常见的问题.反压意味着数据管 ...
- 想要做好软件测试,可以先了解AST、SCA和渗透测试
摘要:如何做好安全测试,我们重点从应用程序安全测试AST.软件组成分析SCA和渗透测试三个方面来看一下. 本文分享自华为云社区<DevSecOps研发安全实践--测试篇>,作者:华为云Pa ...
- Scrum Master们,难道每天都在摸鱼?
摘要:众所周知,Scrum Master是服务型领导--其本身不参与日常的研发工作,写代码.改Bug的工作都让团队干了,Scrum Master到底干了啥?Scrum Master工作的好坏应该如何衡 ...
