K8S 外部访问配置、 Ingress、NodePort

将K8S部署应用提供给外部访问一般有三种方式:

  • NodePort 暴露端口到节点,提供了集群外部访问的入口
  • LoadBalancer 需要负载均衡器(通常都需要云服务商提供,裸机可以安装 METALLB 测试)
  • Ingress 统一管理 svc的外部访问,用于实现用域名的方式访问k8s内部应用,常用类型 Treafik、Nginx
    • 相对 NodePort 来说,Ingress 就实现外部访问的统一管理,类型配置 nginx.conf 一样,根据 域名、路由等转发到不同服务上
    • 可以随时更改配置规则并生效,方便统一管理

NodePort 简单示例:

  • spec.ports.nodePort 可以实现一个svc的外部访问配置
apiVersion: v1
kind: Service
metadata:labels:expose: "true"app: device-infoprovider: xiaoshuversion: "1.0"group: com.xiaoshuname: device-info-1namespace: xiaoshu
spec:type: NodePortports:- name: httpport: 30802         # 服务端口targetPort: 8300  # 容器端口protocol: TCPnodePort: 30802    # 外部访问端口selector:app: device-infoprovider: xiaoshuversion: "1.0"group: com.xiaoshu

Ingress 简单示例:

准备了两个简单的jar 服务,服务一 device-info-1 服务端口8001、服务二 device-info-2 服务端口8002

@ApiOperation(value = "测试接口")
@GetMapping("/server")
public String test(){return "服务一:192.168.2.207";
}
@ApiOperation(value = "测试接口")
@GetMapping("/server")
public String test(){return "服务二:192.168.2.208";
}

yml

apiVersion: apps/v1
kind: Deployment
metadata:labels:app: device-infoprovider: xiaoshuversion: "1.0"group: com.xiaoshuname: device-info-1namespace: xiaoshu
spec:replicas: 1selector:matchLabels:app: device-infoprovider: xiaoshuversion: "1.0"group: com.xiaoshutemplate:metadata:labels:app: device-infoprovider: xiaoshuversion: "1.0"group: com.xiaoshuspec:containers:- name: device-info-1image: core.harbor.domain/jar/device-info-1:v1nodeName: k8s-1  
---
apiVersion: v1
kind: Service
metadata:labels:expose: "true"app: device-infoprovider: xiaoshuversion: "1.0"group: com.xiaoshuname: device-info-1namespace: xiaoshu
spec:type: ClusterIPports:- name: httpport: 8001          # 服务端口targetPort: 8300  # 容器端口protocol: TCPselector:app: device-infoprovider: xiaoshuversion: "1.0"group: com.xiaoshu
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: device-info-2provider: xiaoshuversion: "1.0"group: com.xiaoshuname: device-info-2namespace: xiaoshu
spec:replicas: 1selector:matchLabels:app: device-info-2provider: xiaoshuversion: "1.0"group: com.xiaoshutemplate:metadata:labels:app: device-info-2provider: xiaoshuversion: "1.0"group: com.xiaoshuspec:containers:- name: device-info-2image: core.harbor.domain/jar/device-info-2:v1nodeName: k8s-1  
---
apiVersion: v1
kind: Service
metadata:labels:expose: "true"app: device-info-2provider: xiaoshuversion: "1.0"group: com.xiaoshuname: device-info-2namespace: xiaoshu
spec:type: ClusterIPports:- name: httpport: 8002        targetPort: 8300  # 容器端口protocol: TCPselector:app: device-info-2provider: xiaoshuversion: "1.0"group: com.xiaoshu

Ingress yml

  • 根据域名转发到不同的 服务上
  • 注意labels 配置,与svc可以匹配
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: device-info-ingressnamespace: xiaoshuannotations:#kubernetes.io/ingress.class: "nginx"#nginx.ingress.kubernetes.io/rewrite-target: / #路径重写,需要安装NGINX Ingress控制器生效labels:app: device-infoprovider: xiaoshuversion: "1.0"group: com.xiaoshu
spec:rules:- host: device.info.ingress1http:paths:- backend:service:name: device-info-1port:number: 8001 #服务端口path: /device-info/serverpathType: Prefix  - host: device.info.ingress2http:paths:- backend:service:name: device-info-2port:number: 8002 #服务端口path: /device-info/serverpathType: Prefix          

12
3
4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381882.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 设计作业——简单计算器

设计要求: 设计一个计算器,用GUI画出来一个图形界面,有两个输入框,一个输出框,有4个加减乘除按钮,实现简单的加减乘除功能。 code: import java.awt.*; import java.awt.event.*; import java.…

有感于最近一个朋友买股票大亏

投资首先是要看退出机制通畅不通畅、其次才是看收益高不高转载于:https://www.cnblogs.com/darzui/archive/2005/12/30/308300.html

ubuntu18重装笔记

再次重装了系统,为方便以后再次重装,,,因此将主要步骤记录下来。 1. 更新源 sudo gedit /etc/apt/sources.list # 阿里源deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirro…

uva 437——The Tower of Babylon

题意:给定n个长方体,然后堆积最高的塔,要求上面的面积小于下面的面积。 思路:Dp,先把长方体的所有放的情况都构造出来放到数组里,对于当前节点,如果能够在前面找到面积比当前小,高度…

