ingress

  可以配置一个入口来提供k8s上service从外部来访问的url、负载平衡流量、终止SSL和提供基于名称的虚拟主机。

配置ingress的yaml

  要求域名解析无误

  要求service对应的pod正常

一、test1.domain.com   -->  service1:8080

apiVersion: extensions/v1beta1
kind: Ingress
metadata:name: test-ingressnamespace: test
spec:rules:- host: test1.domain.comhttp:paths:- backend:serviceName: service1servicePort: 8080path: /

二、test1.domain.com   -->   /aaa   -->   service2:8080

-->   /bbb   -->   service3:8080

apiVersion: extensions/v1beta1
kind: Ingress
metadata:name: test-ingressnamespace: test
spec:rules:- host: test1.domain.comhttp:paths:- backend:serviceName: service1servicePort: 8080path: /aaa- backend:serviceName: service2servicePort: 8080path: /bbb

三、test1.domain.com   -->  service1:8080

  test2.domain.com   -->  service4:8080

apiVersion: extensions/v1beta1
kind: Ingress
metadata:name: test-ingressnamespace: test
spec:rules:- host: test1.domain.comhttp:paths:- backend:serviceName: service1servicePort: 8080- host: test2.domain.comhttp:paths:- backend:serviceName: service4servicePort: 8080

四、test1.domain.com   -->  service1:8080

  没在request中定义主机名(即没有显示请求头)的请求   -->   service5:8080

apiVersion: extensions/v1beta1
kind: Ingress
metadata:name: test-ingressnamespace: test
spec:rules:- host: test1.domain.comhttp:paths:- backend:serviceName: service1servicePort: 8080- http:paths:- backend:serviceName: service5servicePort: 8080

五、https://test1.domain.com   -->  service1:8080

apiVersion: extensions/v1beta1
kind: Ingress
metadata:name: test-ingressnamespace: test
spec:rules:- host: test1.domain.comhttp:paths:- backend:serviceName: service1servicePort: 8080tls:- hosts:- test1.domain.comsecretName: domain-tls  #证书见下

  证书yaml

apiVersion: v1
data:tls.crt: cert(base64)  #转码见下tls.key: key(base64)
kind: Secret
metadata:name: domain-tlsnamespace: test
type: kubernetes.io/tls

  base64转码

cat fullchain.pem | base64 | tr '\n' ' ' | sed s/[[:space:]]//g   #中间去掉换行和空格
cat privkey.pem | base64 | tr '\n' ' ' | sed s/[[:space:]]//g

六、nginx中的设置,在ingress是通过annotations来配置的

apiVersion: extensions/v1beta1
kind: Ingress
metadata:name: test-ingressnamespace: testannotations:nginx.ingress.kubernetes.io/proxy-connect-timeout: "600s"nginx.ingress.kubernetes.io/proxy-read-timeout: "600s"nginx.ingress.kubernetes.io/proxy-send-timeout: "600s"
spec:rules:- host: test1.domain.comhttp:paths:- backend:serviceName: service1servicePort: 8080path: /

详细ingress链接:https://kubernetes.io/docs/concepts/services-networking/ingress/

ingress中annotations的配置选项:https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md

转载于:https://www.cnblogs.com/chy-op/p/10566657.html

