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. C realloc(): invalid next size错误

    C realloc(): invalid next size 问题代码 #include <stdio.h> #include <stdlib.h> int *getNumbe ...

  2. libGDX游戏开发之文理打包(八)

    libGDX游戏开发之文理打包(八) libGDX系列,游戏开发有unity3D巴拉巴拉的,为啥还用java开发?因为我是Java程序员emm-国内用libgdx比较少,多数情况需要去官网和googl ...

  3. electron入门之试调工具remote(三)

    electron入门到入土,从渲染线程中创建新窗口.2022-03-21入门版本17.1.2 electron重要概念,只有一个主线程,其他都是渲染进程或者叫子线程,他们不能直接相互操作,可以通过ip ...

  4. ClickHouse的JOIN算法选择逻辑以及auto选项

    ClickHouse的JOIN算法选择逻辑以及auto选项 ClickHouse中的JOIN的算法有6种: Direct; Partial merge; Hash; Grace hash; Full ...

  5. JavaImprove--Lesson04--LocalDateTime,ZoneId,Instant,DateTimeFormatter

    一.LocalDateTime LocalDateTime是JDK8的新时间特性,它解决了Date类和Calender类的很多不足,如使用不方便,线程不安全,以及获取时间戳只能拿到毫秒而不能拿到纳秒等 ...

  6. java中获取内网IP

    package com.dashan.utils.iputils; import org.apache.commons.lang.StringUtils; import javax.servlet.h ...

  7. C++篇:第十二章_文件及IO_知识点大全

    C++篇为本人学C++时所做笔记(特别是疑难杂点),全是硬货,虽然看着枯燥但会让你收益颇丰,可用作学习C++的一大利器 十二.文件及IO 当在输入输出流中使用控制符进行格式控制时,需在程序中加入头文件 ...

  8. 详解Native Memory Tracking 追踪区域分析

    摘要:本篇将介绍NMT追踪区域的部分内存类型--Java heap.Class.Thread.Code 以及 GC. 本文分享自华为云社区<Native Memory Tracking 详解(2 ...

  9. GaussDB(DWS) NOT IN优化技术解密:排他分析场景400倍性能提升

    摘要:本文针对8.1.2版本中的NOT IN场景的Mixed-HashJoin新技术进行介绍.该技术在GaussDB(DWS)与招商银行的联创项目中落地,为招商银行的批量作业带来了总体15%的性能提升 ...

  10. 从1天到10分钟的超越,华为云DRS在背后做了这些

    摘要:华为云DRS助力一汽-大众BI平台实时查看报表,提升数字化决策能力. 本文分享自华为云社区<分钟级查看报表,华为云&一汽-大众,让商机时刻被洞见>,作者:GaussDB 数据 ...