Kubernetes核心技术Ingress

前言

原来我们需要将端口号对外暴露,通过 ip + 端口号就可以进行访问

原来是使用Service中的NodePort来实现

  • 在每个节点上都会启动端口
  • 在访问的时候通过任何节点,通过ip + 端口号就能实现访问

但是NodePort还存在一些缺陷

  • 因为端口不能重复,所以每个端口只能使用一次,一个端口对应一个应用
  • 实际访问中都是用域名,根据不同域名跳转到不同端口服务中

Ingress和Pod关系

pod 和 ingress 是通过service进行关联的,而ingress作为统一入口,由service关联一组pod中

  • 首先service就是关联我们的pod
  • 然后ingress作为入口,首先需要到service,然后发现一组pod
  • 发现pod后,就可以做负载均衡等操作

Ingress工作流程

在实际的访问中,我们都是需要维护很多域名, a.com 和 b.com

然后不同的域名对应的不同的Service,然后service管理不同的pod

需要注意,ingress不是内置的组件,需要我们单独的安装

使用Ingress

步骤如下所示

  • 部署ingress Controller【需要下载官方的】
  • 创建ingress规则【对哪个Pod、名称空间配置规则】

创建Nginx Pod

创建一个nginx应用,然后对外暴露端口

# 创建pod
kubectl create deployment web --image=nginx
# 查看
kubectl get pods

对外暴露端口

kubectl expose deployment web --port=80 --target-port=80 --type:NodePort

部署 ingress controller

下面我们来通过yaml的方式,部署我们的ingress,配置文件如下所示

这个文件里面,需要注意的是 hostNetwork: true,改成ture是为了让后面访问到

kubectl apply -f ingress-con.yaml

通过这种方式,其实我们在外面就能访问,这里还需要在外面添加一层

kubectl apply -f ingress-con.yaml

最后通过下面命令,查看是否成功部署 ingress

kubectl get pods -n ingress-nginx

创建ingress规则文件

创建ingress规则文件,ingress-h.yaml

添加域名访问规则

在windows 的 hosts文件,添加域名访问规则【因为我们没有域名解析,所以只能这样做】

最后通过域名就能访问

13.Kubernetes核心技术Ingress的更多相关文章

  1. kubernetes nginx ingress controller部署

    Kubernetes nginx ingress controller部署 1.下载kubernetes nginx的yaml文件 Wget https://raw.githubusercontent ...

  2. Kubernetes 使用 Ingress 实现灰度发布功能

    使用 Ingress 实现灰度发布 一.Canary 规则说明 Ingress-Nginx 是一个K8S ingress工具,支持配置 Ingress Annotations 来实现不同场景下的灰度发 ...

  3. kubernetes 安装 ingress controller

    文章链接 ingress-nginx ingress 官方网站 ingress 仓库地址 ingress-nginx v1.0 最新版本 v1.0 适用于 Kubernetes 版本 v1.19+ ( ...

  4. Kubernetes核心技术Pod

    Kubernetes核心技术Pod Pod概述 Pod是K8S系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型,也是在K8S上运行容器化应用的资源对象,其它的资源对象 ...

  5. JavaEE的13种核心技术

    Java的大方向就是JavaEE,JavaEE不仅仅是socket编程,具体包括13中核心技术. JavaEE平台由一整套服务(Services).应用程序接口(APIs)和协议构成,它对开发基于We ...

  6. kubernetes nginx ingress 使用记录

    前言 ingress是一种可以暴露k8s集群内部service的方式,用户编辑配置文件定义一个ingress资源即可实现外部网络访问内网service. ingress controller是来管理所 ...

  7. kubernetes之ingress及ingress controller

    什么是ingress Ingress是授权入站连接到达集群服务的规则集合. 从外部流量调度到nodeprot上的service 从service调度到ingress-controller ingres ...

  8. 使用traefik作为kubernetes的ingress

    目录 说明 部署 创建一个独立的命名空间 配置rbac授权 配置secret 创建一个configmap用于存放traefik的配置文件 配置traefik的deployment文件 配置服务 通过p ...

  9. 为什么我不使用Kubernetes的Ingress

    为什么我不使用Kubernetes的Ingress 很不幸,据我所知Kubernetes的文档不是很完美,这就是为什么有很多同学在使用它的时候会遇到很多的坑,Ingress这个组件就是这些坑中的一个. ...

  10. kubernetes Traefik ingress配置详解

    理解Ingress 简单的说,ingress就是从kubernetes集群外访问集群的入口,将用户的URL请求转发到不同的service上.Ingress相当于nginx.apache等负载均衡方向代 ...

随机推荐

  1. nginx编译安装-麒麟v10Arm64

    环境信息 操作系统: Kylin Linux Advanced Server V10 (Lance) 架构:Arm keepalived版本:1.25.5 编译 安装依赖包 yum install g ...

  2. Linux 常见编辑器

    命令行编辑器 Vim Linux 上最出名的编辑器当属 Vim 了.Vim 由 Vi 发展而来,Vim 的名字意指 Vi IMproved,表示 Vi 的升级版.Vim 对于新手来说使用比较复杂,不过 ...

  3. Docker 导出容器 / 镜像

    有时由于镜像大小.网络限制等原因,我们不能将本地制作的容器 / 镜像上传到公共容器注册表.此时我们可以选择将镜像以本地文件的形式导出. 导入 / 导出容器 docker export "CO ...

  4. 自动调用关闭释放资源try-with-resources

    try-with-resources自动执行释放资源 看到了try这个关键字立马就应该能想到异常处理机制try-catch-finally语句块.这里要说的东西和异常处理背后的机制其实几乎是一样的,只 ...

  5. 使用 nuxi build-module 命令构建 Nuxt 模块

    title: 使用 nuxi build-module 命令构建 Nuxt 模块 date: 2024/8/31 updated: 2024/8/31 author: cmdragon excerpt ...

  6. office系列软件(word、ppt、excel)打不开的解决方案

    前言 ​ 这里我遇到的情况是点击都没反应,而不像很多人那样有报错弹窗,费劲千辛万苦才最终解决,中间一度自暴自弃想着干脆用WPS得了(大可不必),中间我尝试了三种方法,不一定哪种有效,权当分享: 一.使 ...

  7. Blockchain A-Z™: Learn How To Build Your First Blockchain

    单纯从技术角度了解blockthain. Module 1, Blockchain 特点: 分布式的,不可篡改的,p2p的 网络.存储在每个node上保存一份,这就是个基于网络的RAID 1 啊,感觉 ...

  8. 音视频FAQ(三):音画不同步

    摘要 本文介绍了音画不同步问题的五个因素:编码和封装阶段.网络传输阶段.播放器中的处理阶段.源内容产生的问题以及转码和编辑.针对这些因素,提出了相应的解决方案,如使用标准化工具.选择强大的传输协议.自 ...

  9. qumu虚拟机启动后无法远程连接

    通过 virsh 在启动 qemu 虚拟机,可以通过 VNC 访问虚拟机,但无法通过设置的 SSH 的外部映射端口登录.首先在宿主机上查看虚拟机(csv\tpm\name)的网络配置,可以看到端口映射 ...

  10. vue-router的History 模式常用的三种配置方式(去掉地址栏中的#号)

    第一种:nginx配置 conf主要的配置代码: http { # nginx负载均衡配置 upstream dynamic_balance { #ip_hash; server 192.168.10 ...