k8s的ingress使用相关推荐

  1. k8s!Ingress服务

    文章目录 一 ingress 1.1ingress 介绍 1.2 ingress 的优势 1.3 Ingress-nginx工作原理 二.实验 2.1 创建ns 2.2 创建deploy.servic ...

  2. 企业入门实战--k8s之Ingress加密、认证以及地址重写

    企业入门实战--k8s之Ingress加密.认证以及地址重写 一.Ingress 加密 二.Ingress 认证 三.Ingress 地址重定向 一.Ingress 加密 加密访问80默认重定向443 ...

  3. k8s部署ingress:使用heptio-contour部署ingress controller(通过sealos安装,非nginx-ingress类型)

    详解 代码 概览 [root@m-1 ingress]# tree . ├── deploy-svc.sh ├── deploy.yaml ├── example-ingress.yaml ├── i ...

  4. k8s 安装ingress nginx controller 并部署.net core ingress服务

    192.168.28.132 k8smaster 192.168.28.133 k8snode1 192.168.28.134 k8snode2 192.168.28.135 k8snode3 192 ...

  5. k8s之ingress

    1.前期准备 1.1mandatory.yaml准备 使用mandatory.yaml安装.mandatory.yaml是ingress所有资源yml文件的集合,其中包configmap.yaml.n ...

  6. k8s 配置 ingress

    目录 报错 部署 测试 备份 报错 如果 K8S 集群没有部署 ingress,那么创建 ingress 时会报错 Default backend: default-http-backend:80 ( ...

  7. k8s nginx ingress原理解读

    阅读本文需要以下知识为前提 了解k8s基本架构,k8s基本资源清单 用自己的k8s实验环境 首先了解ingress解决了什么问题 k8s内部项目暴露外部访问,只用一个固定端口,暴露多个服务.相对于:L ...

  8. k8s(九)ingress

    k8s Ingress介绍 Http代理 Https代理 Ingress介绍 我们已经知道,Service对集群之外暴露服务的主要方式有两种:NodePort和LoadBalancer,但是这两种方式 ...

  9. k8s的ingress treafik部署使用

    简介 Kubernetes集群搭建完后需要一个外部边缘网关,也就是ingress,因为不可能所有的服务都提过service的nodepod暴露,如果服务多了,后面集群的端口可能会不够用,而且也没有像n ...

最新文章

  1. session无法传值解决方案!
  2. 单例Singleton
  3. ThreadLocal 中的ThreadLocalMap
  4. Java每次输入一个字符+高精度取整计算(记洛谷P2394题WA+TLE+RE的经历,Java语言描述)
  5. [深度学习-原理篇]什么是循环神经网络RNN与LSTM
  6. c语言三种循环语句,C语言三种循环语句的功能等价性
  7. windows 下 YII2 配置 memcache
  8. jquery ajax 向spring MVC controller中传值并接受及解析返回值
  9. 网易云解析接口PHP源码,网易云音乐热评API抓取PHP源码
  10. 服务器虚拟机系统镜像安装win7系统,在虚拟机中怎么安装Win7旗舰版系统
  11. MATLAB GUI中显示数学公式
  12. JavaScript 数组方法大全
  13. 基于Outline构建团队的知识库 (上篇)
  14. 常见字读音(粤语)---(2)
  15. MFC 视图-OpenGL场景-CDialogBar三个界面保存为图片
  16. 【java】java学习笔记之java oop(面向对象)
  17. 【UNR #6 C】稳健型选手(分治)(主席树)(二分)
  18. 怎么让抖音视频当做铃声android,抖音怎么提取视频里的音乐?怎么将抖音里的音乐用来做手机铃声?抖音视频提取音频的方法...
  19. S32K144的FLASH中的SDK函数(FLASH_DRV_EraseSector)不能正常执行
  20. vue 引入高德地图 路线规划

热门文章

  1. mysql文件软连接失败,解决打包软链接打包失败问题
  2. 0基础能学mysql数据库吗_mysql学习入门:零基础如何使用mysql创建数据库表?
  3. android commit apply,关于SharedPreference的commit和apply和ANR
  4. mysql如何设置多节点_详细介绍Mysql5.7从节点设置多线程主从复制的办法
  5. python右斜杠_Python中的左斜杠、右斜杠(正斜杠和反斜杠)
  6. xilinx-arm-linux交叉编译链安装
  7. 【嵌入式系统复习】嵌入式网络与协议栈
  8. MTFBWU的完整形式是什么?
  9. kinect中psi是什么_PSI的完整形式是什么?
  10. 用C#开发Windows应用程序