ingress

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

配置ingress的yaml

  要求域名解析无误

  要求service对应的pod正常

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

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: test
spec:
rules:
- host: test1.domain.com
http:
paths:
- backend:
serviceName: service1
servicePort:
path: /

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

-->   /bbb   -->   service3:8080

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: test
spec:
rules:
- host: test1.domain.com
http:
paths:
- backend:
serviceName: service1
servicePort:
path: /aaa
- backend:
serviceName: service2
servicePort:
path: /bbb

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

  test2.domain.com   -->  service4:8080

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: test
spec:
rules:
- host: test1.domain.com
http:
paths:
- backend:
serviceName: service1
servicePort:
- host: test2.domain.com
http:
paths:
- backend:
serviceName: service4
servicePort:

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

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

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: test
spec:
rules:
- host: test1.domain.com
http:
paths:
- backend:
serviceName: service1
servicePort:
- http:
paths:
- backend:
serviceName: service5
servicePort:

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

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: test
spec:
rules:
- host: test1.domain.com
http:
paths:
- backend:
serviceName: service1
servicePort:
tls:
- hosts:
- test1.domain.com
secretName: domain-tls  #证书见下

  证书yaml

apiVersion: v1
data:
tls.crt: cert(base64)  #转码见下
tls.key: key(base64)
kind: Secret
metadata:
name: domain-tls
namespace: 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-ingress
namespace: test
annotations:
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.com
http:
paths:
- backend:
serviceName: service1
servicePort:
path: /

详细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

k8s的ingress使用的更多相关文章

  1. [转帖]理解k8s 的 Ingress

    理解k8s 的 Ingress https://www.jianshu.com/p/189fab1845c5/ 暴露一个http服务的方式 service 是 k8s 暴露http服务的默认方式, 其 ...

  2. Kubernetes K8S之Ingress详解与示例

    K8S之Ingress概述与说明,并详解Ingress常用示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 2C ...

  3. 容器编排系统k8s之Ingress资源

    前文我们了解了k8s上的service资源的相关话题,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/14161950.html:今天我们来了解下k8s上的In ...

  4. k8s 执行 ingress yaml 文件报错: error when creating "ingress-myapp.yaml": Internal error occurred: failed calling webhook

    k8s 执行 ingress yaml 文件报错:错误如下: [root@k8s-master01 baremetal]# kubectl apply -f ingress-test.yaml Err ...

  5. 详解k8s组件Ingress边缘路由器并落地到微服务 - kubernetes

    写在前面 Ingress 英文翻译 进入;进入权;进食,更准确的讲就是入口,即外部流量进入k8s集群必经之口.这到大门到底有什么作用?我们如何使用Ingress?k8s又是如何进行服务发现的呢?先看一 ...

  6. k8s安装ingress

    1. 环境准备 安装nginx-ingress-controller和backend cd /etc/yum.repos.d/mainfests 下载镜像的脚本 vi ingressnginx.sh ...

  7. (转)详解k8s组件Ingress边缘路由器并落地到微服务 - kubernetes

    转:https://www.cnblogs.com/justmine/p/8991379.html 写在前面 Ingress 英文翻译 进入;进入权;进食,更准确的讲就是入口,即外部流量进入k8s集群 ...

  8. k8s系列---ingress资源和ingress-controller

    https://www.cnblogs.com/zhangeamon/p/7007076.html http://blog.itpub.net/28916011/viewspace-2214747/ ...

  9. k8s中ingress,service,depoyment,pod如何关联

    k8s中pod通过label标签名称来识别关联,它们的label  name一定是一样的.ingress,service,depoyment通过selector 中app:name来关联 1.查询发布 ...

随机推荐

  1. [转]JS的内存泄露处理

    问题: 1.给DOM对象添加的属性是一个对象的引用.范例: var MyObject = {}; document.getElementByIdx_x('myDiv').myProp = MyObje ...

  2. for循环中的条件执行循序

    问题: public class Main { public static void main(String[] args) { int i,n,length = 0; for(i=1;length& ...

  3. jQuery做出手风琴效果

    今天学到JQuery中的遍历-siblings,便手痒做了个手风琴的动态效果,有一点收获,分享给大家.mouseout的时候一定要记得opacity必须设置,不然li的opacity会保持mousem ...

  4. sql中in和exist语句的区别?(补充了left join和right join)

    in和exists(摘录自百度)in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询. 如果两个表中一个较小,一个是大表,则子查询表大的用exi ...

  5. js中的函数易忽略的点小节

    1.Function()属性和方法 属性: prototype 2.Function对象实例属性和方法 实例属性:(例如var Function=function(x,y,z){}; myFuncti ...

  6. Java探索之旅(6)——对象和类

    1.知识要点 假设: public ClassName{     int data;   String name;     ClassName(){data=1;}     public static ...

  7. Linux中发布项目的一些命令笔记

    记一下,Linux中发布项目的一些难记的命令: .安装jdk a.检测是否安装了jdk 运行java -version b.若有需要将其卸载 c.查看安装那些jdk rpm -qa | grep ja ...

  8. latex 输入矩阵

    %以下函数可以写矩阵 %这个是放括号的矩阵 $A=\begin{bmatrix} 1&3\\ 3&3 \end{bmatrix}$ %这个是圆括号的矩阵 $A=\begin{pmatr ...

  9. 关于export环境变量生存期

    今天对export方式设置的环境变量的生存期有很大疑惑. 按变量的生存周期来划分,Linux变量可分为两类,它们的修改方法如下:(1)永久的:需要修改配置文件,变量永久生效.    常见的配置文件包括 ...

  10. HDU - 5542 The Battle of Chibi(LIS+树状数组优化)

    The Battle of Chibi Cao Cao made up a big army and was going to invade the whole South China. Yu Zho ...