ASP.NET Web 服务、企业服务和 .NET Remoting 的性能

http://www.uml.org.cn/net/200601102.htm转载于:https://www.cnblogs.com/dynasty/archive/2006/01/11/315508.html

线程池的分析与实现

在需要频繁开线程时,创建和销毁线程会话费大量时间,为了提高效率,我们可以在任务开始前,先创建一定数量的线程。这样在接收到任务时,就可以直接使用线程池中处于wait状态的线程,在任务结束后线程回到wait状…

uva 1347——Tour

题意:给定n个点的坐标,设计一条路线,从左边的点出发,走到最右边的点然后返回,每个点除了起点和终点最多只能经历一次,求其中的最短路径。 思路:dp,可以考虑成2个人从起点出发&#x…

基于epoll+threadpool的webServer分析与实现

该webServer使用epollthreadpool实现,支持GET、POST方法,并添加CGI进行数据计算并返回网页信息,可以解析返回html、picture、mp3、js、css等文件,可以实现稳定的运行。 使用c编写。 源码请看我的Github。 流程简述 启动服务器&…

Flex2.0实现文件上传功能(服务器为ASP.NET)

简介:新的Flex2.0类库里提供了文件类,方便了上传/下载文件。下面的程序demo演示了Flex2.0生成flash来访问本地文件,在flash里上传用户选择的文件到服务器,flash客户端可以处理文件上传进度等多个事件,服务器端是C#写的…

UVA 116——Unidirectional TSP

题意:给定一个n*m的矩阵,从第一列任意位置向右,右下,右上走一格,可以循环,要求经过的数字的和最小。 思路:记忆化搜索。每次有三个状态,从这三个状态中选择出最优的一个,…

【高性能定时器】 时间轮

时间轮 简述 顾名思义,时间轮就像一个轮子,在转动的时候外界会指向轮子不同的区域,该区域就可以被使用。因此只要将不同时间的定时器按照一定的方法散列到时间轮的不同槽(即时间轮划分的区域)之中,就可以实…

知识管理的三种策略

知识管理的三种策略 面向流程的知识管理战略-实施篇(上)(AMT研究院 周瑛 编译) 转载于:https://www.cnblogs.com/yangfada/archive/2006/01/24/322381.html

java 考试复习整理——JAVA类和类成员的修饰符

今天整理了一下以前学的JAVA的类和类成员的修饰符,考试的时候可能会考到。一:访问修饰符:1.省略访问修饰符:具有默认的访问特性,即具有包访问特性,只能被同一个包中的类使用。2.public访问修饰符&#xff1…

【安利】程序猿作图神器 - Graphviz

还在为在linux下画二叉树等图苦恼吗,现在就安利一波linux程序猿的作图神器——Graphviz。(本来在写其他东西,刚好要绘图,强行插入一篇blog) Graphviz (Graph Visualization Software) 是一个由AT&T实验室启动的开源…

仿ISQL功能的实现,可以实现批处理功能

具体请见下载文件:/Files/bigmouthz/DNet写的数据库isql执行程序(含源码).rar部分代码如下: DBCore.DataBaseVisitor.AbsDBHelper dbhelper null ; private void bt_DBLink_Click(object sender, System.EventArgs e) { try …

uva 11400——Lighting System Design

题意: 给定一些灯泡,每种灯泡有不同的电压v,电源费用k,每个灯泡的费用c,所需的灯泡的数量L,同种灯泡可以使用相同电源,问最小花费。 思路:dp,每种灯泡要么选要么不选两种…

【高性能定时器】时间堆(最小堆)

最小堆及其应用:时间堆 最小堆及其应用:时间堆 一、 堆1. 概念2. 最小堆的实现3. 性质4. 代码 二、时间堆1. 概念简述2. 实现细节3. 代码 一、 堆 1. 概念 堆是一种经过排序的完全二叉树,其中任一非终端节点的数据值均不大于(或…

uva 11584——Partitioning by Palindromes

题意&#xff1a;给定一个字符串&#xff0c;把该字符串划分为最少的回文串。 思路&#xff1a;dp&#xff0c;到达i点的回文串长度都存起来&#xff0c;那么dp[i]min(以i为结尾的最短的回文串长度&#xff09;。 code&#xff1a; #include <bits/stdc.h> using namespa…

【操作系统】生产者消费者问题

生产者消费者模型 文章目录生产者消费者模型 [toc]一、 生产者消费者问题二、 问题分析三、 伪代码实现四、代码实现&#xff08;C&#xff09;五、 互斥锁与条件变量的使用比较一、 生产者消费者问题 生产者消费者问题&#xff08;英语&#xff1a;Producer-consumer problem&…

2006年2月8日 再见,Borland

昨天早上从David I的Blog上看到了Borland出售IDE产品线转而全面发展ALM的消息,既感到惋惜又似乎感到新的希望 之所以惋惜是因为Delphi是我第一个喜欢的语言&#xff0c;也是Delphi第一次让我对编程产生兴趣&#xff0c;还记得我的第一个小软件就是Delphi5.0做的&#xff0c;而如…